public void Serialize_WithConverter()
 {
     var converter = new QuantityJsonConverter(UnitProvider.Default);
     var obj = new TestObject { Distance = 1.23 * Length.Metre, Time = null };
     var json = JsonConvert.SerializeObject(obj, converter);
     Assert.AreEqual("{\"Distance\":\"1.23 m\",\"Time\":null,\"Quantities\":[]}", json);
 }
        public void Serialize_NorwegianCulture_ShouldBeSerializedToInvariantCulture()
        {
            var obj = new TestObject { Distance = 1.23 * Length.Metre, Time = null };

            using (CurrentCulture.TemporaryChangeTo("nb-NO"))
            {
                JsConfig.IncludeNullValues = true;
                var json = JsonSerializer.SerializeToString(obj);
                Assert.AreEqual("{\"Distance\":\"1.23 m\",\"Time\":null,\"Quantities\":[]}", json);
            }
        }
        public void Serialize()
        {
            var obj = new TestObject { Distance = 1.23 * Length.Metre, Time = null };
            obj.Quantities.Add(10 * Temperature.DegreeCelsius);
            obj.Quantities.Add(25 * Mass.Kilogram);

            JsConfig.IncludeNullValues = true;
            // JsConfig<IQuantity>.SerializeFn = q => q.ToString(null, CultureInfo.InvariantCulture);
            var json = JsonSerializer.SerializeToString(obj);
            Assert.AreEqual("{\"Distance\":\"1.23 m\",\"Time\":null,\"Quantities\":[\"10 °C\",\"25 kg\"]}", json);
        }
 public void Serialize_WithoutConverter()
 {
     var obj = new TestObject { Distance = 1.23 * Length.Metre, Time = null };
     var json = JsonConvert.SerializeObject(obj);
     Assert.AreEqual("{\"Distance\":{\"XmlValue\":\"1.23 m\"},\"Time\":null,\"Quantities\":[]}", json);
 }