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); }