public void DeserializeAsKilogramsWithFullySerializedUnit_ShouldReturnValidResult() { // arrange string json = @"{ 'kilograms': 123.456, 'unit': { 'name': 'gram', 'abbreviation': 'g', 'valueInKilograms': '0.001' } }"; var converter = new WeightJsonConverter(); var expectedResult = new Weight(kilograms: (number)123.456m) .Convert(new WeightUnit( name: "gram", abbreviation: "g", valueInKilograms: (number)0.001m)); // act var result = JsonConvert.DeserializeObject <Weight>(json, converter); // assert result.Should().Be(expectedResult); }
public void Serialize_ShouldReturnValidJson(WeightSerializeTestData testData) { // arrange var converter = new WeightJsonConverter(testData.Format, testData.UnitFormat); // act string actualJson = JsonConvert.SerializeObject(testData.Quantity, converter); // assert actualJson.Should().MatchRegex(testData.ExpectedJsonPattern); }
public void DeserializeAsKilograms_ShouldReturnValidResult() { // arrange string json = @"{ 'kilograms': 123.456 }"; var converter = new WeightJsonConverter(); var expectedResult = new Weight(kilograms: (number)123.456m); // act var result = JsonConvert.DeserializeObject <Weight>(json, converter); // assert result.Should().Be(expectedResult); }
public void SerializeAndDeserializeWithoutKilograms_ShouldBeApproximatelyIdempotent() { // arrange var weight = Fixture.Create <Weight>(); var converter = new WeightJsonConverter(WeightJsonSerializationFormat.AsValueWithUnit); // act string serializedWeight1 = JsonConvert.SerializeObject(weight, converter); var deserializedWeight1 = JsonConvert.DeserializeObject <Weight>(serializedWeight1, converter); string serializedWeight2 = JsonConvert.SerializeObject(deserializedWeight1, converter); var deserializedWeight2 = JsonConvert.DeserializeObject <Weight>(serializedWeight2, converter); // assert deserializedWeight1.Kilograms.Should().BeApproximately(weight.Kilograms); deserializedWeight2.Kilograms.Should().BeApproximately(weight.Kilograms); deserializedWeight2.Should().Be(deserializedWeight1); serializedWeight2.Should().Be(serializedWeight1); }
public void SerializeAndDeserializeWithKilograms_ShouldBeIdempotent(WeightJsonSerializationFormat format, LinearUnitJsonSerializationFormat unitFormat) { // arrange var weight = Fixture.Create <Weight>(); var converter = new WeightJsonConverter(format, unitFormat); // act string serializedWeight1 = JsonConvert.SerializeObject(weight, converter); var deserializedWeight1 = JsonConvert.DeserializeObject <Weight>(serializedWeight1, converter); string serializedWeight2 = JsonConvert.SerializeObject(deserializedWeight1, converter); var deserializedWeight2 = JsonConvert.DeserializeObject <Weight>(serializedWeight2, converter); // assert deserializedWeight1.Should().Be(weight); deserializedWeight2.Should().Be(weight); deserializedWeight2.Should().Be(deserializedWeight1); serializedWeight2.Should().Be(serializedWeight1); }