Example #1
0
        public void NullValueObjectString_deserialize_should_be_correct()
        {
            NullInterfaceTestClass initial = new NullInterfaceTestClass
            {
                Company      = "Company!",
                DecimalRange = new Range <decimal> {
                    First = 0, Last = 1
                },
                Id       = new Guid(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11),
                IntRange = new Range <int> {
                    First = int.MinValue, Last = int.MaxValue
                },
                Year             = 2010,
                NullDecimalRange = null
            };

            string json = JsonSerializer.ToJson(initial);

            Assert.AreEqual("{\"Id\":\"00000001-0002-0003-0405-060708090a0b\",\"Year\":2010,\"Company\":\"Company!\",\"DecimalRange\":{\"First\":0,\"Last\":1},\"IntRange\":{\"First\":-2147483648,\"Last\":2147483647},\"NullDecimalRange\":null}", json);

            NullInterfaceTestClass deserialized = JsonSerializer.ToObject <NullInterfaceTestClass>(
                json);

            Assert.AreEqual("Company!", deserialized.Company);
            Assert.AreEqual(new Guid(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11), deserialized.Id);
            Assert.AreEqual(0, deserialized.DecimalRange.First);
            Assert.AreEqual(1, deserialized.DecimalRange.Last);
            Assert.AreEqual(int.MinValue, deserialized.IntRange.First);
            Assert.AreEqual(int.MaxValue, deserialized.IntRange.Last);
            Assert.AreEqual(null, deserialized.NullDecimalRange);
            Assert.AreEqual(2010, deserialized.Year);
        }
        public void DeserializeAndConvertNullValue()
        {
            NullInterfaceTestClass initial = new NullInterfaceTestClass
            {
                Company      = "Company!",
                DecimalRange = new Range <decimal> {
                    First = 0, Last = 1
                },
                Id       = new Guid(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11),
                IntRange = new Range <int> {
                    First = int.MinValue, Last = int.MaxValue
                },
                Year             = 2010,
                NullDecimalRange = null
            };

            string json = JsonConvert.SerializeObject(initial, Formatting.Indented);

            StringAssert.AreEqual(
                @"{
  ""Id"": ""00000001-0002-0003-0405-060708090a0b"",
  ""Year"": 2010,
  ""Company"": ""Company!"",
  ""DecimalRange"": {
    ""First"": 0.0,
    ""Last"": 1.0
  },
  ""IntRange"": {
    ""First"": -2147483648,
    ""Last"": 2147483647
  },
  ""NullDecimalRange"": null
}",
                json
                );

            NullInterfaceTestClass deserialized =
                JsonConvert.DeserializeObject <NullInterfaceTestClass>(
                    json,
                    new IntRangeConverter(),
                    new DecimalRangeConverter()
                    );

            Assert.AreEqual("Company!", deserialized.Company);
            Assert.AreEqual(new Guid(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11), deserialized.Id);
            Assert.AreEqual(0, deserialized.DecimalRange.First);
            Assert.AreEqual(1, deserialized.DecimalRange.Last);
            Assert.AreEqual(int.MinValue, deserialized.IntRange.First);
            Assert.AreEqual(int.MaxValue, deserialized.IntRange.Last);
            Assert.AreEqual(null, deserialized.NullDecimalRange);
            Assert.AreEqual(2010, deserialized.Year);
        }