2024-06-29 22:07:49 -05:00
|
|
|
namespace AnthropicClient.Tests.Unit.Models;
|
|
|
|
|
|
|
|
|
|
public class MessageDeltaEventDataTests : SerializationTest
|
|
|
|
|
{
|
|
|
|
|
private readonly string _testJson = @"{
|
|
|
|
|
""type"": ""message_delta"",
|
|
|
|
|
""delta"": {
|
|
|
|
|
""stop_reason"": ""max_tokens"",
|
|
|
|
|
""stop_sequence"": ""max_tokens""
|
|
|
|
|
},
|
|
|
|
|
""usage"": {
|
|
|
|
|
""input_tokens"": 1,
|
2024-08-16 09:21:43 -05:00
|
|
|
""output_tokens"": 1,
|
|
|
|
|
""cache_creation_input_tokens"": 1,
|
|
|
|
|
""cache_read_input_tokens"": 1
|
2024-06-29 22:07:49 -05:00
|
|
|
}
|
|
|
|
|
}";
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Constructor_WhenCalled_ItShouldInitializeProperties()
|
|
|
|
|
{
|
|
|
|
|
var expectedDelta = new MessageDelta("max_tokens", "max_tokens");
|
2024-08-18 14:59:47 -05:00
|
|
|
var expectedUsage = new Usage
|
|
|
|
|
{
|
|
|
|
|
InputTokens = 1,
|
2024-08-16 09:21:43 -05:00
|
|
|
OutputTokens = 1,
|
|
|
|
|
CacheCreationInputTokens = 1,
|
|
|
|
|
CacheReadInputTokens = 1,
|
|
|
|
|
};
|
2024-06-29 22:07:49 -05:00
|
|
|
|
|
|
|
|
var messageDeltaEventData = new MessageDeltaEventData(expectedDelta, expectedUsage);
|
|
|
|
|
|
|
|
|
|
messageDeltaEventData.Delta.Should().BeSameAs(expectedDelta);
|
|
|
|
|
messageDeltaEventData.Usage.Should().BeSameAs(expectedUsage);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void JsonSerialization_WhenSerialized_ItShouldHaveExpectedShape()
|
|
|
|
|
{
|
|
|
|
|
var expectedDelta = new MessageDelta("max_tokens", "max_tokens");
|
2024-08-18 14:59:47 -05:00
|
|
|
var expectedUsage = new Usage
|
|
|
|
|
{
|
|
|
|
|
InputTokens = 1,
|
2024-08-16 09:21:43 -05:00
|
|
|
OutputTokens = 1,
|
|
|
|
|
CacheCreationInputTokens = 1,
|
|
|
|
|
CacheReadInputTokens = 1,
|
|
|
|
|
};
|
2024-06-29 22:07:49 -05:00
|
|
|
|
|
|
|
|
var messageDeltaEventData = new MessageDeltaEventData(expectedDelta, expectedUsage);
|
|
|
|
|
|
|
|
|
|
var actualJson = Serialize(messageDeltaEventData);
|
|
|
|
|
|
|
|
|
|
JsonAssert.Equal(_testJson, actualJson);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void JsonDeserialization_WhenDeserialized_ItShouldHaveExpectedValues()
|
|
|
|
|
{
|
|
|
|
|
var expectedDelta = new MessageDelta("max_tokens", "max_tokens");
|
2024-08-18 14:59:47 -05:00
|
|
|
var expectedUsage = new Usage
|
|
|
|
|
{
|
|
|
|
|
InputTokens = 1,
|
2024-08-16 09:21:43 -05:00
|
|
|
OutputTokens = 1,
|
|
|
|
|
CacheCreationInputTokens = 1,
|
|
|
|
|
CacheReadInputTokens = 1,
|
|
|
|
|
};
|
2024-06-29 22:07:49 -05:00
|
|
|
|
|
|
|
|
var messageDeltaEventData = Deserialize<MessageDeltaEventData>(_testJson);
|
|
|
|
|
|
|
|
|
|
messageDeltaEventData!.Delta.Should().BeEquivalentTo(expectedDelta);
|
|
|
|
|
messageDeltaEventData.Usage.Should().BeEquivalentTo(expectedUsage);
|
|
|
|
|
}
|
|
|
|
|
}
|