Forge
csharpf583a481
1using McpToolManifest;
2
3namespace AIGuiders.SampleMcp.Tests;
4
5public sealed class McpToolManifestTests
6{
7 [Fact]
8 public void Mcp_tools_manifest_matches_ToolCatalog_names_and_descriptions()
9 {
10 var manifestPath = Path.Combine(AppContext.BaseDirectory, "mcp-tools.manifest.json");
11 Assert.True(File.Exists(manifestPath), $"Missing copied manifest: {manifestPath}");
12
13 var doc = McpToolManifestReader.Load(manifestPath);
14 var validation = McpToolManifestReader.Validate(doc);
15 Assert.True(validation.Count == 0, string.Join(Environment.NewLine, validation));
16
17 Assert.Equal("sample-mcp", doc.McpId);
18
19 var catalog = ToolCatalog.Build()
20 .ToDictionary(t => t.Name!, t => t.Description, StringComparer.Ordinal);
21
22 var nameDiff = ToolCatalogNameComparer.Compare(doc.Tools.Select(t => t.Name), catalog.Keys);
23 Assert.True(nameDiff.Count == 0, string.Join(Environment.NewLine, nameDiff));
24
25 var manifestByName = doc.Tools.ToDictionary(t => t.Name, t => t.Description, StringComparer.Ordinal);
26 Assert.Equal(catalog.Count, manifestByName.Count);
27 foreach (var (name, expectedDesc) in catalog)
28 Assert.Equal(expectedDesc, manifestByName[name]);
29 }
30}
31
32
View only · write via MCP/CIDE