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