tests: add test to make sure cache control can be set on tool use content objects

This commit is contained in:
Stevan Freeborn
2024-08-18 11:20:19 -05:00
parent 0c160e998a
commit e47095e03d
@@ -22,6 +22,26 @@ public class ToolUseContentTests : SerializationTest
actual.Type.Should().Be("tool_use");
}
[Fact]
public void CacheControl_WhenCalledToSetCacheControl_ItShouldSetCacheControl()
{
var id = Guid.NewGuid().ToString();
var name = "name";
var input = new Dictionary<string, object?> { { "name", "input" } };
var cacheControl = new EphemeralCacheControl();
var toolUseContent = new ToolUseContent()
{
Id = id,
Name = name,
Input = input
};
toolUseContent.CacheControl = cacheControl;
toolUseContent.CacheControl.Should().BeSameAs(cacheControl);
}
[Fact]
public void JsonSerialization_WhenSerialized_ItShouldReturnJsonString()
{
@@ -48,6 +68,35 @@ public class ToolUseContentTests : SerializationTest
JsonAssert.Equal(expectedJson, actual);
}
[Fact]
public void JsonSerialization_WhenSerializedWithCacheControl_ItShouldReturnJsonString()
{
var id = Guid.NewGuid().ToString();
var name = "name";
var input = new Dictionary<string, object?> { { "name", "input" } };
var cacheControl = new EphemeralCacheControl();
var expectedJson = @$"{{
""id"": ""{id}"",
""name"": ""{name}"",
""input"": {{ ""name"": ""input"" }},
""cache_control"": {{ ""type"": ""ephemeral"" }},
""type"": ""tool_use""
}}";
var toolUseContent = new ToolUseContent()
{
Id = id,
Name = name,
Input = input,
CacheControl = cacheControl
};
var actual = Serialize(toolUseContent);
JsonAssert.Equal(expectedJson, actual);
}
[Fact]
public void JsonDeserialization_WhenDeserialized_ItShouldReturnToolUseContent()
{