[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