public void MixedDeserialize_NestedModelAllBaseTypes()
        {
            var mock = MixedMocks.GetNestedModelAllBaseTypesMock();

            var result = DeserializeJson <NestedModelAllBaseTypes>(mock.JsonData, mock.typeToConvert);

            Assert.IsNotNull(result);
            Assert.IsNotNull(result.Dictionary);
            Assert.IsTrue(result.Dictionary.ContainsKey("testKey"));
            Assert.AreEqual("testValue", result.Dictionary["testKey"]);
            Assert.AreEqual(TestEnum.TEST2, result.Enum);
            Assert.AreEqual(TestEnum.TEST2, result.EnumInt);
            Assert.AreEqual(DateTime.Parse("2020-08-12T19:35:00"), result.DateTime);
            Assert.AreEqual(Guid.Parse("0f8fad5b-d9cb-469f-a165-70867728950e"), result.Guid);
            Assert.AreEqual(true, result.Boolean);
            Assert.AreEqual(10, result.Decimal);
            Assert.AreEqual(2.456, result.Double);
            Assert.AreEqual(45.35665F, result.Float);
            Assert.AreEqual(3, result.Short);
            Assert.AreEqual(-456, result.Int);
            Assert.AreEqual(467585, result.Long);
            Assert.AreEqual(455, result.UShort);
            Assert.AreEqual(UInt32.Parse("45545545"), result.UInt);
            Assert.AreEqual(UInt64.Parse("747474757575"), result.ULong);
            Assert.IsTrue(Convert.FromBase64String("dGVzdA==").SequenceEqual(result.ByteArray));
        }
        public void MixedSerialize_InterfaceWithMultipleClasses()
        {
            var mock = MixedMocks.GetInterfaceWithMultipleClassesMock();

            var result = SerializeJson(mock.TestObject, mock.typeToConvert);

            Assert.IsNotNull(result);
            Assert.AreEqual(GetNormalizedJson(mock.JsonData), result);
        }
        public void MixedSerialize_RawModel()
        {
            var mock = MixedMocks.GetRawModelMock();

            var result = SerializeJson(mock.TestObject, mock.typeToConvert);

            Assert.IsNotNull(result);
            Assert.AreEqual(GetNormalizedJson(mock.JsonData), result);
        }
        public void MixedSerialize_NestedModelAllBaseTypes()
        {
            var mock = MixedMocks.GetNestedModelAllBaseTypesMock();

            var result = SerializeJson(mock.TestObject, mock.typeToConvert);

            Assert.IsNotNull(result);
            Assert.AreEqual(GetNormalizedJson(mock.JsonData).Replace("\"enumInt\":1", "\"enumInt\":\"TEST2\""), result);
        }
        public void MixedDeserialize_InterfaceWithMultipleClasses()
        {
            var mock = MixedMocks.GetInterfaceWithMultipleClassesMock();

            var result = DeserializeJson <Impl1>(mock.JsonData, mock.typeToConvert);

            Assert.IsNotNull(result);
            Assert.IsInstanceOf <Impl1>(result, "Wrong instance");
            Assert.AreEqual("Test", result.Param1);
            Assert.IsInstanceOf <Impl2>(result.NestedInterface, "Wrong instance");
            Assert.AreEqual("Test2", result.NestedInterface.Param1);
        }
