public void DynamicReplyChannel()
 {
     QueueChannel replyChannel1 = new QueueChannel();
     QueueChannel replyChannel2 = new QueueChannel();
     replyChannel2.ObjectName = "replyChannel2";
     Object handler = new TestObject2();
     ServiceActivatingHandler endpoint = new ServiceActivatingHandler(handler, "Handle");
     TestChannelResolver channelResolver = new TestChannelResolver();
     channelResolver.AddChannel(replyChannel2);
     endpoint.ChannelResolver = channelResolver;
     IMessage testMessage1 = MessageBuilder.WithPayload("bar").SetReplyChannel(replyChannel1).Build();
     endpoint.HandleMessage(testMessage1);
     IMessage reply1 = replyChannel1.Receive(TimeSpan.FromMilliseconds(50));
     Assert.IsNotNull(reply1);
     Assert.That(reply1.Payload, Is.EqualTo("foobar"));
     IMessage reply2 = replyChannel2.Receive(TimeSpan.Zero);
     Assert.IsNull(reply2);
     IMessage testMessage2 =
         MessageBuilder.FromMessage(testMessage1).SetReplyChannelName("replyChannel2").Build();
     endpoint.HandleMessage(testMessage2);
     reply1 = replyChannel1.Receive(TimeSpan.Zero);
     Assert.IsNull(reply1);
     reply2 = replyChannel2.Receive(TimeSpan.Zero);
     Assert.IsNotNull(reply2);
     Assert.That(reply2.Payload, Is.EqualTo("foobar"));
 }
 public void CorrelationIdNotSetIfMessageIsReturnedUnaltered()
 {
     QueueChannel replyChannel = new QueueChannel(1);
     ServiceActivatingHandler endpoint = new ServiceActivatingHandler(new TestObject3(), "Handle");
     IMessage message = MessageBuilder.WithPayload("test").SetReplyChannel(replyChannel).Build();
     endpoint.HandleMessage(message);
     IMessage reply = replyChannel.Receive(TimeSpan.FromMilliseconds(500));
     Assert.IsNull(reply.Headers.CorrelationId);
 }
 public void CorrelationIdSetByHandlerTakesPrecedence()
 {
     QueueChannel replyChannel = new QueueChannel(1);
     ServiceActivatingHandler endpoint = new ServiceActivatingHandler(new TestObject4(), "Handle");
     IMessage message = MessageBuilder.WithPayload("test").SetReplyChannel(replyChannel).Build();
     endpoint.HandleMessage(message);
     IMessage reply = replyChannel.Receive(TimeSpan.FromMilliseconds(500));
     Object correlationId = reply.Headers.CorrelationId;
     Assert.IsFalse(message.Headers.Id.Equals(correlationId));
     Assert.That(correlationId, Is.EqualTo("ABC-123"));
 }
 public void TestCorrelationIdPassedIfAvailable()
 {
     object correlationId = "123-ABC";
     IMessage message = MessageBuilder.WithPayload("test").SetCorrelationId(correlationId).Build();
     DirectChannel inputChannel = new DirectChannel();
     QueueChannel outputChannel = new QueueChannel(1);
     ServiceActivatingHandler serviceActivator = new ServiceActivatingHandler(new TestBean(), "UpperCase");
     serviceActivator.OutputChannel = outputChannel;
     EventDrivenConsumer endpoint = new EventDrivenConsumer(inputChannel, serviceActivator);
     endpoint.Start();
     Assert.IsTrue(inputChannel.Send(message));
     IMessage reply = outputChannel.Receive(TimeSpan.Zero);
     Assert.That(reply.Headers.CorrelationId, Is.EqualTo(correlationId));
 }
 public void NoReplyMessageWithRequiresReply()
 {
     QueueChannel channel = new QueueChannel(1);
     ServiceActivatingHandler endpoint = new ServiceActivatingHandler(new TestNullReplyObject(), "Handle");
     endpoint.RequiresReply = true;
     endpoint.OutputChannel = channel;
     IMessage message = MessageBuilder.WithPayload("foo").Build();
     endpoint.HandleMessage(message);
 }
 public void NoReplyMessage()
 {
     QueueChannel channel = new QueueChannel(1);
     ServiceActivatingHandler endpoint = new ServiceActivatingHandler(new TestNullReplyObject(), "Handle");
     endpoint.OutputChannel = channel;
     IMessage message = MessageBuilder.WithPayload("foo").Build();
     endpoint.HandleMessage(message);
     Assert.IsNull(channel.Receive(TimeSpan.Zero));
 }
 public void TestCorrelationNotCopiedFromRequestMessgeIdIfAlreadySetByHandler()
 {
     IMessage message = new StringMessage("test");
     DirectChannel inputChannel = new DirectChannel();
     QueueChannel outputChannel = new QueueChannel(1);
     ServiceActivatingHandler serviceActivator = new ServiceActivatingHandler(new TestBean(), "CreateMessage");
     serviceActivator.OutputChannel = outputChannel;
     EventDrivenConsumer endpoint = new EventDrivenConsumer(inputChannel, serviceActivator);
     endpoint.Start();
     Assert.IsTrue(inputChannel.Send(message));
     IMessage reply = outputChannel.Receive(TimeSpan.Zero);
     Assert.That(reply.Headers.CorrelationId, Is.EqualTo("456-XYZ"));
 }