Esempio n. 1
0
        public void DeserializeAsSquareMetresWithFullySerializedUnit_ShouldReturnValidResult()
        {
            // arrange
            string json           = @"{
  'squareMetres': 123.456,
  'unit': {
    'name': 'square millimetre',
    'abbreviation': 'mm²',
    'valueInSquareMetres': '0.000001'
  }
}";
            var    converter      = new AreaJsonConverter();
            var    expectedResult =
                new Area(squareMetres: (number)123.456m)
                .Convert(new AreaUnit(
                             name: "square millimetre",
                             abbreviation: "mm²",
                             valueInSquareMetres: (number)0.000001));

            // act
            var result = JsonConvert.DeserializeObject <Area>(json, converter);

            // assert
            result.Should().Be(expectedResult);
        }
Esempio n. 2
0
        public void Serialize_ShouldReturnValidJson(AreaSerializeTestData testData)
        {
            // arrange
            var converter = new AreaJsonConverter(testData.Format, testData.UnitFormat);

            // act
            string actualJson = JsonConvert.SerializeObject(testData.Quantity, converter);

            // assert
            actualJson.Should().MatchRegex(testData.ExpectedJsonPattern);
        }
Esempio n. 3
0
        public void DeserializeAsSquareMetres_ShouldReturnValidResult()
        {
            // arrange
            string json           = @"{
  'squareMetres': 123.456
}";
            var    converter      = new AreaJsonConverter();
            var    expectedResult =
                new Area(squareMetres: (number)123.456m);

            // act
            var result = JsonConvert.DeserializeObject <Area>(json, converter);

            // assert
            result.Should().Be(expectedResult);
        }
Esempio n. 4
0
        public void DeserializeAsSquareMetresWithPredefinedUnit_ShouldReturnValidResult()
        {
            // arrange
            string json           = @"{
  'squareMetres': 123.456,
  'unit': 'mm²'
}";
            var    converter      = new AreaJsonConverter();
            var    expectedResult =
                new Area(squareMetres: (number)123.456m)
                .Convert(AreaUnit.SquareMillimetre);

            // act
            var result = JsonConvert.DeserializeObject <Area>(json, converter);

            // assert
            result.Should().Be(expectedResult);
        }
Esempio n. 5
0
        public void SerializeAndDeserializeWithoutSquareMetres_ShouldBeApproximatelyIdempotent()
        {
            // arrange
            var area      = Fixture.Create <Area>();
            var converter = new AreaJsonConverter(AreaJsonSerializationFormat.AsValueWithUnit);

            // act
            string serializedArea1   = JsonConvert.SerializeObject(area, converter);
            var    deserializedArea1 = JsonConvert.DeserializeObject <Area>(serializedArea1, converter);
            string serializedArea2   = JsonConvert.SerializeObject(deserializedArea1, converter);
            var    deserializedArea2 = JsonConvert.DeserializeObject <Area>(serializedArea2, converter);

            // assert
            deserializedArea1.SquareMetres.Should().BeApproximately(area.SquareMetres);
            deserializedArea2.SquareMetres.Should().BeApproximately(area.SquareMetres);

            deserializedArea2.Should().Be(deserializedArea1);
            serializedArea2.Should().Be(serializedArea1);
        }
Esempio n. 6
0
        public void SerializeAndDeserializeWithSquareMetres_ShouldBeIdempotent(AreaJsonSerializationFormat format, LinearUnitJsonSerializationFormat unitFormat)
        {
            // arrange
            var area      = Fixture.Create <Area>();
            var converter = new AreaJsonConverter(format, unitFormat);

            // act
            string serializedArea1   = JsonConvert.SerializeObject(area, converter);
            var    deserializedArea1 = JsonConvert.DeserializeObject <Area>(serializedArea1, converter);
            string serializedArea2   = JsonConvert.SerializeObject(deserializedArea1, converter);
            var    deserializedArea2 = JsonConvert.DeserializeObject <Area>(serializedArea2, converter);

            // assert
            deserializedArea1.Should().Be(area);
            deserializedArea2.Should().Be(area);

            deserializedArea2.Should().Be(deserializedArea1);
            serializedArea2.Should().Be(serializedArea1);
        }