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