79 lines
2.0 KiB
C#
79 lines
2.0 KiB
C#
namespace AnthropicClient.Tests.Unit.Models;
|
|
|
|
public class ToolResultContentTests : SerializationTest
|
|
{
|
|
[Fact]
|
|
public void Constructor_WhenCalled_ItShouldInitializeProperties()
|
|
{
|
|
var toolUseId = Guid.NewGuid().ToString();
|
|
var content = "content";
|
|
|
|
var actual = new ToolResultContent(toolUseId, content);
|
|
|
|
actual.ToolUseId.Should().Be(toolUseId);
|
|
actual.Content.Should().Be(content);
|
|
actual.Type.Should().Be("tool_result");
|
|
}
|
|
|
|
[Fact]
|
|
public void Constructor_WhenCalledAndToolUseIdIsNull_ItShouldThrowArgumentNullException()
|
|
{
|
|
var content = "content";
|
|
|
|
var action = () => new ToolResultContent(null!, content);
|
|
|
|
action.Should().Throw<ArgumentNullException>();
|
|
}
|
|
|
|
[Fact]
|
|
public void Constructor_WhenCalledAndContentIsNull_ItShouldThrowArgumentNullException()
|
|
{
|
|
var toolUseId = Guid.NewGuid().ToString();
|
|
|
|
var action = () => new ToolResultContent(toolUseId, null!);
|
|
|
|
action.Should().Throw<ArgumentNullException>();
|
|
}
|
|
|
|
[Fact]
|
|
public void JsonSerialization_WhenSerialized_ItShouldReturnJsonString()
|
|
{
|
|
var toolUseId = Guid.NewGuid().ToString();
|
|
var content = "content";
|
|
|
|
var expectedJson = @$"{{
|
|
""tool_use_id"": ""{toolUseId}"",
|
|
""content"": ""{content}"",
|
|
""type"": ""tool_result""
|
|
}}";
|
|
|
|
var toolResultContent = new ToolResultContent
|
|
{
|
|
ToolUseId = toolUseId,
|
|
Content = content
|
|
};
|
|
|
|
var actual = Serialize(toolResultContent);
|
|
|
|
JsonAssert.Equal(expectedJson, actual);
|
|
}
|
|
|
|
[Fact]
|
|
public void JsonDeserialization_WhenDeserialized_ItShouldReturnToolResultContent()
|
|
{
|
|
var toolUseId = Guid.NewGuid().ToString();
|
|
var content = "content";
|
|
|
|
var json = @$"{{
|
|
""tool_use_id"": ""{toolUseId}"",
|
|
""content"": ""{content}"",
|
|
""type"": ""tool_result""
|
|
}}";
|
|
|
|
var actual = Deserialize<ToolResultContent>(json);
|
|
|
|
actual!.ToolUseId.Should().Be(toolUseId);
|
|
actual.Content.Should().Be(content);
|
|
actual.Type.Should().Be("tool_result");
|
|
}
|
|
} |