public void OptionalAndRequiredWithAnnotatedMethod()
        {
            var testService = new AnnotatedTestService();
            var method      = testService.GetType().GetMethod("OptionalAndRequiredHeader");
            var context     = GetDefaultContext();
            var processor   = new MethodInvokingMessageProcessor <object>(context, testService, method);
            var message     = MessageBuilder.WithPayload("foo")
                              .SetHeader("num", 42)
                              .Build();
            var result = processor.ProcessMessage(message);

            Assert.Equal("null42", result);
            message = MessageBuilder.WithPayload("foo")
                      .SetHeader("prop", "bar")
                      .SetHeader("num", 42)
                      .Build();
            result = processor.ProcessMessage(message);
            Assert.Equal("bar42", result);
            message = MessageBuilder.WithPayload("foo")
                      .SetHeader("prop", "bar")
                      .Build();
            var ex = Assert.Throws <MessageHandlingException>(() => processor.ProcessMessage(message));

            Assert.Contains("num", ex.InnerException.Message);
        }
 public void ConvertedPayloadWithAnnotatedMethod()
 {
     AnnotatedTestService service = new AnnotatedTestService();
     MethodInfo method = service.GetType().GetMethod("IntegerMethod");
     MessageMappingMethodInvoker invoker = new MessageMappingMethodInvoker(service, method);
     object result = invoker.InvokeMethod(new StringMessage("456"));
     Assert.That(result, Is.EqualTo(456));
 }
        public void ConversionFailureWithAnnotatedMethod()
        {
            AnnotatedTestService        service = new AnnotatedTestService();
            MethodInfo                  method  = service.GetType().GetMethod("IntegerMethod");
            MessageMappingMethodInvoker invoker = new MessageMappingMethodInvoker(service, method);
            object result = invoker.InvokeMethod(new StringMessage("foo"));

            Assert.That(result, Is.EqualTo(123));
        }
        public void PayloadWithAnnotatedMethod()
        {
            AnnotatedTestService        service = new AnnotatedTestService();
            MethodInfo                  method  = service.GetType().GetMethod("IntegerMethod");
            MessageMappingMethodInvoker invoker = new MessageMappingMethodInvoker(service, method);
            object result = invoker.InvokeMethod(new Message <int>(123));

            Assert.That(result, Is.EqualTo(123));
        }
        public void MessageOnlyWithAnnotatedMethod()
        {
            AnnotatedTestService        service = new AnnotatedTestService();
            MethodInfo                  method  = service.GetType().GetMethod("MessageOnly");
            MessageMappingMethodInvoker invoker = new MessageMappingMethodInvoker(service, method);
            object result = invoker.InvokeMethod(new StringMessage("foo"));

            Assert.That(result, Is.EqualTo("foo"));
        }
 public void MessageAndHeaderWithAnnotatedMethod()
 {
     AnnotatedTestService service = new AnnotatedTestService();
     MethodInfo method = service.GetType().GetMethod("MessageAndHeader");
     MessageMappingMethodInvoker invoker = new MessageMappingMethodInvoker(service, method);
     IMessage message = MessageBuilder.WithPayload("foo").SetHeader("number", 42).Build();
     object result = invoker.InvokeMethod(message);
     Assert.That(result, Is.EqualTo("foo-42"));
 }
        public void MessageAndHeaderWithAnnotatedMethod()
        {
            AnnotatedTestService        service = new AnnotatedTestService();
            MethodInfo                  method  = service.GetType().GetMethod("MessageAndHeader");
            MessageMappingMethodInvoker invoker = new MessageMappingMethodInvoker(service, method);
            IMessage message = MessageBuilder.WithPayload("foo").SetHeader("number", 42).Build();
            object   result  = invoker.InvokeMethod(message);

            Assert.That(result, Is.EqualTo("foo-42"));
        }
        public void ConversionFailureWithAnnotatedMethod()
        {
            var testService = new AnnotatedTestService();
            var method      = testService.GetType().GetMethod("IntegerMethod");
            var context     = GetDefaultContext();
            var processor   = new MethodInvokingMessageProcessor <object>(context, testService, method);
            var ex          = Assert.Throws <MessageHandlingException>(() => processor.ProcessMessage(Message.Create("foo")));

            Assert.IsType <MessageConversionException>(ex.InnerException);
        }
        public void ConvertedPayloadWithAnnotatedMethod()
        {
            var testService = new AnnotatedTestService();
            var method      = testService.GetType().GetMethod("IntegerMethod");
            var context     = GetDefaultContext();
            var processor   = new MethodInvokingMessageProcessor <object>(context, testService, method);
            var result      = processor.ProcessMessage(Message.Create("456"));

            Assert.Equal(456, result);
        }
        public void MessageOnlyWithAnnotatedMethod()
        {
            var testService = new AnnotatedTestService();
            var method      = testService.GetType().GetMethod("MessageOnly");
            var context     = GetDefaultContext();
            var processor   = new MethodInvokingMessageProcessor <object>(context, testService, method);
            var result      = processor.ProcessMessage(Message.Create("foo"));

            Assert.Equal("foo", result);
        }
        public void MessageAndHeaderWithAnnotatedMethod()
        {
            var testService = new AnnotatedTestService();
            var method      = testService.GetType().GetMethod("MessageAndHeader");
            var context     = GetDefaultContext();
            var processor   = new MethodInvokingMessageProcessor <object>(context, testService, method);
            var request     = MessageBuilder.WithPayload("foo").SetHeader("number", 42).Build();
            var result      = processor.ProcessMessage(request);

            Assert.NotNull(result);
            Assert.Equal("foo-42", result);
        }
 public void MessageOnlyWithAnnotatedMethod()
 {
     AnnotatedTestService service = new AnnotatedTestService();
     MethodInfo method = service.GetType().GetMethod("MessageOnly");
     MessageMappingMethodInvoker invoker = new MessageMappingMethodInvoker(service, method);
     object result = invoker.InvokeMethod(new StringMessage("foo"));
     Assert.That(result, Is.EqualTo("foo"));
 }