feat: add unit tests for DocumentContent, CustomSource, PageLocationCitation, SourceType, and TextSource classes

chore: update VSCode settings to exclude docs from search
This commit is contained in:
Stevan Freeborn
2025-06-20 22:23:57 -05:00
parent d2173555bc
commit 68e91fcdbb
6 changed files with 104 additions and 1 deletions
@@ -0,0 +1,35 @@
namespace AnthropicClient.Tests.Unit.Models;
public class CustomSourceTests
{
[Fact]
public void Constructor_WhenCalled_ItShouldSetProperties()
{
var result = new CustomSource();
result.Content.Should().BeEmpty();
result.Type.Should().Be("content");
}
[Fact]
public void Constructor_WhenCalledWithContent_ItShouldSetProperties()
{
var content = new List<TextContent>
{
new("Sample text")
};
var result = new CustomSource(content);
result.Content.Should().BeSameAs(content);
result.Type.Should().Be("content");
}
[Fact]
public void Constructor_WhenCalledWithNullContent_ItShouldThrowArgumentNullException()
{
var act = () => new CustomSource(null!);
act.Should().Throw<ArgumentNullException>();
}
}
@@ -87,6 +87,18 @@ public class DocumentContentTests : SerializationTest
action.Should().Throw<ArgumentNullException>();
}
[Fact]
public void Constructor_WhenCalledWithSourceAndCacheControl_ItShouldInitializeSourceAndCacheControl()
{
var source = new DocumentSource("application/pdf", "data");
var cacheControl = new EphemeralCacheControl();
var result = new DocumentContent(source, cacheControl);
result.Source.Should().BeSameAs(source);
result.CacheControl.Should().BeSameAs(cacheControl);
}
[Fact]
public void JsonSerialization_WhenSerialized_ItShouldHaveExpectedShape()
{
@@ -0,0 +1,17 @@
namespace AnthropicClient.Tests.Unit.Models;
public class PageLocationCitationTests
{
[Fact]
public void Constructor_WhenCalled_ItShouldSetProperties()
{
var result = new PageLocationCitation();
result.Type.Should().Be("page_location");
result.CitedText.Should().BeEmpty();
result.DocumentIndex.Should().Be(0);
result.DocumentTitle.Should().BeEmpty();
result.StartPageNumber.Should().Be(0);
result.EndPageNumber.Should().Be(0);
}
}
@@ -0,0 +1,22 @@
namespace AnthropicClient.Tests.Unit.Models;
public class SourceTypeTests
{
[Fact]
public void Base64_WhenCalled_ItShouldReturnCorrectValue()
{
SourceType.Base64.Should().Be("base64");
}
[Fact]
public void Content_WhenCalled_ItShouldReturnCorrectValue()
{
SourceType.Content.Should().Be("content");
}
[Fact]
public void Text_WhenCalled_ItShouldReturnCorrectValue()
{
SourceType.Text.Should().Be("text");
}
}
@@ -0,0 +1,14 @@
namespace AnthropicClient.Tests.Unit.Models;
public class TextSourceTests
{
[Fact]
public void Constructor_WhenCalled_ItShouldSetProperties()
{
var result = new TextSource("data");
result.Type.Should().Be("text");
result.MediaType.Should().Be("text/plain");
result.Data.Should().Be("data");
}
}