[jboss-cvs] JBoss Messaging SVN: r4663 - in trunk: tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/mina and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Jul 7 19:53:52 EDT 2008
Author: clebert.suconic at jboss.com
Date: 2008-07-07 19:53:52 -0400 (Mon, 07 Jul 2008)
New Revision: 4663
Modified:
trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaHandler.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/mina/MinaConnectorTest.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/mina/MinaHandlerTest.java
Log:
Adding test to MinaHandlerTest
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaHandler.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaHandler.java 2008-07-07 21:38:51 UTC (rev 4662)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaHandler.java 2008-07-07 23:53:52 UTC (rev 4663)
@@ -190,7 +190,7 @@
// Private -------------------------------------------------------
- private void messageReceivedInternal(final IoSession session, Packet packet)
+ private void messageReceivedInternal(final IoSession session, final Packet packet)
throws Exception
{
PacketReturner returner;
Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/mina/MinaConnectorTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/mina/MinaConnectorTest.java 2008-07-07 21:38:51 UTC (rev 4662)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/mina/MinaConnectorTest.java 2008-07-07 23:53:52 UTC (rev 4663)
@@ -514,7 +514,7 @@
return null;
}
- private void connect(MinaConnector minaConnector) throws IOException
+ private void connect(final MinaConnector minaConnector) throws IOException
{
connect(minaConnector, false);
}
@@ -627,7 +627,7 @@
- private MinaConnector construct(boolean ssl) throws Exception
+ private MinaConnector construct(final boolean ssl) throws Exception
{
location = new LocationImpl(TransportType.TCP, TestSupport.HOST, TestSupport.PORT);
Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/mina/MinaHandlerTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/mina/MinaHandlerTest.java 2008-07-07 21:38:51 UTC (rev 4662)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/mina/MinaHandlerTest.java 2008-07-07 23:53:52 UTC (rev 4663)
@@ -27,10 +27,15 @@
import org.apache.mina.common.IoSession;
import org.easymock.EasyMock;
+import org.easymock.IAnswer;
+import org.jboss.messaging.core.client.ClientMessage;
import org.jboss.messaging.core.exception.MessagingException;
import org.jboss.messaging.core.remoting.CleanUpNotifier;
+import org.jboss.messaging.core.remoting.Packet;
import org.jboss.messaging.core.remoting.PacketDispatcher;
+import org.jboss.messaging.core.remoting.PacketReturner;
import org.jboss.messaging.core.remoting.impl.mina.MinaHandler;
+import org.jboss.messaging.core.remoting.impl.wireformat.ReceiveMessage;
import org.jboss.messaging.tests.util.UnitTestCase;
/**
@@ -117,19 +122,82 @@
}
- public void testMessageReceived() throws Exception
+ public void testMessageReceivedWithExecutor() throws Exception
{
+ internalTestMessageReceived(true);
+ }
+
+ public void testMessageReceivedWithoutExecutor() throws Exception
+ {
+ internalTestMessageReceived(false);
+ }
+
+ private void internalTestMessageReceived(boolean useExecutor) throws Exception
+ {
+ MinaHandler handler = newMinaHandler(useExecutor);
+ IoSession session = EasyMock.createNiceMock(IoSession.class);
+
+ ClientMessage msg = EasyMock.createNiceMock(ClientMessage.class);
+
+ ReceiveMessage rcvMessage = new ReceiveMessage(msg);
+
+ setupExecutorService();
+
+ dispatcher.dispatch(EasyMock.isA(ReceiveMessage.class), (PacketReturner)EasyMock.anyObject());
+
+ EasyMock.replay(dispatcher, failureNotifier, executorService, session);
+
+ handler.messageReceived(session, rcvMessage);
+
+ EasyMock.verify(dispatcher, failureNotifier, executorService, session);
+
+ EasyMock.reset(dispatcher, failureNotifier, executorService, session);
+
+ setupExecutorService();
+
+
+ rcvMessage.setResponseTargetID(33);
+
+ assertEquals(33, rcvMessage.getResponseTargetID());
+
+ dispatcher.callFilters(EasyMock.isA(ReceiveMessage.class));
+
+ dispatcher.dispatch(EasyMock.isA(ReceiveMessage.class), (PacketReturner)EasyMock.anyObject());
+
+ EasyMock.expectLastCall().andAnswer(new IAnswer<Object>(){
+
+ public Object answer() throws Throwable
+ {
+ Packet response = (Packet) EasyMock.getCurrentArguments()[0];
+ PacketReturner returner = (PacketReturner)EasyMock.getCurrentArguments()[1];
+ if (returner != null)
+ {
+ returner.send(response);
+ }
+ return null;
+ }});
+
+ EasyMock.expect(session.write(EasyMock.isA(ReceiveMessage.class))).andStubReturn(null);
+
+ EasyMock.replay(dispatcher, failureNotifier, executorService, session);
+
+ handler.messageReceived(session, rcvMessage);
+
+ EasyMock.verify(dispatcher, failureNotifier, executorService, session);
+
+
}
+
// Package protected ---------------------------------------------
// Protected -----------------------------------------------------
// Private -------------------------------------------------------
- private MinaHandler newMinaHandler(boolean closeSessionOnExceptionCaught)
+ private MinaHandler newMinaHandler(boolean useExecutor)
{
dispatcher = EasyMock.createMock(PacketDispatcher.class);
@@ -144,13 +212,30 @@
EasyMock.replay(dispatcher, failureNotifier, executorService);
- MinaHandler handler = new MinaHandler(dispatcher, executorService, failureNotifier, closeSessionOnExceptionCaught, true);
+ MinaHandler handler = new MinaHandler(dispatcher, executorService, failureNotifier, true, useExecutor);
EasyMock.verify(dispatcher, failureNotifier, executorService);
EasyMock.reset(dispatcher, failureNotifier, executorService);
return handler;
}
+
+ private void setupExecutorService()
+ {
+ executorService.execute(EasyMock.isA(Runnable.class));
+
+ EasyMock.expectLastCall().andAnswer(new IAnswer<Object>() {
+
+ public Object answer() throws Throwable
+ {
+ Runnable run = (Runnable)EasyMock.getCurrentArguments()[0];
+ run.run();
+ return null;
+ }});
+
+ EasyMock.expectLastCall().anyTimes();
+ }
+
// Inner classes -------------------------------------------------
More information about the jboss-cvs-commits
mailing list