public void deserializer_defined_but_not_for_test_message_Deserialize_throws_MissingMessageDeserializerException()
        {
            var messageSerialization = new MessageSerialization();
            messageSerialization.RegisterDeserializer(TestMessage.TypeId, new TestMessageDeserializer());

            Assert.Throws<MissingMessageDeserializerException>(() => messageSerialization.Deserialize(0, new byte[1]));
        }
        public void deserializer_defined_but_not_for_test_message_Deserialize_throws_MissingMessageDeserializerException()
        {
            var messageSerialization = new MessageSerialization();

            messageSerialization.RegisterDeserializer(TestMessage.TypeId, new TestMessageDeserializer());

            Assert.Throws <MissingMessageDeserializerException>(() => messageSerialization.Deserialize(0, new byte[1]));
        }
        public void deserializer_defined_for_message_with_MessageTypeId_65535_Deserialize_creates_object()
        {
            var messageSerialization = new MessageSerialization();

            messageSerialization.RegisterDeserializer(CustomMessage.TypeId, new TestMessageDeserializer());

            Assert.IsNotNull(messageSerialization.Deserialize(CustomMessage.TypeId, new byte[1]));
        }
        public void deserializer_defined_for_test_message_Deserialize_creates_object()
        {
            var messageSerialization = new MessageSerialization();

            messageSerialization.RegisterDeserializer(TestMessage.TypeId, new TestMessageDeserializer());

            Assert.IsInstanceOf <TestMessage>(messageSerialization.Deserialize(1, new byte[1]));
        }
        public void MessageDeserializationException_should_be_thrown_on_exception_while_deserializing_message()
        {
            var messageSerialization = new MessageSerialization();

            messageSerialization.RegisterSerializer(ExceptionTestMessage.TypeId, new ExceptionTestMessageSerializer());
            messageSerialization.RegisterDeserializer(ExceptionTestMessage.TypeId, new ExceptionTestMessageDeserializer());

            var messageThatCausesExceptionOnDeserialization = new ExceptionTestMessage(false, true);
            var message   = messageSerialization.Serialize(messageThatCausesExceptionOnDeserialization);
            var exception = Assert.Throws <MessageDeserializationException>(() => messageSerialization.Deserialize(ExceptionTestMessage.TypeId, message));

            Assert.IsInstanceOf <TestException>(exception.InnerException);
        }
        public void deserializer_defined_for_test_message_Deserialize_creates_object()
        {
            var messageSerialization = new MessageSerialization();
            messageSerialization.RegisterDeserializer(TestMessage.TypeId, new TestMessageDeserializer());

            Assert.IsInstanceOf<TestMessage>(messageSerialization.Deserialize(1, new byte[1]));
        }
        public void MessageDeserializationException_should_be_thrown_on_exception_while_deserializing_message()
        {
            var messageSerialization = new MessageSerialization();
            messageSerialization.RegisterSerializer(ExceptionTestMessage.TypeId, new ExceptionTestMessageSerializer());
            messageSerialization.RegisterDeserializer(ExceptionTestMessage.TypeId, new ExceptionTestMessageDeserializer());

            var messageThatCausesExceptionOnDeserialization = new ExceptionTestMessage(false, true);
            var message = messageSerialization.Serialize(messageThatCausesExceptionOnDeserialization);
            var exception = Assert.Throws<MessageDeserializationException>(() => messageSerialization.Deserialize(ExceptionTestMessage.TypeId, message));
            Assert.IsInstanceOf<TestException>(exception.InnerException);
        }
        public void deserializer_defined_for_message_with_MessageTypeId_65535_Deserialize_creates_object()
        {
            var messageSerialization = new MessageSerialization();
            messageSerialization.RegisterDeserializer(CustomMessage.TypeId, new TestMessageDeserializer());

            Assert.IsNotNull(messageSerialization.Deserialize(CustomMessage.TypeId, new byte[1]));
        }