From 9c49063a3c3a1be5eff4ff31034324ee68fb4817 Mon Sep 17 00:00:00 2001 From: Mark Fisher Date: Sun, 6 Jul 2008 22:17:12 +0000 Subject: [PATCH] MessagingGatewaySupport is now MessageBusAware. Added request/reply tests for SimpleMessagingGateway. --- .../gateway/MessagingGatewaySupport.java | 8 +- .../gateway/SimpleMessagingGatewayTests.java | 76 +++++++++++++++---- 2 files changed, 69 insertions(+), 15 deletions(-) diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/gateway/MessagingGatewaySupport.java b/org.springframework.integration/src/main/java/org/springframework/integration/gateway/MessagingGatewaySupport.java index 49e2b85f51..ded001e417 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/gateway/MessagingGatewaySupport.java +++ b/org.springframework.integration/src/main/java/org/springframework/integration/gateway/MessagingGatewaySupport.java @@ -16,6 +16,8 @@ package org.springframework.integration.gateway; +import org.springframework.integration.bus.MessageBus; +import org.springframework.integration.bus.MessageBusAware; import org.springframework.integration.channel.MessageChannel; /** @@ -26,7 +28,7 @@ import org.springframework.integration.channel.MessageChannel; * * @author Mark Fisher */ -public abstract class MessagingGatewaySupport { +public abstract class MessagingGatewaySupport implements MessageBusAware { private final RequestReplyTemplate requestReplyTemplate = new RequestReplyTemplate(); @@ -40,6 +42,10 @@ public abstract class MessagingGatewaySupport { } + public void setMessageBus(MessageBus messageBus) { + this.requestReplyTemplate.setMessageBus(messageBus); + } + public void setRequestChannel(MessageChannel requestChannel) { this.requestReplyTemplate.setRequestChannel(requestChannel); } diff --git a/org.springframework.integration/src/test/java/org/springframework/integration/gateway/SimpleMessagingGatewayTests.java b/org.springframework.integration/src/test/java/org/springframework/integration/gateway/SimpleMessagingGatewayTests.java index 1d4b78bae3..28f6a94686 100644 --- a/org.springframework.integration/src/test/java/org/springframework/integration/gateway/SimpleMessagingGatewayTests.java +++ b/org.springframework.integration/src/test/java/org/springframework/integration/gateway/SimpleMessagingGatewayTests.java @@ -16,13 +16,20 @@ package org.springframework.integration.gateway; -import static org.easymock.EasyMock.*; -import static org.junit.Assert.*; +import static org.easymock.EasyMock.createMock; +import static org.easymock.EasyMock.expect; +import static org.easymock.EasyMock.getCurrentArguments; +import static org.easymock.EasyMock.isA; +import static org.easymock.EasyMock.replay; +import static org.easymock.EasyMock.reset; +import static org.easymock.EasyMock.verify; +import static org.junit.Assert.assertEquals; import org.easymock.IAnswer; import org.junit.Before; import org.junit.Test; +import org.springframework.integration.bus.MessageBus; import org.springframework.integration.channel.MessageChannel; import org.springframework.integration.message.Message; import org.springframework.integration.message.MessageDeliveryException; @@ -31,32 +38,32 @@ import org.springframework.integration.message.MessageMapper; /** * @author Iwein Fuld */ +@SuppressWarnings("unchecked") public class SimpleMessagingGatewayTests { private SimpleMessagingGateway simpleMessagingGateway; - private MessageChannel requestChannel; + private MessageChannel requestChannel = createMock(MessageChannel.class); - private Object[] allmocks; + private MessageChannel replyChannel = createMock(MessageChannel.class); - private Message messageMock; + private Message messageMock = createMock(Message.class); - private MessageChannel replyChannel; + private MessageMapper messageMapperMock = createMock(MessageMapper.class); - private MessageMapper messageMapperMock; + private MessageBus messageBusMock = createMock(MessageBus.class); + + private Object[] allmocks = new Object[] { + requestChannel, replyChannel, messageMock, messageMapperMock }; @Before public void initializeSample() { - this.requestChannel = createMock(MessageChannel.class); - this.replyChannel = createMock(MessageChannel.class); - this.messageMock = createMock(Message.class); - this.messageMapperMock = createMock(MessageMapper.class); - this.simpleMessagingGateway = new SimpleMessagingGateway(requestChannel); this.simpleMessagingGateway.setReplyChannel(replyChannel); this.simpleMessagingGateway.setMessageMapper(messageMapperMock); - this.allmocks = new Object[] { requestChannel, replyChannel, messageMock, messageMapperMock }; + this.simpleMessagingGateway.setMessageBus(messageBusMock); + reset(allmocks); } @@ -104,7 +111,12 @@ public class SimpleMessagingGatewayTests { verify(allmocks); } - //TODO null cases for send + @Test + public void sendMessage_null() { + replay(allmocks); + this.simpleMessagingGateway.send(null); + verify(allmocks); + } /* receive tests */ @@ -125,4 +137,40 @@ public class SimpleMessagingGatewayTests { verify(allmocks); } + /* send and receive tests */ + + @Test + public void sendObjectAndRecieveObject() { + expect(replyChannel.getName()).andReturn("replyChannel").anyTimes(); + expect(requestChannel.send(isA(Message.class))).andReturn(true); + replay(allmocks); + this.simpleMessagingGateway.sendAndReceive("test"); + verify(allmocks); + } + + @Test + public void sendNullAndRecieveObject() { + expect(replyChannel.getName()).andReturn("replyChannel").anyTimes(); + replay(allmocks); + this.simpleMessagingGateway.sendAndReceive(null); + verify(allmocks); + } + + @Test + public void sendObjectAndRecieveMessage() { + expect(replyChannel.getName()).andReturn("replyChannel").anyTimes(); + expect(requestChannel.send(isA(Message.class))).andReturn(true); + replay(allmocks); + this.simpleMessagingGateway.sendAndReceiveMessage("test"); + verify(allmocks); + } + + @Test + public void sendNullAndRecieveMessage() { + expect(replyChannel.getName()).andReturn("replyChannel").anyTimes(); + replay(allmocks); + this.simpleMessagingGateway.sendAndReceiveMessage(null); + verify(allmocks); + } + }