Files
anthropic-client/tests/AnthropicClient.Tests/Unit/Models/MessageTests.cs
T

78 lines
2.0 KiB
C#
Raw Normal View History

2024-06-27 23:26:53 -05:00
namespace AnthropicClient.Tests.Unit.Models;
2024-07-03 16:57:27 -05:00
public class MessageTests : SerializationTest
2024-06-27 23:26:53 -05:00
{
private readonly string _testJson = @"{
""role"": ""assistant"",
""content"": [
{ ""text"": ""text"", ""type"": ""text"" }
]
}";
[Fact]
public void Constructor_WhenCalled_ItShouldInitializeProperties()
{
var role = "assistant";
var content = new List<Content> { new TextContent("text") };
2024-07-03 16:57:27 -05:00
var message = new Message(role, content);
2024-06-27 23:26:53 -05:00
2024-07-03 16:57:27 -05:00
message.Role.Should().Be(role);
message.Content.Should().BeSameAs(content);
2024-06-27 23:26:53 -05:00
}
[Fact]
public void Constructor_WhenCalledAndRoleIsNull_ItShouldThrowArgumentNullException()
{
var content = new List<Content> { new TextContent("text") };
2024-07-03 16:57:27 -05:00
var action = () => new Message(null!, content);
2024-06-27 23:26:53 -05:00
action.Should().Throw<ArgumentNullException>();
}
[Fact]
public void Constructor_WhenCalledAndContentIsNull_ItShouldThrowArgumentNullException()
{
var role = "assistant";
2024-07-03 16:57:27 -05:00
var action = () => new Message(role, null!);
2024-06-27 23:26:53 -05:00
action.Should().Throw<ArgumentNullException>();
}
[Fact]
public void Constructor_WhenCalledAndRoleIsInvalid_ItShouldThrowArgumentException()
{
var role = "invalid";
var content = new List<Content> { new TextContent("text") };
2024-07-03 16:57:27 -05:00
var action = () => new Message(role, content);
2024-06-27 23:26:53 -05:00
action.Should().Throw<ArgumentException>();
}
[Fact]
public void JsonSerialization_WhenSerialized_ItShouldReturnJsonString()
{
var role = "assistant";
var content = new List<Content> { new TextContent("text") };
2024-07-03 16:57:27 -05:00
var message = new Message(role, content);
2024-06-27 23:26:53 -05:00
2024-07-03 16:57:27 -05:00
var actual = Serialize(message);
2024-06-27 23:26:53 -05:00
JsonAssert.Equal(_testJson, actual);
}
[Fact]
2024-07-03 16:57:27 -05:00
public void JsonDeserialization_WhenDeserialized_ItShouldReturnMessage()
2024-06-27 23:26:53 -05:00
{
2024-07-03 16:57:27 -05:00
var message = Deserialize<Message>(_testJson);
2024-06-27 23:26:53 -05:00
2024-07-03 16:57:27 -05:00
message.Should().NotBeNull();
message!.Role.Should().Be("assistant");
message.Content.Should().HaveCount(1);
message.Content[0].Should().BeOfType<TextContent>();
message.Content[0].As<TextContent>().Text.Should().Be("text");
2024-06-27 23:26:53 -05:00
}
}