[jboss-cvs] JBoss Messaging SVN: r3532 - in trunk: tests/src/org/jboss/messaging/core/remoting/test/unit and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Jan 4 08:31:38 EST 2008


Author: jmesnil
Date: 2008-01-04 08:31:37 -0500 (Fri, 04 Jan 2008)
New Revision: 3532

Added:
   trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/PacketDispatcherTest.java
Modified:
   trunk/src/main/org/jboss/messaging/core/remoting/PacketDispatcher.java
Log:
* added unit tests for PacketDispatcher

Modified: trunk/src/main/org/jboss/messaging/core/remoting/PacketDispatcher.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/PacketDispatcher.java	2008-01-04 12:49:02 UTC (rev 3531)
+++ trunk/src/main/org/jboss/messaging/core/remoting/PacketDispatcher.java	2008-01-04 13:31:37 UTC (rev 3532)
@@ -37,7 +37,7 @@
 
    // Constructors --------------------------------------------------
 
-   private PacketDispatcher()
+   public PacketDispatcher()
    {
       handlers = new ConcurrentHashMap<String, PacketHandler>();
    }

Added: trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/PacketDispatcherTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/PacketDispatcherTest.java	                        (rev 0)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/PacketDispatcherTest.java	2008-01-04 13:31:37 UTC (rev 3532)
@@ -0,0 +1,123 @@
+/*
+ * JBoss, Home of Professional Open Source
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package org.jboss.messaging.core.remoting.test.unit;
+
+import static java.util.UUID.randomUUID;
+import static org.easymock.EasyMock.createMock;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.expectLastCall;
+import static org.easymock.EasyMock.replay;
+import static org.easymock.EasyMock.verify;
+import junit.framework.TestCase;
+
+import org.jboss.messaging.core.remoting.PacketDispatcher;
+import org.jboss.messaging.core.remoting.PacketHandler;
+import org.jboss.messaging.core.remoting.PacketSender;
+import org.jboss.messaging.core.remoting.wireformat.TextPacket;
+
+/**
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ * 
+ * @version <tt>$Revision$</tt>
+ * 
+ */
+public class PacketDispatcherTest extends TestCase
+{
+   // Constants -----------------------------------------------------
+
+   // Attributes ----------------------------------------------------
+
+   PacketDispatcher dispatcher;
+
+   // Static --------------------------------------------------------
+
+   // Constructors --------------------------------------------------
+
+   // Public --------------------------------------------------------
+
+   // TestCase overrides --------------------------------------------
+
+   @Override
+   protected void setUp() throws Exception
+   {
+      dispatcher = new PacketDispatcher();
+   }
+
+   @Override
+   protected void tearDown() throws Exception
+   {
+      dispatcher = null;
+   }
+
+   public void testUnregisterAnUnregisteredHandlerReturnsNull() throws Exception
+   {
+      PacketHandler handler = createMock(PacketHandler.class);
+      String id = randomUUID().toString();
+      
+      replay(handler);
+      
+      dispatcher.unregister(id);
+      assertNull(dispatcher.getHandler(id));
+      
+      verify(handler);   
+   }
+   
+   public void testRegisterAndUnregisterValidHandler() throws Exception
+   {
+      PacketHandler handler = createMock(PacketHandler.class);
+      String id = randomUUID().toString();
+      expect(handler.getID()).andReturn(id).anyTimes();
+      
+      replay(handler);
+      
+      dispatcher.register(handler);
+      
+      PacketHandler registeredHandler = dispatcher.getHandler(id);
+      assertSame(handler, registeredHandler);
+      
+      dispatcher.unregister(id);
+      assertNull(dispatcher.getHandler(id));
+      
+      verify(handler);
+   }
+   
+   public void testDispatchPacketWithRegisteredHandler() throws Exception
+   {
+      PacketHandler handler = createMock(PacketHandler.class);
+      PacketSender sender = createMock(PacketSender.class);
+      
+      TextPacket packet = new TextPacket("testDispatch");
+      
+      String id = randomUUID().toString();
+      expect(handler.getID()).andStubReturn(id);
+      handler.handle(packet, sender);
+      expectLastCall().once();
+      
+      replay(handler, sender);
+      
+      dispatcher.register(handler);
+      
+      PacketHandler registeredHandler = dispatcher.getHandler(id);
+      assertSame(handler, registeredHandler);
+      
+      packet.setTargetID(handler.getID());
+      dispatcher.dispatch(packet, sender);
+      
+      dispatcher.unregister(id);
+      assertNull(dispatcher.getHandler(id));
+      
+      verify(handler, sender);
+   }
+
+   // Package protected ---------------------------------------------
+
+   // Protected -----------------------------------------------------
+
+   // Private -------------------------------------------------------
+
+   // Inner classes -------------------------------------------------
+}




More information about the jboss-cvs-commits mailing list