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); }
private static void CheckCollectionItem(ITestInterfaceBase orginalItem, ITestInterfaceBase deserializedItem) { Assert.Equal(orginalItem.TestBaseProperty, deserializedItem.TestBaseProperty); Assert.Equal(orginalItem.DeepTestProperty1, deserializedItem.DeepTestProperty1); Assert.Equal(orginalItem.DeepTestProperty2, deserializedItem.DeepTestProperty2); TestInterfaceImpl1 implObj = (TestInterfaceImpl1)deserializedItem; Assert.Null(implObj.AdditionalProperty); }
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 }
public void TestMethodInterfaceInheritanceArraySerializationWithNewSerializer() { try { BinarySerializer serializer = new BinarySerializer(new UnknowTestTypeResolver()); TestInterfaceImpl1Collections collHolder = new TestInterfaceImpl1Collections(); TestInterfaceImpl1 testObj1 = new TestInterfaceImpl1(); testObj1.TestBaseProperty = "TEST"; testObj1.AdditionalProperty = "Some data"; testObj1.DeepTestProperty1 = "Inherited interface property 1"; testObj1.DeepTestProperty2 = "Inherited interface property 2"; TestInterfaceImpl1 testObj2 = new TestInterfaceImpl1(); testObj2.TestBaseProperty = "TEST 2"; testObj2.AdditionalProperty = "Some data 2"; testObj2.DeepTestProperty1 = "Inherited interface property 1 - 2"; testObj2.DeepTestProperty2 = "Inherited interface property 2 - 2"; collHolder.Array = new ITestInterfaceBase[] { testObj1 }; collHolder.List = new List <ITestInterfaceBase>(); collHolder.List.Add(testObj1); collHolder.List.Add(testObj2); collHolder.ObjectArray = new object[] { testObj1, testObj2 }; decimal anyObjVal = 342534.56m; object[] anyObjectArr = new object[] { 2, "hallo", new object[] { 7, "nested", new TestObject() { DecimalValue = anyObjVal } } }; collHolder.AnyObjectArray = anyObjectArr; // own collection collHolder.OwnCollection = new OwnCollection(); collHolder.OwnCollection.Add("Own Testdata 1"); collHolder.OwnCollection.Add("Own Testdata 2"); var data = serializer.Serialize(collHolder, null); ClearGlobalTypeCache(); BinarySerializer serializer2 = new BinarySerializer(new UnknowTestTypeResolver()); TestInterfaceImpl1Collections deserializedObj = (TestInterfaceImpl1Collections)serializer2.Deserialize(data, null); Assert.Equal <int>(collHolder.Array.Length, deserializedObj.Array.Length); for (int i = 0; i < collHolder.Array.Length; i++) { ITestInterfaceBase orginalItem = collHolder.Array[i]; ITestInterfaceBase deserializedItem = deserializedObj.Array[i]; CheckCollectionItem(orginalItem, deserializedItem, true); } for (int i = 0; i < collHolder.List.Count; i++) { ITestInterfaceBase orginalItem = collHolder.List[i]; ITestInterfaceBase deserializedItem = deserializedObj.List[i]; CheckCollectionItem(orginalItem, deserializedItem, true); } for (int i = 0; i < collHolder.ObjectArray.Length; i++) { ITestInterfaceBase orginalItem = (ITestInterfaceBase)collHolder.ObjectArray[i]; ITestInterfaceBase deserializedItem = (ITestInterfaceBase)deserializedObj.ObjectArray[i]; CheckCollectionItem(orginalItem, deserializedItem, true); } // check own collection implementation var deserializedEnumerator = deserializedObj.OwnCollection.GetEnumerator(); foreach (var item in collHolder.OwnCollection) { deserializedEnumerator.MoveNext(); Assert.True(item.Equals(deserializedEnumerator.Current)); } object anyItemObj = ((object[])((object[])collHolder.AnyObjectArray)[2])[2]; TestObject anyItem = anyItemObj as TestObject; Assert.Equal(anyObjVal, anyItem.DecimalValue); } catch (Exception ex) { throw; // because of visual studio unittest bug } }
public void TestMethodInterfaceInheritanceArraySerialization() { JsonObjectSerializer serializer = new JsonObjectSerializer(UnknownTypeResolver, SpecialTypeResolver); TestInterfaceImpl1Collections collHolder = new TestInterfaceImpl1Collections(); TestInterfaceImpl1 testObj1 = new TestInterfaceImpl1(); testObj1.TestBaseProperty = "TEST"; testObj1.AdditionalProperty = "Some data"; testObj1.DeepTestProperty1 = "Inherited interface property 1"; testObj1.DeepTestProperty2 = "Inherited interface property 2"; TestInterfaceImpl1 testObj2 = new TestInterfaceImpl1(); testObj2.TestBaseProperty = "TEST 2"; testObj2.AdditionalProperty = "Some data 2"; testObj2.DeepTestProperty1 = "Inherited interface property 1 - 2"; testObj2.DeepTestProperty2 = "Inherited interface property 2 - 2"; collHolder.Array = new ITestInterfaceBase[] { testObj1 }; collHolder.List = new List <ITestInterfaceBase>(); collHolder.List.Add(testObj1); collHolder.List.Add(testObj2); collHolder.ObjectArray = new object[] { testObj1, testObj2 }; // own collection collHolder.OwnCollection = new OwnCollection(); collHolder.OwnCollection.Add("Own Testdata 1"); collHolder.OwnCollection.Add("Own Testdata 2"); string json = serializer.Serialize(collHolder, null); TestInterfaceImpl1Collections deserializedObj = (TestInterfaceImpl1Collections)serializer.Deserialize(json, typeof(TestInterfaceImpl1Collections), null); Assert.Equal <int>(collHolder.Array.Length, deserializedObj.Array.Length); for (int i = 0; i < collHolder.Array.Length; i++) { ITestInterfaceBase orginalItem = collHolder.Array[i]; ITestInterfaceBase deserializedItem = deserializedObj.Array[i]; CheckCollectionItem(orginalItem, deserializedItem); } for (int i = 0; i < collHolder.List.Count; i++) { ITestInterfaceBase orginalItem = collHolder.List[i]; ITestInterfaceBase deserializedItem = deserializedObj.List[i]; CheckCollectionItem(orginalItem, deserializedItem); } for (int i = 0; i < collHolder.ObjectArray.Length; i++) { ITestInterfaceBase orginalItem = (ITestInterfaceBase)collHolder.ObjectArray[i]; ITestInterfaceBase deserializedItem = (ITestInterfaceBase)deserializedObj.ObjectArray[i]; CheckCollectionItem(orginalItem, deserializedItem); } // check own collection implementation var deserializedEnumerator = deserializedObj.OwnCollection.GetEnumerator(); foreach (var item in collHolder.OwnCollection) { deserializedEnumerator.MoveNext(); Assert.True(item.Equals(deserializedEnumerator.Current)); } }