namespace AnthropicClient.Tests.Unit.Models; public class InputPropertyTests : SerializationTest { private readonly string _testJson = @"{ ""type"": ""type"", ""description"": ""description"" }"; [Fact] public void Constructor_WhenCalled_ShouldInitializeProperties() { var type = "type"; var description = "description"; var inputProperty = new InputProperty(type, description); inputProperty.Type.Should().Be(type); inputProperty.Description.Should().Be(description); } [Fact] public void Constructor_WhenTypeIsNull_ShouldThrowArgumentNullException() { var description = "description"; var action = () => new InputProperty(null!, description); action.Should().Throw().WithMessage("Value cannot be null. (Parameter 'type')"); } [Fact] public void Constructor_WhenDescriptionIsNull_ShouldThrowArgumentNullException() { var type = "type"; var action = () => new InputProperty(type, null!); action.Should().Throw().WithMessage("Value cannot be null. (Parameter 'description')"); } [Fact] public void JsonSerialization_WhenSerialized_ItShouldHaveExpectedShape() { var inputProperty = new InputProperty("type", "description"); var json = Serialize(inputProperty); JsonAssert.Equal(_testJson, json); } [Fact] public void JsonDeserialization_WhenDeserialized_ItShouldHaveExpectedShape() { var inputProperty = Deserialize(_testJson); inputProperty!.Type.Should().Be("type"); inputProperty.Description.Should().Be("description"); } }