예제 #1
0
        public void TestMethodInterfaceInheritanceSerialization()
        {
            BinarySerializer serializer = new BinarySerializer(new UnknowTestTypeResolver());

            TestInterfaceImpl1 testObj1 = new TestInterfaceImpl1();

            testObj1.TestBaseProperty   = "TEST";
            testObj1.AdditionalProperty = "Some data";
            testObj1.DeepTestProperty1  = "Inherited interface property 1";
            testObj1.DeepTestProperty2  = "Inherited interface property 2";

            InterfRefObject interfRef = new InterfRefObject();

            interfRef.BaseObjectInstance = testObj1;

            var bytes = serializer.Serialize(interfRef, null);

            InterfRefObject deserializedObj = (InterfRefObject)serializer.Deserialize(bytes, null);

            Assert.Equal(((ITestInterfaceBase)interfRef.BaseObjectInstance).TestBaseProperty, ((ITestInterfaceBase)deserializedObj.BaseObjectInstance).TestBaseProperty);

            TestInterfaceImpl1 implObj = (TestInterfaceImpl1)deserializedObj.BaseObjectInstance;

            Assert.Null(implObj.AdditionalProperty);

            Assert.Equal(testObj1.DeepTestProperty1, implObj.DeepTestProperty1);
            Assert.Equal(testObj1.DeepTestProperty2, implObj.DeepTestProperty2);
            Assert.Equal(testObj1.TestBaseProperty, implObj.TestBaseProperty);
            Assert.Null(implObj.AdditionalProperty);
        }
예제 #2
0
        public void TestMethodInterfaceSerialization()
        {
            try
            {
                BinarySerializer serializer = new BinarySerializer(new UnknowTestTypeResolver());

                TestInterfaceImpl1 testObj1 = new TestInterfaceImpl1();
                testObj1.TestBaseProperty   = "TEST";
                testObj1.AdditionalProperty = "Some data";
                testObj1.DeepTestProperty1  = "Inherited interface property 1";
                testObj1.DeepTestProperty2  = "Inherited interface property 2";

                InterfRefObject interfRef = new InterfRefObject();
                interfRef.BaseObject = testObj1;

                var dataBytes = serializer.Serialize(interfRef, null);

                InterfRefObject deserializedObj = (InterfRefObject)serializer.Deserialize(dataBytes, null);

                Assert.Equal(interfRef.BaseObject.TestBaseProperty, deserializedObj.BaseObject.TestBaseProperty);

                TestInterfaceImpl1 implObj = (TestInterfaceImpl1)deserializedObj.BaseObject;
                Assert.Null(implObj.AdditionalProperty);

                Assert.Equal(testObj1.DeepTestProperty1, implObj.DeepTestProperty1);
                Assert.Equal(testObj1.DeepTestProperty2, implObj.DeepTestProperty2);
            }
            catch (Exception ex)
            {
                throw;  // because of visual studio unittest bug
            }
        }
예제 #3
0
        public void TestMethodInterfaceInheritanceSerialization()
        {
            JsonObjectSerializer serializer = new JsonObjectSerializer(UnknownTypeResolver, SpecialTypeResolver);

            TestInterfaceImpl1 testObj1 = new TestInterfaceImpl1();

            testObj1.TestBaseProperty   = "TEST";
            testObj1.AdditionalProperty = "Some data";
            testObj1.DeepTestProperty1  = "Inherited interface property 1";
            testObj1.DeepTestProperty2  = "Inherited interface property 2";

            InterfRefObject interfRef = new InterfRefObject();

            interfRef.BaseObjectInstance = testObj1;

            string json = serializer.Serialize(interfRef, null);

            InterfRefObject deserializedObj = (InterfRefObject)serializer.Deserialize(json, typeof(InterfRefObject), null);

            Assert.Equal(((ITestInterfaceBase)interfRef.BaseObjectInstance).TestBaseProperty, ((ITestInterfaceBase)deserializedObj.BaseObjectInstance).TestBaseProperty);

            TestInterfaceImpl1 implObj = (TestInterfaceImpl1)deserializedObj.BaseObjectInstance;

            Assert.Null(implObj.AdditionalProperty);

            Assert.Equal(testObj1.DeepTestProperty1, implObj.DeepTestProperty1);
            Assert.Equal(testObj1.DeepTestProperty2, implObj.DeepTestProperty2);
        }
예제 #4
0
        public void TestMethodInterfaceInheritanceExposedSubInterfaceSerialization()
        {
            // 1. Serialize and deserialize with exposed sub interface
            JsonObjectSerializer serializer = new JsonObjectSerializer(UnknownTypeResolver, SubInterfaceExposeTypeResolver);

            TestInterfaceExtendedImple testObjExtended = new TestInterfaceExtendedImple();

            testObjExtended.TestBaseProperty = "TEST";
            testObjExtended.TestExtProperty  = "Exposed Sub Interface Property";


            InterfRefObject interfRef = new InterfRefObject();

            interfRef.BaseObjectInstance = testObjExtended;

            string json = serializer.Serialize(interfRef, null);

            InterfRefObject deserializedObj = (InterfRefObject)serializer.Deserialize(json, typeof(InterfRefObject), null);

            Assert.Equal(((ITestInterfaceBase)interfRef.BaseObjectInstance).TestBaseProperty, ((ITestInterfaceBase)deserializedObj.BaseObjectInstance).TestBaseProperty);
            Assert.Equal(((ITestInterfaceExtended)interfRef.BaseObjectInstance).TestExtProperty, ((ITestInterfaceExtended)deserializedObj.BaseObjectInstance).TestExtProperty);


            // 2. Serailize and deserialize with base interface
            TestInterfaceImpl1 testObjBase = new TestInterfaceImpl1();

            testObjBase.TestBaseProperty = "TEST";

            interfRef.BaseObjectInstance = testObjBase;

            string json2 = serializer.Serialize(interfRef, null);

            //InterfRefObject deserializedObj2 = (InterfRefObject)serializer.Deserialize(json2, typeof(InterfRefObject), null);

            //Assert.Equal(((ITestInterfaceBase)interfRef.BaseObjectInstance).TestBaseProperty, ((ITestInterfaceBase)deserializedObj2.BaseObjectInstance).TestBaseProperty);

            //todo: complete test
        }