Skip to content

Commit 202bead

Browse files
Copilotstephentoub
authored andcommitted
Fix test files to work with new binary data representation
Co-authored-by: stephentoub <[email protected]>
1 parent 5931063 commit 202bead

File tree

13 files changed

+38
-37
lines changed

13 files changed

+38
-37
lines changed

samples/EverythingServer/Resources/SimpleResourceType.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public static ResourceContents TemplateResource(RequestContext<ReadResourceReque
3131
} :
3232
new BlobResourceContents
3333
{
34-
Blob = resource.Description!,
34+
Blob = System.Text.Encoding.UTF8.GetBytes(resource.Description!),
3535
MimeType = resource.MimeType,
3636
Uri = resource.Uri,
3737
};

samples/EverythingServer/Tools/AnnotatedMessageTool.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public static IEnumerable<ContentBlock> AnnotatedMessage(MessageType messageType
4141
{
4242
contents.Add(new ImageContentBlock
4343
{
44-
Data = TinyImageTool.MCP_TINY_IMAGE.Split(",").Last(),
44+
Data = System.Text.Encoding.UTF8.GetBytes(TinyImageTool.MCP_TINY_IMAGE.Split(",").Last()),
4545
MimeType = "image/png",
4646
Annotations = new() { Audience = [Role.User], Priority = 0.5f }
4747
});

tests/ModelContextProtocol.AspNetCore.Tests/HttpServerIntegrationTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ public async Task ReadResource_Sse_BinaryResource()
180180
Assert.Single(result.Contents);
181181

182182
BlobResourceContents blobContent = Assert.IsType<BlobResourceContents>(result.Contents[0]);
183-
Assert.NotNull(blobContent.Blob);
183+
Assert.False(blobContent.Blob.IsEmpty);
184184
}
185185

186186
[Fact]

tests/ModelContextProtocol.Tests/AIContentExtensionsTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ public void ToAIContent_ConvertsToolResultWithMultipleContent()
9494
Content =
9595
[
9696
new TextContentBlock { Text = "Text result" },
97-
new ImageContentBlock { Data = Convert.ToBase64String([1, 2, 3]), MimeType = "image/png" }
97+
new ImageContentBlock { Data = System.Text.Encoding.UTF8.GetBytes(Convert.ToBase64String([1, 2, 3])), MimeType = "image/png" }
9898
]
9999
};
100100

tests/ModelContextProtocol.Tests/Client/McpClientTests.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ public async Task CreateSamplingHandler_ShouldHandleImageMessages()
163163
Content = [new ImageContentBlock
164164
{
165165
MimeType = "image/png",
166-
Data = Convert.ToBase64String(new byte[] { 1, 2, 3 })
166+
Data = System.Text.Encoding.UTF8.GetBytes(Convert.ToBase64String(new byte[] { 1, 2, 3 }))
167167
}],
168168
}
169169
],
@@ -196,7 +196,8 @@ public async Task CreateSamplingHandler_ShouldHandleImageMessages()
196196

197197
// Assert
198198
Assert.NotNull(result);
199-
Assert.Equal(expectedData, result.Content.OfType<ImageContentBlock>().FirstOrDefault()?.Data);
199+
var imageData = result.Content.OfType<ImageContentBlock>().FirstOrDefault()?.Data.ToArray() ?? [];
200+
Assert.Equal(expectedData, System.Text.Encoding.UTF8.GetString(imageData));
200201
Assert.Equal("test-model", result.Model);
201202
Assert.Equal(Role.Assistant, result.Role);
202203
Assert.Equal("endTurn", result.StopReason);
@@ -211,7 +212,7 @@ public async Task CreateSamplingHandler_ShouldHandleResourceMessages()
211212
var mockChatClient = new Mock<IChatClient>();
212213
var resource = new BlobResourceContents
213214
{
214-
Blob = data,
215+
Blob = System.Text.Encoding.UTF8.GetBytes(data),
215216
MimeType = "application/octet-stream",
216217
Uri = "data:application/octet-stream"
217218
};

tests/ModelContextProtocol.Tests/Client/McpClientToolTests.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,13 @@ public static TextContentBlock TextOnlyTool() =>
3737
[McpServerTool]
3838
public static ImageContentBlock ImageTool() =>
3939
new()
40-
{ Data = Convert.ToBase64String(Encoding.UTF8.GetBytes("fake-image-data")), MimeType = "image/png" };
40+
{ Data = System.Text.Encoding.UTF8.GetBytes(Convert.ToBase64String(Encoding.UTF8.GetBytes("fake-image-data"))), MimeType = "image/png" };
4141

