public void Test_Can_Serialize_Collections_With_Multiple_Inheritance_Type() { ProtobufnetSerializerStrategy serializer = new ProtobufnetSerializerStrategy(); ProtobufnetDeserializerStrategy deserializer = new ProtobufnetDeserializerStrategy(); ProtobufnetRegistry registry = new ProtobufnetRegistry(); registry.Register(typeof(TestClassBase)); registry.Register(typeof(TestClassChild1)); registry.Register(typeof(TestClassChild2)); TestClassBase testObject = new TestClassChild2() { i = 5, j = 6, k = new int[] { 1, 2, 3, 4 } }; TestClassChild2 child = deserializer.Deserialize <TestClassBase>(serializer.Serialize(testObject)) as TestClassChild2; Assert.AreEqual(5, child.i); Assert.AreEqual(6, child.j); Assert.AreEqual(4, child.k.Count()); for (int i = 0; i < child.k.Count(); i++) { Assert.AreEqual(i + 1, child.k[i]); } }
public void Test_Can_Serialize_Collections_With_Multiple_Inheritance_Type() { ProtobufnetSerializerStrategy serializer = new ProtobufnetSerializerStrategy(); ProtobufnetDeserializerStrategy deserializer = new ProtobufnetDeserializerStrategy(); ProtobufnetRegistry registry = new ProtobufnetRegistry(); registry.Register(typeof(TestClassBase)); registry.Register(typeof(TestClassChild1)); registry.Register(typeof(TestClassChild2)); TestClassBase testObject = new TestClassChild2() { i = 5, j = 6, k = new int[] { 1, 2, 3, 4 } }; TestClassChild2 child = deserializer.Deserialize<TestClassBase>(serializer.Serialize(testObject)) as TestClassChild2; Assert.AreEqual(5, child.i); Assert.AreEqual(6, child.j); Assert.AreEqual(4, child.k.Count()); for (int i = 0; i < child.k.Count(); i++) Assert.AreEqual(i + 1, child.k[i]); }