コード例 #1
0
 public PowerJsonConverter(
     PowerJsonSerializationFormat serializationFormat          = PowerJsonSerializationFormat.AsWattsWithUnit,
     LinearUnitJsonSerializationFormat unitSerializationFormat = LinearUnitJsonSerializationFormat.PredefinedAsString)
     : base(
         unitConverter: new PowerUnitJsonConverter(unitSerializationFormat),
         serializationFormat: (QuantityJsonSerializationFormat)serializationFormat)
 {
 }
コード例 #2
0
 public VolumeJsonConverter(
     VolumeJsonSerializationFormat serializationFormat         = VolumeJsonSerializationFormat.AsCubicMetresWithUnit,
     LinearUnitJsonSerializationFormat unitSerializationFormat = LinearUnitJsonSerializationFormat.PredefinedAsString)
     : base(
         unitConverter: new VolumeUnitJsonConverter(unitSerializationFormat),
         serializationFormat: (QuantityJsonSerializationFormat)serializationFormat)
 {
 }
コード例 #3
0
 public AngleJsonConverter(
     AngleJsonSerializationFormat serializationFormat          = AngleJsonSerializationFormat.AsTurnsWithUnit,
     LinearUnitJsonSerializationFormat unitSerializationFormat = LinearUnitJsonSerializationFormat.PredefinedAsString)
     : base(
         unitConverter: new AngleUnitJsonConverter(unitSerializationFormat),
         serializationFormat: (QuantityJsonSerializationFormat)serializationFormat)
 {
 }
コード例 #4
0
 public AreaJsonConverter(
     AreaJsonSerializationFormat serializationFormat           = AreaJsonSerializationFormat.AsSquareMetresWithUnit,
     LinearUnitJsonSerializationFormat unitSerializationFormat = LinearUnitJsonSerializationFormat.PredefinedAsString)
     : base(
         unitConverter: new AreaUnitJsonConverter(unitSerializationFormat),
         serializationFormat: (QuantityJsonSerializationFormat)serializationFormat)
 {
 }
コード例 #5
0
 public LengthJsonConverter(
     LengthJsonSerializationFormat serializationFormat         = LengthJsonSerializationFormat.AsMetresWithUnit,
     LinearUnitJsonSerializationFormat unitSerializationFormat = LinearUnitJsonSerializationFormat.PredefinedAsString)
     : base(
         unitConverter: new LengthUnitJsonConverter(unitSerializationFormat),
         serializationFormat: (QuantityJsonSerializationFormat)serializationFormat)
 {
 }
コード例 #6
0
 public WeightJsonConverter(
     WeightJsonSerializationFormat serializationFormat         = WeightJsonSerializationFormat.AsKilogramsWithUnit,
     LinearUnitJsonSerializationFormat unitSerializationFormat = LinearUnitJsonSerializationFormat.PredefinedAsString)
     : base(
         unitConverter: new WeightUnitJsonConverter(unitSerializationFormat),
         serializationFormat: (QuantityJsonSerializationFormat)serializationFormat)
 {
 }
コード例 #7
0
 public EnergyUnitJsonConverter(
     LinearUnitJsonSerializationFormat serializationFormat     = LinearUnitJsonSerializationFormat.AlwaysFull,
     TryParseDelegate <EnergyUnit> tryReadCustomPredefinedUnit = null)
     : base(serializationFormat, tryReadCustomPredefinedUnit)
 {
     _predefinedUnits = EnergyUnit.GetPredefinedUnits()
                        .ToDictionary(e => e.Abbreviation);
 }
コード例 #8
0
 public SpeedJsonConverter(
     SpeedJsonSerializationFormat serializationFormat          = SpeedJsonSerializationFormat.AsMetresPerSecondWithUnit,
     LinearUnitJsonSerializationFormat unitSerializationFormat = LinearUnitJsonSerializationFormat.PredefinedAsString)
     : base(
         unitConverter: new SpeedUnitJsonConverter(unitSerializationFormat),
         serializationFormat: (QuantityJsonSerializationFormat)serializationFormat)
 {
 }
コード例 #9
0
 public EnergyJsonConverter(
     EnergyJsonSerializationFormat serializationFormat         = EnergyJsonSerializationFormat.AsJoulesWithUnit,
     LinearUnitJsonSerializationFormat unitSerializationFormat = LinearUnitJsonSerializationFormat.PredefinedAsString)
     : base(
         unitConverter: new EnergyUnitJsonConverter(unitSerializationFormat),
         serializationFormat: (QuantityJsonSerializationFormat)serializationFormat)
 {
 }
コード例 #10
0
 public PowerSerializeTestData(
     Power value,
     PowerJsonSerializationFormat format,
     LinearUnitJsonSerializationFormat unitFormat,
     string expectedJsonPattern)
     : base(value, unitFormat, expectedJsonPattern)
 {
     Format = format;
 }
コード例 #11
0
 public VolumeSerializeTestData(
     Volume value,
     VolumeJsonSerializationFormat format,
     LinearUnitJsonSerializationFormat unitFormat,
     string expectedJsonPattern)
     : base(value, unitFormat, expectedJsonPattern)
 {
     Format = format;
 }