4242
// Tool that returns audio content as single ContentBlock
4343
[McpServerTool]
4444
public static AudioContentBlock AudioTool() =>
4545
new()
46-
{ Data = Convert.ToBase64String(Encoding.UTF8.GetBytes("fake-audio-data")), MimeType = "audio/mp3" };
46+
{ Data = System.Text.Encoding.UTF8.GetBytes(Convert.ToBase64String(Encoding.UTF8.GetBytes("fake-audio-data"))), MimeType = "audio/mp3" };
4747

4848
// Tool that returns embedded resource
4949
[McpServerTool]
@@ -103,7 +103,7 @@ public static ResourceLinkBlock ResourceLinkTool() =>
103103
[McpServerTool]
104104
public static IEnumerable<ContentBlock> MixedWithNonConvertibleTool()
105105
{
106-
yield return new ImageContentBlock { Data = Convert.ToBase64String(Encoding.UTF8.GetBytes("image-data")), MimeType = "image/png" };
106+
yield return new ImageContentBlock { Data = System.Text.Encoding.UTF8.GetBytes(Convert.ToBase64String(Encoding.UTF8.GetBytes("image-data"))), MimeType = "image/png" };
107107
yield return new ResourceLinkBlock { Uri = "file://linked.txt", Name = "linked.txt" };
108108
}
109109

@@ -152,7 +152,7 @@ public static EmbeddedResourceBlock BinaryResourceTool() =>
152152
Resource = new BlobResourceContents
153153
{
154154
Uri = "data://blob",
155-
Blob = Convert.ToBase64String(Encoding.UTF8.GetBytes("binary-data")),
155+
Blob = System.Text.Encoding.UTF8.GetBytes(Convert.ToBase64String(Encoding.UTF8.GetBytes("binary-data"))),
156156
MimeType = "application/octet-stream"
157157
}
158158
};

tests/ModelContextProtocol.Tests/ClientIntegrationTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ public async Task ReadResource_Stdio_BinaryResource(string clientId)
262262
Assert.Single(result.Contents);
263263

264264
BlobResourceContents blobResource = Assert.IsType<BlobResourceContents>(result.Contents[0]);
265-
Assert.NotNull(blobResource.Blob);
265+
Assert.False(blobResource.Blob.IsEmpty);
266266
}
267267

268268
// Not supported by "everything" server version on npx

tests/ModelContextProtocol.Tests/Protocol/ContentBlockTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ public void ToolResultContentBlock_SerializationRoundTrip()
183183
Content =
184184
[
185185
new TextContentBlock { Text = "Result data" },
186-
new ImageContentBlock { Data = "base64data", MimeType = "image/png" }
186+
new ImageContentBlock { Data = System.Text.Encoding.UTF8.GetBytes("base64data"), MimeType = "image/png" }
187187
],
188188
StructuredContent = JsonElement.Parse("""{"temperature":18,"condition":"cloudy"}"""),
189189
IsError = false
@@ -198,7 +198,7 @@ public void ToolResultContentBlock_SerializationRoundTrip()
198198
var textBlock = Assert.IsType<TextContentBlock>(result.Content[0]);
199199
Assert.Equal("Result data", textBlock.Text);
200200
var imageBlock = Assert.IsType<ImageContentBlock>(result.Content[1]);
201-
Assert.Equal("base64data", imageBlock.Data);
201+
Assert.Equal("base64data", System.Text.Encoding.UTF8.GetString(imageBlock.Data.ToArray()));
202202
Assert.Equal("image/png", imageBlock.MimeType);
203203
Assert.NotNull(result.StructuredContent);
204204
Assert.Equal(18, result.StructuredContent.Value.GetProperty("temperature").GetInt32());

tests/ModelContextProtocol.Tests/Protocol/CreateMessageResultTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ public void CreateMessageResult_WithImageContent_Serializes()
118118
[
119119
new ImageContentBlock
120120
{
121-
Data = Convert.ToBase64String([1, 2, 3, 4, 5]),
121+
Data = System.Text.Encoding.UTF8.GetBytes(Convert.ToBase64String([1, 2, 3, 4, 5])),
122122
MimeType = "image/png"
123123
}
124124
],

tests/ModelContextProtocol.Tests/Protocol/ResourceContentsTests.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ public static void BlobResourceContents_UnknownObjectProperty_IsIgnored()
7070
var blobResource = Assert.IsType<BlobResourceContents>(result);
7171
Assert.Equal("file:///test.bin", blobResource.Uri);
7272
Assert.Equal("application/octet-stream", blobResource.MimeType);
73-
Assert.Equal("AQIDBA==", blobResource.Blob);
73+
Assert.Equal("AQIDBA==", System.Text.Encoding.UTF8.GetString(blobResource.Blob.ToArray()));
7474
}
7575

