public static void Test_Can_Serialize_Child_Then_Deserialize_To_Base()
        {
            //arrange
            SerializerService serializer = new SerializerService();

            //act
            serializer.RegisterType <WireDataContractTest>();
            serializer.Compile();

            WireDataContractTest message = serializer.Deserialize <WireDataContractTest>(serializer.Serialize(new WireDataContractTest(new ChildTypeThree(), new ChildTypeThree())));

            //assert
            Assert.NotNull(message);
            Assert.True(message.test.GetType() == typeof(ChildTypeThree));
        }
        public static void Test_Can_Serialize_Child_Then_Deserialize_To_Base_With_Correct_Data_Intact()
        {
            //arrange
            SerializerService serializer = new SerializerService();

            //act
            serializer.RegisterType <WireDataContractTest>();
            serializer.Compile();

            WireDataContractTest message = serializer.Deserialize <WireDataContractTest>(serializer.Serialize(new WireDataContractTest(new ChildTypeTwo(20, uint.MaxValue - 1000), new ChildTypeThree())));

            //assert
            Assert.NotNull(message);
            Assert.True(message.test.GetType() == typeof(ChildTypeTwo));

            Assert.AreEqual((message.test as ChildTypeTwo).b, 20);
        }