public void DeserializeAsWattsWithFullySerializedUnit_ShouldReturnValidResult() { // arrange string json = @"{ 'watts': 123.456, 'unit': { 'name': 'kilowatt', 'abbreviation': 'kW', 'valueInWatts': '1000' } }"; var converter = new PowerJsonConverter(); var expectedResult = new Power(watts: (number)123.456m) .Convert(new PowerUnit( name: "kilowatt", abbreviation: "kW", valueInWatts: (number)1000)); // act var result = JsonConvert.DeserializeObject <Power>(json, converter); // assert result.Should().Be(expectedResult); }
public void Serialize_ShouldReturnValidJson(PowerSerializeTestData testData) { // arrange var converter = new PowerJsonConverter(testData.Format, testData.UnitFormat); // act string actualJson = JsonConvert.SerializeObject(testData.Quantity, converter); // assert actualJson.Should().MatchRegex(testData.ExpectedJsonPattern); }
public void DeserializeAsWatts_ShouldReturnValidResult() { // arrange string json = @"{ 'watts': 123.456 }"; var converter = new PowerJsonConverter(); var expectedResult = new Power(watts: (number)123.456m); // act var result = JsonConvert.DeserializeObject <Power>(json, converter); // assert result.Should().Be(expectedResult); }
public void DeserializeAsWattsWithPredefinedUnit_ShouldReturnValidResult() { // arrange string json = @"{ 'watts': 123.456, 'unit': 'kW' }"; var converter = new PowerJsonConverter(); var expectedResult = new Power(watts: (number)123.456m) .Convert(PowerUnit.Kilowatt); // act var result = JsonConvert.DeserializeObject <Power>(json, converter); // assert result.Should().Be(expectedResult); }
public void SerializeAndDeserializeWithoutWatts_ShouldBeApproximatelyIdempotent() { // arrange var power = Fixture.Create <Power>(); var converter = new PowerJsonConverter(PowerJsonSerializationFormat.AsValueWithUnit); // act string serializedPower1 = JsonConvert.SerializeObject(power, converter); var deserializedPower1 = JsonConvert.DeserializeObject <Power>(serializedPower1, converter); string serializedPower2 = JsonConvert.SerializeObject(deserializedPower1, converter); var deserializedPower2 = JsonConvert.DeserializeObject <Power>(serializedPower2, converter); // assert deserializedPower1.Watts.Should().BeApproximately(power.Watts); deserializedPower2.Watts.Should().BeApproximately(power.Watts); deserializedPower2.Should().Be(deserializedPower1); serializedPower2.Should().Be(serializedPower1); }
public void SerializeAndDeserializeWithWatts_ShouldBeIdempotent(PowerJsonSerializationFormat format, LinearUnitJsonSerializationFormat unitFormat) { // arrange var power = Fixture.Create <Power>(); var converter = new PowerJsonConverter(format, unitFormat); // act string serializedPower1 = JsonConvert.SerializeObject(power, converter); var deserializedPower1 = JsonConvert.DeserializeObject <Power>(serializedPower1, converter); string serializedPower2 = JsonConvert.SerializeObject(deserializedPower1, converter); var deserializedPower2 = JsonConvert.DeserializeObject <Power>(serializedPower2, converter); // assert deserializedPower1.Should().Be(power); deserializedPower2.Should().Be(power); deserializedPower2.Should().Be(deserializedPower1); serializedPower2.Should().Be(serializedPower1); }