Exemple #6
0
        public void MixedDeserialize_InterfaceWithNestedAbstract()
        {
            var mock = MixedMocks.GetInterfaceWithNestedAbstractMock();

            var result = DeserializeJson <IModel>(mock.JsonData, mock.typeToConvert);

            Assert.IsNotNull(result);
            Assert.IsInstanceOf <Model>(result, "Wrong instance");
            Assert.AreEqual("Test", result.Param1);
            Assert.IsInstanceOf <NestedModel>(result.NestedModel, "Wrong instance");
            Assert.AreEqual(3, result.NestedModel.Param1);
            Assert.AreEqual("Test2", ((NestedModel)result.NestedModel).Model.Param1);
        }
        public void MixedDeserialize_RawModel()
        {
            var mock = MixedMocks.GetRawModelMock();

            var result = DeserializeJson <RawModel>(mock.JsonData, mock.typeToConvert);

            var json = SerializeJson(mock.TestObject, mock.typeToConvert);

            Assert.IsNotNull(result);
            Assert.IsNotNull(result.Dictionary);
            Assert.IsTrue(result.Dictionary.ContainsKey("testKey"));
            Assert.AreEqual("testValue", result.Dictionary["testKey"]);
            Assert.AreEqual(TestEnum.TEST2, result.Enum);
            Assert.AreEqual(DateTime.Parse("2020-08-12T19:35:00"), result.DateTime);
            Assert.AreEqual(Guid.Parse("0f8fad5b-d9cb-469f-a165-70867728950e"), result.Guid);
            Assert.AreEqual(true, result.Boolean);
            Assert.AreEqual(10, result.Decimal);
            Assert.AreEqual(2.456, result.Double);
            Assert.AreEqual(45.35665F, result.Float);
            Assert.AreEqual(3, result.Short);
            Assert.AreEqual(-456, result.Int);
            Assert.IsNull(result.DoubleToAlwaysIgnore);
            Assert.AreEqual(22.22, result.DoubleToNeverIgnore1);
            Assert.AreEqual(0, result.DoubleToNeverIgnore2);
            Assert.IsNull(result.DoubleToIgnoreWhenWritingDefault1);
            Assert.AreEqual(10, result.DoubleToIgnoreWhenWritingDefault2);
            Assert.IsNull(result.DoubleToIgnoreWhenWritingNull);
            Assert.AreEqual(467585, result.Long);
            Assert.IsTrue(Convert.FromBase64String("dGVzdA==").SequenceEqual(result.ByteArray));

            Assert.IsFalse(json.Contains("doubleToAlwaysIgnore", StringComparison.InvariantCultureIgnoreCase));
            Assert.IsTrue(json.Contains("doubleToNeverIgnore1", StringComparison.InvariantCultureIgnoreCase));
            Assert.IsTrue(json.Contains("doubleToNeverIgnore2", StringComparison.InvariantCultureIgnoreCase));
            Assert.IsFalse(json.Contains("doubleToIgnoreWhenWritingDefault1", StringComparison.InvariantCultureIgnoreCase));
            Assert.IsTrue(json.Contains("doubleToIgnoreWhenWritingDefault2", StringComparison.InvariantCultureIgnoreCase));
            Assert.IsFalse(json.Contains("doubleToIgnoreWhenWritingNull", StringComparison.InvariantCultureIgnoreCase));
        }
        public void MixedDeserialize_InterfaceWithNestedAbstract()
        {
            var mock = MixedMocks.GetInterfaceWithNestedAbstractMock();

            var result = DeserializeJson <IModel>(mock.JsonData);

            var json = SerializeJson(mock.TestObject, mock.typeToConvert);

            Assert.IsNotNull(result);
            Assert.IsInstanceOf <Model>(result, "Wrong instance");
            Assert.AreEqual("Test", result.Param1);
            Assert.IsInstanceOf <NestedModel>(result.NestedModel, "Wrong instance");
            Assert.AreEqual(3, result.NestedModel.Param1);
            Assert.AreEqual("Test2", ((NestedModel)result.NestedModel).Model.Param1);
            Assert.IsTrue(Convert.FromBase64String("dGVzdA==").SequenceEqual(result.ByteArray));
            Assert.IsTrue(Convert.FromBase64String("dGVzdA==").SequenceEqual(((NestedModel)result.NestedModel).Model.ByteArray));

            Assert.IsNull(result.DoubleToAlwaysIgnore);
            Assert.AreEqual(22.22, result.DoubleToNeverIgnore1);
            Assert.AreEqual(0, result.DoubleToNeverIgnore2);
            Assert.IsNull(result.DoubleToIgnoreWhenWritingDefault1);
            Assert.AreEqual(10, result.DoubleToIgnoreWhenWritingDefault2);
            Assert.IsNull(result.DoubleToIgnoreWhenWritingNull);
            Assert.IsNull(((NestedModel)result.NestedModel).Model.DoubleToAlwaysIgnore);
            Assert.AreEqual(22.22, ((NestedModel)result.NestedModel).Model.DoubleToNeverIgnore1);
            Assert.AreEqual(0, ((NestedModel)result.NestedModel).Model.DoubleToNeverIgnore2);
            Assert.AreEqual(10, ((NestedModel)result.NestedModel).Model.DoubleToIgnoreWhenWritingDefault2);
            Assert.IsNull(((NestedModel)result.NestedModel).Model.DoubleToIgnoreWhenWritingNull);

            Assert.IsFalse(json.Contains("doubleToAlwaysIgnore", StringComparison.InvariantCultureIgnoreCase));
            Assert.IsTrue(json.Contains("doubleToNeverIgnore1", StringComparison.InvariantCultureIgnoreCase));
            Assert.IsTrue(json.Contains("doubleToNeverIgnore2", StringComparison.InvariantCultureIgnoreCase));
            Assert.IsFalse(json.Contains("doubleToIgnoreWhenWritingDefault1", StringComparison.InvariantCultureIgnoreCase));
            Assert.IsTrue(json.Contains("doubleToIgnoreWhenWritingDefault2", StringComparison.InvariantCultureIgnoreCase));
            Assert.IsFalse(json.Contains("doubleToIgnoreWhenWritingNull", StringComparison.InvariantCultureIgnoreCase));
        }