From 299af3b759e116c77511baf56126565c4654f5d0 Mon Sep 17 00:00:00 2001 From: Stevan Freeborn <65925598+StevanFreeborn@users.noreply.github.com> Date: Fri, 10 Jan 2025 22:52:46 -0600 Subject: [PATCH] tests: add test for batch result type and succeeded batch result model --- .../Models/MessageBatchResultTypeTests.cs | 36 +++++++ .../SucceededMessageBatchResultTests.cs | 95 +++++++++++++++++++ 2 files changed, 131 insertions(+) create mode 100644 tests/AnthropicClient.Tests/Unit/Models/MessageBatchResultTypeTests.cs create mode 100644 tests/AnthropicClient.Tests/Unit/Models/SucceededMessageBatchResultTests.cs diff --git a/tests/AnthropicClient.Tests/Unit/Models/MessageBatchResultTypeTests.cs b/tests/AnthropicClient.Tests/Unit/Models/MessageBatchResultTypeTests.cs new file mode 100644 index 0000000..88381c5 --- /dev/null +++ b/tests/AnthropicClient.Tests/Unit/Models/MessageBatchResultTypeTests.cs @@ -0,0 +1,36 @@ +namespace AnthropicClient.Tests.Unit.Models; + +public class MessageBatchResultTypeTests +{ + [Fact] + public void Succeeded_WhenCalled_ItShouldReturnExpectedValue() + { + var result = MessageBatchResultType.Succeeded; + + result.Should().Be("succeeded"); + } + + [Fact] + public void Errored_WhenCalled_ItShouldReturnExpectedValue() + { + var result = MessageBatchResultType.Errored; + + result.Should().Be("errored"); + } + + [Fact] + public void Canceled_WhenCalled_ItShouldReturnExpectedValue() + { + var result = MessageBatchResultType.Canceled; + + result.Should().Be("canceled"); + } + + [Fact] + public void Expired_WhenCalled_ItShouldReturnExpectedValue() + { + var result = MessageBatchResultType.Expired; + + result.Should().Be("expired"); + } +} \ No newline at end of file diff --git a/tests/AnthropicClient.Tests/Unit/Models/SucceededMessageBatchResultTests.cs b/tests/AnthropicClient.Tests/Unit/Models/SucceededMessageBatchResultTests.cs new file mode 100644 index 0000000..95ce4a0 --- /dev/null +++ b/tests/AnthropicClient.Tests/Unit/Models/SucceededMessageBatchResultTests.cs @@ -0,0 +1,95 @@ +namespace AnthropicClient.Tests.Unit.Models; + +public class SucceededMessageBatchResultTests : SerializationTest +{ + private const string SampleJson = @"{ + ""message"": { + ""id"": ""msg_01FqfsLoHwgeFbguDgpz48m7"", + ""model"": ""claude-3-5-sonnet-20240620"", + ""role"": ""assistant"", + ""stop_reason"": ""end_turn"", + ""type"": ""message"", + ""usage"": { + ""input_tokens"": 10, + ""output_tokens"": 34, + ""cache_creation_input_tokens"": 0, + ""cache_read_input_tokens"": 0 + }, + ""content"": [ + { + ""text"": ""Hello! How can I assist you today? Feel free to ask me any questions or let me know if there\u0027s anything you\u0027d like to chat about."", + ""type"": ""text"" + } + ] + }, + ""type"": ""succeeded"" + }"; + + [Fact] + public void Constructor_WhenCalled_ItShouldReturnAnInstanceWithPropertiesSet() + { + var result = new SucceededMessageBatchResult(); + + result.Type.Should().Be(MessageBatchResultType.Succeeded); + result.Message.Should().BeEquivalentTo(new MessageResponse()); + } + + [Fact] + public void JsonSerialization_WhenSerialized_ItShouldHaveExpectedShape() + { + var result = new SucceededMessageBatchResult + { + Message = new MessageResponse + { + Id = "msg_01FqfsLoHwgeFbguDgpz48m7", + Type = "message", + Role = "assistant", + Model = "claude-3-5-sonnet-20240620", + Content = [ + new TextContent() + { + Text = "Hello! How can I assist you today? Feel free to ask me any questions or let me know if there's anything you'd like to chat about." + } + ], + StopReason = "end_turn", + Usage = new() + { + InputTokens = 10, + OutputTokens = 34 + } + } + }; + + var json = Serialize(result); + + JsonAssert.Equal(SampleJson, json); + } + + [Fact] + public void JsonDeserialization_WhenDeserialized_ItShouldHaveExpectedValues() + { + var result = Deserialize(SampleJson); + + result!.Type.Should().Be(MessageBatchResultType.Succeeded); + result.Message.Should().BeEquivalentTo(new MessageResponse + { + Id = "msg_01FqfsLoHwgeFbguDgpz48m7", + Type = "message", + Role = "assistant", + Model = "claude-3-5-sonnet-20240620", + Content = [ + new TextContent() + { + Text = "Hello! How can I assist you today? Feel free to ask me any questions or let me know if there's anything you'd like to chat about." + } + ], + StopReason = "end_turn", + StopSequence = null, + Usage = new() + { + InputTokens = 10, + OutputTokens = 34 + } + }); + } +} \ No newline at end of file