示例#1
0
        public void ShouldNotDeserialize_CorrectImplementation_InterfaceWithMultipleConcreteImplementation()
        {
            var test = new InterfaceWithMultipleConcreteObject()
            {
                UnknownClass = new TestInterfaceObject3()
                {
                    Id = 3
                }
            };
            var provider         = new SerializerProvider();
            var bytes            = provider.Serialize(test);
            var testDeserialized = provider.Deserialize <InterfaceWithMultipleConcreteObject>(bytes);

            Assert.AreNotEqual(typeof(TestInterfaceObject3), testDeserialized.UnknownClass.GetType());
        }
        public void ShouldValidate_BasicObjectWithEmbeddedTypeDescriptors()
        {
            var test = new InterfaceWithMultipleConcreteObject()
            {
                UnknownClass = new TestInterfaceObject3()
                {
                    Id = 1
                }
            };
            var provider = new SerializerProvider();
            var bytes    = provider.Serialize(test, embedTypes: true);
            var isValid  = provider.Validate(bytes);

            Assert.IsTrue(isValid);
        }
示例#3
0
        public void ShouldDeserialize_CorrectImplementation_InterfaceWithMultipleConcreteImplementation()
        {
            var test = new InterfaceWithMultipleConcreteObject()
            {
                UnknownClass = new TestInterfaceObject3()
                {
                    Id = 3
                }
            };
            var provider = new SerializerProvider();
            // embed the full types so we can properly deserialize the correct concrete instance
            var bytes            = provider.Serialize(test, embedTypes: true);
            var testDeserialized = provider.Deserialize <InterfaceWithMultipleConcreteObject>(bytes);

            Assert.AreEqual(typeof(TestInterfaceObject3), testDeserialized.UnknownClass.GetType());
        }