Exemple #1
0
        public static T TestSerialization <T>(T dto, XmSerializerModel serializer)
        {
            var xml  = serializer.Serialize(dto);
            var ret  = serializer.Deserialize <T>(xml);
            var xml2 = serializer.Serialize(ret);

            Assert.AreEqual(xml.ToString(), xml2.ToString());
            Assert.AreEqual(dto.GetType(), ret.GetType());
            Directory.CreateDirectory(@"output\");
            File.WriteAllText($@"output\{typeof(T).Name}.csv", xml2.ToString());
            return(ret);
        }
        public void TestDeactivation()
        {
            var s1 = new XmSerializerModel();

            s1.AddType(typeof(DeactivationTestClass1));
            var s2 = new XmSerializerModel();

            s2.AddType(typeof(DeactivationTestClass2));

            var dto1 = new DeactivationTestClass1 {
                Foobar = "foo"
            };
            var dto2 = new DeactivationTestClass2 {
                Foobar = "bar"
            };

            var xml1    = s1.Serialize(dto1);
            var result1 = s2.Deserialize <DeactivationTestClass2>(xml1);
            var result2 = s1.Deserialize <DeactivationTestClass1>(xml1);

            Assert.AreEqual(result1.Foobar, dto1.Foobar);
            Assert.IsNull(result2.Foobar);

            var xml2    = s2.Serialize(dto2);
            var result3 = s2.Deserialize <DeactivationTestClass2>(xml2);
            var result4 = s1.Deserialize <DeactivationTestClass1>(xml2);

            Assert.IsNull(result3.Foobar);
            Assert.IsNull(result4.Foobar);
        }
        public void TestDefaultValue()
        {
            var s = new XmSerializerModel();

            s.AddType(typeof(CompatibilityTest3));
            var s2 = new XmSerializerModel();

            s2.AddType(typeof(CompatibilityTest2));
            var s3 = new XmSerializerModel();

            s3.AddType(typeof(CompatibilityTest1));

            var dto  = new CompatibilityTest2();
            var xml  = s2.Serialize(dto);
            var dto2 = s.Deserialize <CompatibilityTest3>(xml);

            Assert.IsNotNull(dto2);
            Assert.AreEqual("barfoo", dto2.Foobar);

            var dto3 = new CompatibilityTest1 {
                Foobar = "foobar"
            };
            var xml2 = s3.Serialize(dto3);
            var dto4 = s.Deserialize <CompatibilityTest3>(xml2);

            Assert.AreEqual("foobar", dto4.Foobar);
        }
Exemple #4
0
        public void TestReducedNumberOfTypeParametersParsing()
        {
            var s = new XmSerializerModel();

            s.AddType(typeof(Foo <, ,>));

            var s2 = new XmSerializerModel();

            s2.AddType(typeof(Foo <,>));

            var s3 = new XmSerializerModel();

            s3.AddType(typeof(Foo));

            var obj = new Foo <string, int, bool>
            {
                Field1 = "foobar",
                Field2 = 42,
                Field3 = true
            };

            var xml    = s.Serialize(obj);
            var result = (Foo <string, int>)s2.Deserialize <object>(xml);

            Assert.AreEqual(result.Field1, obj.Field1);
            Assert.AreEqual(result.Field2, obj.Field2);
            Assert.AreEqual(result.Field3, obj.Field3);

            var result2 = s3.Deserialize <Foo>(xml);

            Assert.AreEqual(result2.Field1, obj.Field1);
            Assert.AreEqual(result2.Field2, obj.Field2);
            Assert.AreEqual(result2.Field3, obj.Field3);
        }
        public void TestValueConversion()
        {
            var s = new XmSerializerModel();

            s.AddType(typeof(ValueConversionTestClass1));
            var s2 = new XmSerializerModel();

            s2.AddType(typeof(ValueConversionTestClass2));

            var dto = new ValueConversionTestClass1()
            {
                V1 = 5,
                V2 = 6,
                V3 = 7,
                V4 = 8,
                V5 = 9,
                V6 = 10,
                V7 = 11,
            };
            var xml = s.Serialize(dto);

            var result = s2.Deserialize <ValueConversionTestClass2>(xml);

            Assert.AreEqual(result.V1, dto.V1);
            Assert.AreEqual(result.V2, dto.V2);
            Assert.AreEqual(result.V3, dto.V3);
            Assert.AreEqual(result.V4, dto.V4);
            Assert.AreEqual(result.V5, dto.V5);
            Assert.AreEqual(result.V6, dto.V6);
            Assert.AreEqual(result.V7, dto.V7);
        }
Exemple #6
0
        public void TestDeserializingPriority()
        {
            var serializer = new XmSerializerModel();

            serializer.AddType(typeof(PriorityCallbackTestClass));

            var instance = new PriorityCallbackTestClass();
            var xml      = serializer.Serialize(instance);
            var result   = serializer.Deserialize <PriorityCallbackTestClass>(xml);

            Assert.AreEqual("-1,0,1,2,9", result.DeserializeOrder);
        }
        public void TestSkipConstructor()
        {
            var s = new XmSerializerModel();

            s.AddType(typeof(ConstructorTestClass2));

            var obj    = new ConstructorTestClass2();
            var xml    = s.Serialize(obj);
            var result = s.Deserialize <ConstructorTestClass2>(xml);

            Assert.IsNull(result.TestField);
            Assert.IsNull(result.TestField2);
        }
        public void TestConstructor()
        {
            var s = new XmSerializerModel();

            s.AddType(typeof(ConstructorTestClass));

            var obj    = new ConstructorTestClass();
            var xml    = s.Serialize(obj);
            var result = s.Deserialize <ConstructorTestClass>(xml);

            Assert.AreEqual(obj.TestField, result.TestField);
            Assert.AreEqual(obj.TestField2, result.TestField2);
        }
Exemple #9
0
        public void TestOverriddedCallbacks()
        {
            var serializer = new XmSerializerModel();

            serializer.AddType(typeof(OverriddenCallbackTestClass1));
            serializer.AddType(typeof(OverriddenCallbackTestClass2));

            var instance = new OverriddenCallbackTestClass2();
            var xml      = serializer.Serialize(instance);
            var result   = serializer.Deserialize <OverriddenCallbackTestClass2>(xml);

            Assert.AreEqual(11, result.FooCounter);
            Assert.AreEqual(11, result.BarCounter);
            Assert.AreEqual(22, result.FooBarCounter);
        }
        public void TestBackwardCompatibility()
        {
            var s = new XmSerializerModel();

            s.AddType(typeof(CompatibilityTest1));
            var s2 = new XmSerializerModel();

            s2.AddType(typeof(CompatibilityTest2));

            var dto  = new CompatibilityTest2();
            var xml  = s2.Serialize(dto);
            var dto2 = s.Deserialize <CompatibilityTest1>(xml);

            Assert.IsNotNull(dto2);
        }
        public void TestSkipInstantiating()
        {
            var s = new XmSerializerModel();

            s.AddType(typeof(SkipInstantiatingTestClass));

            var obj = new SkipInstantiatingTestClass();

            obj.TestList.Add("test");
            var xml    = s.Serialize(obj);
            var result = s.Deserialize <SkipInstantiatingTestClass>(xml);

            Assert.AreEqual("foobar", result.TestList[0]);
            Assert.AreEqual("test", result.TestList[1]);
            Assert.AreEqual(2, result.TestList.Count);
        }
        public void TestForwardCompatibility()
        {
            var s = new XmSerializerModel();

            s.AddType(typeof(CompatibilityTest1));
            var s2 = new XmSerializerModel();

            s2.AddType(typeof(CompatibilityTest2));

            var dto = new CompatibilityTest1 {
                Foobar = "foobar"
            };
            var xml  = s.Serialize(dto);
            var dto2 = s2.Deserialize <CompatibilityTest2>(xml);

            Assert.IsNotNull(dto2);
        }
        public void TestClassCompatibility()
        {
            var s = new XmSerializerModel();

            s.AddType(typeof(CompatibilityTest1));
            var s2 = new XmSerializerModel();

            s2.AddType(typeof(CompatibilityTest3));

            var dto = new CompatibilityTest1 {
                Foobar = "foobar"
            };
            var xml  = s.Serialize(dto);
            var dto2 = s2.Deserialize <CompatibilityTest3>(xml);

            Assert.IsNotNull(dto2);
            Assert.AreEqual(dto.Foobar, dto2.Foobar);
        }
Exemple #14
0
        public void TestCallbacks()
        {
            var serializer = new XmSerializerModel();

            serializer.AddType(typeof(CallbackTestClass));

            var instance = new CallbackTestClass();

            instance.DeSerializeTestValue3 = "test";
            var xml    = serializer.Serialize(instance);
            var result = serializer.Deserialize <CallbackTestClass>(xml);

            Assert.AreEqual("OnSerialized", instance.SerializeTestValue);
            Assert.AreEqual("OnSerialized", instance.SerializeTestValue2);
            Assert.AreEqual("OnSerializing", result.SerializeTestValue);
            Assert.AreEqual("OnSerializing", result.SerializeTestValue2);
            Assert.AreEqual("test", result.DeSerializeTestValue3);
            Assert.IsNull(result.DeSerializeTestValue4);
            Assert.AreEqual("OnDeserialized", result.DeSerializeTestValue);
            Assert.AreEqual("OnDeserialized", result.DeSerializeTestValue2);
        }
Exemple #15
0
        public void TestObfuscate()
        {
            var dto = new ObfuscationTestClass
            {
                FooBar = "FooBar",
                BarFoo = "BarFoo"
            };

            var s = new XmSerializerModel();

            s.AddType(typeof(ObfuscationTestClass));

            var xml = s.Serialize(dto);

            Assert.IsTrue(xml.ToString().Contains("BarFoo"));
            Assert.IsFalse(xml.ToString().Contains("FooBar"));

            var result = BasicTest.TestSerialization(dto, s);

            Assert.AreEqual(result.FooBar, "FooBar");
            Assert.AreEqual(result.BarFoo, "BarFoo");
        }
        public void TestLegacyName()
        {
            var s = new XmSerializerModel();

            s.AddType(typeof(OldTestClass));
            var s2 = new XmSerializerModel();

            s2.AddType(typeof(NewTestClass));

            var dto = new OldTestClass {
                Foobar = "foobar"
            };
            var xml  = s.Serialize(dto);
            var dto2 = s2.Deserialize <NewTestClass>(xml);

            Assert.IsNotNull(dto2);
            Assert.AreEqual(dto.Foobar, dto2.Barfoo);

            var dto3 = BasicTest.TestSerialization(dto2, s2);

            Assert.IsNotNull(dto3);
            Assert.AreEqual(dto.Foobar, dto3.Barfoo);
        }
        public void TestEnumCompatibility()
        {
            var s = new XmSerializerModel();

            s.AddType(typeof(FooBar1));
            var s2 = new XmSerializerModel();

            s2.AddType(typeof(FooBar2));
            var s3 = new XmSerializerModel();

            s3.AddType(typeof(FooBar3));

            var dto = FooBar1.Bar;
            var xml = s.Serialize(dto);

            var result2 = s2.Deserialize <FooBar2>(xml);

            Assert.AreEqual(FooBar2.Bar, result2);

            var result3 = s3.Deserialize <FooBar3>(xml);

            Assert.AreEqual(FooBar3.Bar1, result3);
        }