コード例 #12
0
 public SpeedSerializeTestData(
     Speed value,
     SpeedJsonSerializationFormat format,
     LinearUnitJsonSerializationFormat unitFormat,
     string expectedJsonPattern)
     : base(value, unitFormat, expectedJsonPattern)
 {
     Format = format;
 }
コード例 #13
0
 public WeightSerializeTestData(
     Weight value,
     WeightJsonSerializationFormat format,
     LinearUnitJsonSerializationFormat unitFormat,
     string expectedJsonPattern)
     : base(value, unitFormat, expectedJsonPattern)
 {
     Format = format;
 }
コード例 #14
0
 public LengthSerializeTestData(
     Length value,
     LengthJsonSerializationFormat format,
     LinearUnitJsonSerializationFormat unitFormat,
     string expectedJsonPattern)
     : base(value, unitFormat, expectedJsonPattern)
 {
     Format = format;
 }
コード例 #15
0
 public QuantitySerializeTestData(
     TQuantity quantity,
     LinearUnitJsonSerializationFormat unitFormat,
     string expectedJsonPattern)
 {
     Quantity            = quantity;
     UnitFormat          = unitFormat;
     ExpectedJsonPattern = expectedJsonPattern;
 }
コード例 #16
0
 protected LinearNamedUnitJsonConverterBase(
     LinearUnitJsonSerializationFormat serializationFormat,
     TryParseDelegate <TUnit> tryReadCustomPredefinedUnit)
 {
     _serializationFormat         = serializationFormat;
     _tryReadCustomPredefinedUnit =
         tryReadCustomPredefinedUnit
         ?? TryReadCustomPredefinedUnit;
 }
コード例 #17
0
 public AreaSerializeTestData(
     Area value,
     AreaJsonSerializationFormat format,
     LinearUnitJsonSerializationFormat unitFormat,
     string expectedJsonPattern)
     : base(value, unitFormat, expectedJsonPattern)
 {
     Format = format;
 }
コード例 #18
0
 public EnergySerializeTestData(
     Energy value,
     EnergyJsonSerializationFormat format,
     LinearUnitJsonSerializationFormat unitFormat,
     string expectedJsonPattern)
     : base(value, unitFormat, expectedJsonPattern)
 {
     Format = format;
 }
コード例 #19
0
 public AngleUnitJsonConverter(
     LinearUnitJsonSerializationFormat serializationFormat    = LinearUnitJsonSerializationFormat.AlwaysFull,
     TryParseDelegate <AngleUnit> tryReadCustomPredefinedUnit = null)
 {
     _predefinedUnits = AngleUnit.GetPredefinedUnits()
                        .ToDictionary(e => e.Abbreviation);
     _serializationFormat         = serializationFormat;
     _tryReadCustomPredefinedUnit =
         tryReadCustomPredefinedUnit
         ?? TryReadCustomPredefinedUnit;
 }
コード例 #20
0
        public void SerializePredefinedUnit_ShouldReturnValidJson(LinearUnitJsonSerializationFormat serializationFormat, string expectedJson)
        {
            // arrange
            var unit      = AngleUnit.Degree;
            var converter = new AngleUnitJsonConverter(serializationFormat);

            // act
            string actualJson = JsonConvert.SerializeObject(new SomeUnitOwner <AngleUnit> {
                Unit = unit
            }, converter);

            // assert
            actualJson.Should().Be(expectedJson);
        }
コード例 #21
0
        public void SerializePredefinedUnit_ShouldReturnValidJson(LinearUnitJsonSerializationFormat serializationFormat, string expectedJsonPattern)
        {
            // arrange
            var unit      = SpeedUnit.KilometrePerHour;
            var converter = new SpeedUnitJsonConverter(serializationFormat);

            // act
            string actualJson = JsonConvert.SerializeObject(new SomeUnitOwner <SpeedUnit> {
                Unit = unit
            }, converter);

            // assert
            actualJson.Should().MatchRegex(expectedJsonPattern);
        }
コード例 #22
0
        public void SerializeAndDeserialize_ShouldBeIdempotent(LinearUnitJsonSerializationFormat serializationFormat)
        {
            // arrange
            var obj = new SomeUnitOwner <SpeedUnit> {
                Unit = Fixture.Create <SpeedUnit>()
            };
            var converter = new SpeedUnitJsonConverter(serializationFormat);

            // act
            string serializedObj1   = JsonConvert.SerializeObject(obj, converter);
            var    deserializedObj1 = JsonConvert.DeserializeObject <SomeUnitOwner <SpeedUnit> >(serializedObj1, converter);
            string serializedObj2   = JsonConvert.SerializeObject(deserializedObj1, converter);
            var    deserializedObj2 = JsonConvert.DeserializeObject <SomeUnitOwner <SpeedUnit> >(serializedObj2, converter);

            // assert
            deserializedObj1.Unit.Should().Be(obj.Unit);
            deserializedObj2.Unit.Should().Be(obj.Unit);

            deserializedObj2.Unit.Should().Be(deserializedObj1.Unit);
            serializedObj2.Should().Be(serializedObj1);
        }
