tests: add additional test coverage

This commit is contained in:
Stevan Freeborn
2025-07-08 21:56:13 -05:00
parent 598eaaad94
commit 2732ae2b21
7 changed files with 198 additions and 10 deletions
@@ -1,7 +1,13 @@
namespace AnthropicClient.Tests.Unit.Models;
public class Base64SourceTests
public class Base64SourceTests : SerializationTest
{
private readonly string _testJson = @"{
""type"": ""base64"",
""media_type"": ""application/pdf"",
""data"": ""base64data""
}";
[Fact]
public void Constructor_WhenCalledWithValidArguments_ItShouldSetProperties()
{
@@ -36,4 +42,47 @@ public class Base64SourceTests
action.Should().Throw<ArgumentNullException>();
}
[Fact]
public void JsonSerialization_WhenSerialized_ItShouldHaveExpectedShape()
{
var mediaType = "application/pdf";
var data = "base64data";
var source = new Base64Source(mediaType, data);
var result = Serialize<Source>(source);
JsonAssert.Equal(_testJson, result);
}
[Fact]
public void JsonDeserialization_WhenDeserialized_ItShouldHaveExpectedShape()
{
var source = Deserialize<Source>(_testJson);
var base64Source = source.As<Base64Source>();
base64Source!.Type.Should().Be("base64");
base64Source.MediaType.Should().Be("application/pdf");
base64Source.Data.Should().Be("base64data");
}
[Fact]
public void JsonDeserialization_WhenMediaTypeIsMissing_ItShouldThrowException()
{
var json = @"{ ""type"": ""base64"", ""data"": ""base64data"" }";
var action = () => Deserialize<Source>(json);
action.Should().Throw<JsonException>();
}
[Fact]
public void JsonDeserialization_WhenMediaTypeIsNull_ItShouldThrowException()
{
var json = @"{ ""type"": ""base64"", ""media_type"": null, ""data"": ""base64data"" }";
var action = () => Deserialize<Source>(json);
action.Should().Throw<JsonException>();
}
}