public void TestClassWithGuidPhiloteSerializeToJson(TestClassWithGuidPhiloteTestData inTestData) { // ToDo low priority localize the unit test's exception's message if (inTestData == null) { throw new ArgumentNullException($"{nameof(inTestData)} argument should never be null"); } if (Regex.Match(inTestData.SerializedTestData, "\"ID\":(0000|0123)").Success) { //SerializationSystemTextJsonFixture.Serializer.Serialize(inTestData.InstanceTestData).Should().Be(inTestData.SerializedTestData); JsonSerializer.Serialize(inTestData.InstanceTestData, SerializationFixture.JsonSerializerOptions).Should().Be(inTestData.SerializedTestData); } else { //SerializationSystemTextJsonFixture.Serializer.Serialize(inTestData.InstanceTestData).Should().MatchRegex("^[0-9A-Fa-f]{8}-?([0-9A-Fa-f]{4}-?){3}[0-9A-Fa-f]{12}$"); JsonSerializer.Serialize(inTestData.InstanceTestData, SerializationFixture.JsonSerializerOptions).Should().BeOfType(typeof(string), "the serializer should have returned a string representation of the TestClassWithGuidPhilote "); } }
public void TestClassWithGuidPhiloteDeserializeFromJson(TestClassWithGuidPhiloteTestData inTestData) { // ToDo low priority localize the unit test's exception's message if (inTestData == null) { throw new ArgumentNullException($"{nameof(inTestData)} argument should never be null"); } if (String.IsNullOrEmpty(inTestData.SerializedTestData)) { Action act = () => JsonSerializer.Deserialize <TestClassWithPhilote <Guid> >(inTestData.SerializedTestData, SerializationFixture.JsonSerializerOptions); act.Should().Throw <System.Text.Json.JsonException>() .WithMessage("The input does not contain any JSON tokens.*"); } else if (Regex.Match(inTestData.SerializedTestData, "\"ID\":(0000|0123)").Success) { //SerializationSystemTextJsonFixture.Serializer.Deserialize<TestClassWithGuidPhilote>(inTestData.SerializedTestData).Should().BeEquivalentTo(inTestData.InstanceTestData); var deserialized = JsonSerializer.Deserialize <TestClassWithPhilote <Guid> >(inTestData.SerializedTestData, SerializationFixture.JsonSerializerOptions); deserialized.Should().BeEquivalentTo(inTestData.InstanceTestData); } else { // ToDo: validate that strings that don't match an int throw an exception } }