コード例 #23
0
        public void SerializeAndDeserializeWithMetresPerSecond_ShouldBeIdempotent(SpeedJsonSerializationFormat format, LinearUnitJsonSerializationFormat unitFormat)
        {
            // arrange
            var speed     = Fixture.Create <Speed>();
            var converter = new SpeedJsonConverter(format, unitFormat);

            // act
            string serializedSpeed1   = JsonConvert.SerializeObject(speed, converter);
            var    deserializedSpeed1 = JsonConvert.DeserializeObject <Speed>(serializedSpeed1, converter);
            string serializedSpeed2   = JsonConvert.SerializeObject(deserializedSpeed1, converter);
            var    deserializedSpeed2 = JsonConvert.DeserializeObject <Speed>(serializedSpeed2, converter);

            // assert
            deserializedSpeed1.Should().Be(speed);
            deserializedSpeed2.Should().Be(speed);

            deserializedSpeed2.Should().Be(deserializedSpeed1);
            serializedSpeed2.Should().Be(serializedSpeed1);
        }
コード例 #24
0
        public void SerializeAndDeserializeWithCubicMetres_ShouldBeIdempotent(VolumeJsonSerializationFormat format, LinearUnitJsonSerializationFormat unitFormat)
        {
            // arrange
            var volume    = Fixture.Create <Volume>();
            var converter = new VolumeJsonConverter(format, unitFormat);

            // act
            string serializedVolume1   = JsonConvert.SerializeObject(volume, converter);
            var    deserializedVolume1 = JsonConvert.DeserializeObject <Volume>(serializedVolume1, converter);
            string serializedVolume2   = JsonConvert.SerializeObject(deserializedVolume1, converter);
            var    deserializedVolume2 = JsonConvert.DeserializeObject <Volume>(serializedVolume2, converter);

            // assert
            deserializedVolume1.Should().Be(volume);
            deserializedVolume2.Should().Be(volume);

            deserializedVolume2.Should().Be(deserializedVolume1);
            serializedVolume2.Should().Be(serializedVolume1);
        }
コード例 #25
0
        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);
        }
コード例 #26
0
        public void SerializeAndDeserializeWithJoules_ShouldBeIdempotent(EnergyJsonSerializationFormat format, LinearUnitJsonSerializationFormat unitFormat)
        {
            // arrange
            var energy    = Fixture.Create <Energy>();
            var converter = new EnergyJsonConverter(format, unitFormat);

            // act
            string serializedEnergy1   = JsonConvert.SerializeObject(energy, converter);
            var    deserializedEnergy1 = JsonConvert.DeserializeObject <Energy>(serializedEnergy1, converter);
            string serializedEnergy2   = JsonConvert.SerializeObject(deserializedEnergy1, converter);
            var    deserializedEnergy2 = JsonConvert.DeserializeObject <Energy>(serializedEnergy2, converter);

            // assert
            deserializedEnergy1.Should().Be(energy);
            deserializedEnergy2.Should().Be(energy);

            deserializedEnergy2.Should().Be(deserializedEnergy1);
            serializedEnergy2.Should().Be(serializedEnergy1);
        }
コード例 #27
0
        public void SerializeAndDeserializeWithTurns_ShouldBeIdempotent(AngleJsonSerializationFormat format, LinearUnitJsonSerializationFormat unitFormat)
        {
            // arrange
            var angle     = Fixture.Create <Angle>();
            var converter = new AngleJsonConverter(format, unitFormat);

            // act
            string serializedAngle1   = JsonConvert.SerializeObject(angle, converter);
            var    deserializedAngle1 = JsonConvert.DeserializeObject <Angle>(serializedAngle1, converter);
            string serializedAngle2   = JsonConvert.SerializeObject(deserializedAngle1, converter);
            var    deserializedAngle2 = JsonConvert.DeserializeObject <Angle>(serializedAngle2, converter);

            // assert
            deserializedAngle1.Should().Be(angle);
            deserializedAngle2.Should().Be(angle);

            deserializedAngle2.Should().Be(deserializedAngle1);
            serializedAngle2.Should().Be(serializedAngle1);
        }
コード例 #28
0
        public void SerializeAndDeserializeWithMetres_ShouldBeIdempotent(LengthJsonSerializationFormat format, LinearUnitJsonSerializationFormat unitFormat)
        {
            // arrange
            var length    = Fixture.Create <Length>();
            var converter = new LengthJsonConverter(format, unitFormat);

            // act
            string serializedLength1   = JsonConvert.SerializeObject(length, converter);
            var    deserializedLength1 = JsonConvert.DeserializeObject <Length>(serializedLength1, converter);
            string serializedLength2   = JsonConvert.SerializeObject(deserializedLength1, converter);
            var    deserializedLength2 = JsonConvert.DeserializeObject <Length>(serializedLength2, converter);

            // assert
            deserializedLength1.Should().Be(length);
            deserializedLength2.Should().Be(length);

            deserializedLength2.Should().Be(deserializedLength1);
            serializedLength2.Should().Be(serializedLength1);
        }
コード例 #29
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);
        }
コード例 #30
0
        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);
        }