7676
[Fact]
@@ -134,7 +134,7 @@ public static void BlobResourceContents_UnknownNestedArrays_AreIgnored()
134134
Assert.NotNull(result);
135135
var blobResource = Assert.IsType<BlobResourceContents>(result);
136136
Assert.Equal("blob://test", blobResource.Uri);
137-
Assert.Equal("SGVsbG8=", blobResource.Blob);
137+
Assert.Equal("SGVsbG8=", System.Text.Encoding.UTF8.GetString(blobResource.Blob.ToArray()));
138138
Assert.Equal("application/custom", blobResource.MimeType);
139139
}
140140

@@ -193,7 +193,7 @@ public static void BlobResourceContents_UnknownArrayOfArrays_IsIgnored()
193193
Assert.NotNull(result);
194194
var blobResource = Assert.IsType<BlobResourceContents>(result);
195195
Assert.Equal("http://example.com/blob", blobResource.Uri);
196-
Assert.Equal("Zm9v", blobResource.Blob);
196+
Assert.Equal("Zm9v", System.Text.Encoding.UTF8.GetString(blobResource.Blob.ToArray()));
197197
}
198198

199199
[Fact]
@@ -239,7 +239,7 @@ public static void BlobResourceContents_EmptyUnknownObject_IsIgnored()
239239
Assert.NotNull(result);
240240
var blobResource = Assert.IsType<BlobResourceContents>(result);
241241
Assert.Equal("test://blob", blobResource.Uri);
242-
Assert.Equal("YmFy", blobResource.Blob);
242+
Assert.Equal("YmFy", System.Text.Encoding.UTF8.GetString(blobResource.Blob.ToArray()));
243243
}
244244

245245
[Fact]
@@ -301,7 +301,7 @@ public static void BlobResourceContents_VeryDeeplyNestedUnknown_IsIgnored()
301301
Assert.NotNull(result);
302302
var blobResource = Assert.IsType<BlobResourceContents>(result);
303303
Assert.Equal("deep://blob", blobResource.Uri);
304-
Assert.Equal("ZGVlcA==", blobResource.Blob);
304+
Assert.Equal("ZGVlcA==", System.Text.Encoding.UTF8.GetString(blobResource.Blob.ToArray()));
305305
}
306306

307307
[Fact]
@@ -363,7 +363,7 @@ public static void BlobResourceContents_SerializationRoundTrip_PreservesKnownPro
363363
{
364364
Uri = "file:///test.bin",
365365
MimeType = "application/octet-stream",
366-
Blob = "AQIDBA=="
366+
Blob = System.Text.Encoding.UTF8.GetBytes("AQIDBA==")
367367
};
368368

369369
var json = JsonSerializer.Serialize<ResourceContents>(original, McpJsonUtilities.DefaultOptions);
@@ -373,7 +373,7 @@ public static void BlobResourceContents_SerializationRoundTrip_PreservesKnownPro
373373
var blobResource = Assert.IsType<BlobResourceContents>(deserialized);
374374
Assert.Equal(original.Uri, blobResource.Uri);
375375
Assert.Equal(original.MimeType, blobResource.MimeType);
376-
Assert.Equal(original.Blob, blobResource.Blob);
376+
Assert.True(original.Blob.Span.SequenceEqual(blobResource.Blob.Span));
377377
}
378378

379379
[Fact]
@@ -415,7 +415,7 @@ public static void ResourceContents_WithBothTextAndBlob_PrefersBlob()
415415
Assert.NotNull(result);
416416
var blobResource = Assert.IsType<BlobResourceContents>(result);
417417
Assert.Equal("test://both", blobResource.Uri);
418-
Assert.Equal("YmxvYg==", blobResource.Blob);
418+
Assert.Equal("YmxvYg==", System.Text.Encoding.UTF8.GetString(blobResource.Blob.ToArray()));
419419
}
420420

421421
[Fact]
@@ -457,6 +457,6 @@ public static void BlobResourceContents_MissingUri_UsesEmptyString()
457457
Assert.NotNull(result);
458458
var blobResource = Assert.IsType<BlobResourceContents>(result);
459459
Assert.Equal(string.Empty, blobResource.Uri);
460-
Assert.Equal("YmxvYg==", blobResource.Blob);
460+
Assert.Equal("YmxvYg==", System.Text.Encoding.UTF8.GetString(blobResource.Blob.ToArray()));
461461
}
462462
}

0 commit comments

Comments
 (0)