tests: add additional test coverage
This commit is contained in:
@@ -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>();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user