Skip to content

Commit 608cf0d

Browse files
Copilotjozkee
andcommitted
Add Theme property assertions to client-server integration tests
Co-authored-by: jozkee <16040868+jozkee@users.noreply.github.com>
1 parent bb762b2 commit 608cf0d

4 files changed

Lines changed: 16 additions & 6 deletions

File tree

tests/ModelContextProtocol.Tests/Client/McpClientTests.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ protected override void ConfigureServices(ServiceCollection services, IMcpServer
3737
WebsiteUrl = "https://example.com",
3838
Icons =
3939
[
40-
new Icon { Source = "https://example.com/icon-48.png", MimeType = "image/png", Sizes = ["48x48"] },
41-
new Icon { Source = "https://example.com/icon.svg", MimeType = "image/svg+xml", Sizes = ["any"] }
40+
new Icon { Source = "https://example.com/icon-48.png", MimeType = "image/png", Sizes = ["48x48"], Theme = "light" },
41+
new Icon { Source = "https://example.com/icon.svg", MimeType = "image/svg+xml", Sizes = ["any"], Theme = "dark" }
4242
]
4343
};
4444
});
@@ -59,10 +59,12 @@ public async Task CanReadServerInfo()
5959
Assert.Equal("https://example.com/icon-48.png", serverInfo.Icons[0].Source);
6060
Assert.Equal("image/png", serverInfo.Icons[0].MimeType);
6161
Assert.Single(serverInfo.Icons[0].Sizes, "48x48");
62+
Assert.Equal("light", serverInfo.Icons[0].Theme);
6263

6364
Assert.Equal("https://example.com/icon.svg", serverInfo.Icons[1].Source);
6465
Assert.Equal("image/svg+xml", serverInfo.Icons[1].MimeType);
6566
Assert.Single(serverInfo.Icons[1].Sizes, "any");
67+
Assert.Equal("dark", serverInfo.Icons[1].Theme);
6668
}
6769

6870
[Theory]

tests/ModelContextProtocol.Tests/Configuration/McpServerBuilderExtensionsPromptsTests.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,9 @@ public async Task AttributeProperties_Propagated()
180180

181181
Assert.NotNull(prompt.ProtocolPrompt.Icons);
182182
Assert.NotEmpty(prompt.ProtocolPrompt.Icons);
183-
Assert.Equal("https://example.com/prompt-icon.svg", prompt.ProtocolPrompt.Icons[0].Source);
183+
var icon = Assert.Single(prompt.ProtocolPrompt.Icons);
184+
Assert.Equal("https://example.com/prompt-icon.svg", icon.Source);
185+
Assert.Null(icon.Theme);
184186
}
185187

186188
[Fact]

tests/ModelContextProtocol.Tests/Configuration/McpServerBuilderExtensionsResourcesTests.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,9 @@ public async Task AttributeProperties_Propagated()
213213

214214
Assert.NotNull(resource.ProtocolResource.Icons);
215215
Assert.NotEmpty(resource.ProtocolResource.Icons);
216-
Assert.Equal("https://example.com/direct-resource-icon.svg", resource.ProtocolResource.Icons[0].Source);
216+
var resourceIcon = Assert.Single(resource.ProtocolResource.Icons);
217+
Assert.Equal("https://example.com/direct-resource-icon.svg", resourceIcon.Source);
218+
Assert.Null(resourceIcon.Theme);
217219

218220
var resourceTemplates = await client.ListResourceTemplatesAsync(cancellationToken: TestContext.Current.CancellationToken);
219221
Assert.NotNull(resourceTemplates);
@@ -223,7 +225,9 @@ public async Task AttributeProperties_Propagated()
223225

224226
Assert.NotNull(resourceTemplate.ProtocolResourceTemplate.Icons);
225227
Assert.NotEmpty(resourceTemplate.ProtocolResourceTemplate.Icons);
226-
Assert.Equal("https://example.com/templated-resource-icon.svg", resourceTemplate.ProtocolResourceTemplate.Icons[0].Source);
228+
var templateIcon = Assert.Single(resourceTemplate.ProtocolResourceTemplate.Icons);
229+
Assert.Equal("https://example.com/templated-resource-icon.svg", templateIcon.Source);
230+
Assert.Null(templateIcon.Theme);
227231
}
228232

229233
[Fact]

tests/ModelContextProtocol.Tests/Configuration/McpServerBuilderExtensionsToolsTests.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -646,7 +646,9 @@ public async Task AttributeProperties_Propagated()
646646

647647
Assert.NotNull(tool.ProtocolTool.Icons);
648648
Assert.NotEmpty(tool.ProtocolTool.Icons);
649-
Assert.Equal("https://example.com/tool-icon.svg", tool.ProtocolTool.Icons[0].Source);
649+
var icon = Assert.Single(tool.ProtocolTool.Icons);
650+
Assert.Equal("https://example.com/tool-icon.svg", icon.Source);
651+
Assert.Null(icon.Theme);
650652
}
651653

652654
[Fact]

0 commit comments

Comments
 (0)