forked from modelcontextprotocol/csharp-sdk
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAIContentExtensionsTests.cs
More file actions
28 lines (22 loc) · 1.11 KB
/
AIContentExtensionsTests.cs
File metadata and controls
28 lines (22 loc) · 1.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
using Microsoft.Extensions.AI;
using ModelContextProtocol.Protocol;
using System.Text.Json;
namespace ModelContextProtocol.Tests;
public class AIContentExtensionsTests
{
[Fact]
public void CallToolResult_ToChatMessage_ProducesExpectedAIContent()
{
CallToolResult toolResult = new() { Content = [new TextContentBlock { Text = "This is a test message." }] };
Assert.Throws<ArgumentNullException>(() => AIContentExtensions.ToChatMessage(null!, "call123"));
Assert.Throws<ArgumentNullException>(() => AIContentExtensions.ToChatMessage(toolResult, null!));
ChatMessage message = AIContentExtensions.ToChatMessage(toolResult, "call123");
Assert.NotNull(message);
Assert.Equal(ChatRole.Tool, message.Role);
FunctionResultContent frc = Assert.IsType<FunctionResultContent>(Assert.Single(message.Contents));
Assert.Same(toolResult, frc.RawRepresentation);
Assert.Equal("call123", frc.CallId);
JsonElement result = Assert.IsType<JsonElement>(frc.Result);
Assert.Contains("This is a test message.", result.ToString());
}
}