Forge
csharp3407750f
1using AgentForge.Abstractions;
2
3namespace AgentForge.Tests;
4
5public sealed class ForgePluginMetadataTests
6{
7 [Fact]
8 public void ResolveTier_uses_plugin_self_manifest_by_default()
9 {
10 IForgePlugin plugin = new TieredStubPlugin("lens", "extended");
11 Assert.Equal("extended", ForgePluginMetadata.ResolveTier(plugin));
12 }
13
14 [Fact]
15 public void ResolveTier_defaults_to_core()
16 {
17 IForgePlugin plugin = new DefaultTierStubPlugin("issue");
18 Assert.Equal("core", ForgePluginMetadata.ResolveTier(plugin));
19 }
20
21 [Fact]
22 public void ResolveTier_manifest_override_wins_over_plugin()
23 {
24 IForgePlugin plugin = new TieredStubPlugin("lens", "extended");
25 var entry = new ForgePluginEntry { Tier = "zoo" };
26 Assert.Equal("zoo", ForgePluginMetadata.ResolveTier(plugin, entry));
27 }
28
29 [Fact]
30 public void Bundled_grouping_plugin_declares_extended_tier()
31 {
32 IForgePlugin plugin = new AgentForge.Plugin.Grouping.Repositories.RepositoriesGroupingForgePlugin();
33 Assert.Equal("extended", ForgePluginMetadata.ResolveTier(plugin));
34 }
35
36 private sealed class DefaultTierStubPlugin(string id) : IForgePlugin
37 {
38 public string Id => id;
39
40 public string DisplayName => id;
41
42 public void ConfigureServices(Microsoft.Extensions.DependencyInjection.IServiceCollection services, Microsoft.Extensions.Configuration.IConfiguration configuration)
43 {
44 }
45
46 public void MapEndpoints(Microsoft.AspNetCore.Builder.WebApplication app)
47 {
48 }
49 }
50
51 private sealed class TieredStubPlugin(string id, string tier) : IForgePlugin
52 {
53 public string Id => id;
54
55 public string DisplayName => id;
56
57 public string Tier => tier;
58
59 public void ConfigureServices(Microsoft.Extensions.DependencyInjection.IServiceCollection services, Microsoft.Extensions.Configuration.IConfiguration configuration)
60 {
61 }
62
63 public void MapEndpoints(Microsoft.AspNetCore.Builder.WebApplication app)
64 {
65 }
66 }
67}
68
View only · write via MCP/CIDE