[jboss-cvs] JBoss Messaging SVN: r3480 - in trunk/tests: src/org/jboss and 11 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Dec 12 04:34:48 EST 2007


Author: jmesnil
Date: 2007-12-12 04:34:48 -0500 (Wed, 12 Dec 2007)
New Revision: 3480

Added:
   trunk/tests/src/org/jboss/messaging/
   trunk/tests/src/org/jboss/messaging/core/
   trunk/tests/src/org/jboss/messaging/core/remoting/
   trunk/tests/src/org/jboss/messaging/core/remoting/integration/
   trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/
   trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/MinaClientTest.java
   trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/MinaHandlerTest.java
   trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/MinaInspectorTest.java
   trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/MinaRemotingBufferTest.java
   trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/ReversePacketHandler.java
   trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/TargetHandlerTest.java
   trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/TestSupport.java
   trunk/tests/src/org/jboss/messaging/core/remoting/test/
   trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/
   trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/ClientTest.java
   trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/NIOConnectorAdapter.java
   trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/NIOSessionAdapter.java
   trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/TestPacketHandler.java
   trunk/tests/src/org/jboss/messaging/core/remoting/wireformat/
   trunk/tests/src/org/jboss/messaging/core/remoting/wireformat/test/
   trunk/tests/src/org/jboss/messaging/core/remoting/wireformat/test/unit/
   trunk/tests/src/org/jboss/messaging/core/remoting/wireformat/test/unit/PacketTypeTest.java
Removed:
   trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/MinaClientTest.java
   trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/MinaHandlerTest.java
   trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/MinaInspectorTest.java
   trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/MinaRemotingBufferTest.java
   trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/ReversePacketHandler.java
   trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/TargetHandlerTest.java
   trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/TestSupport.java
   trunk/tests/src/org/jboss/messaging/core/remoting/wireformat/test/unit/PacketTypeTest.java
   trunk/tests/src/org/jboss/test/messaging/core/remoting/ClientTest.java
   trunk/tests/src/org/jboss/test/messaging/core/remoting/NIOConnectorAdapter.java
   trunk/tests/src/org/jboss/test/messaging/core/remoting/NIOSessionAdapter.java
   trunk/tests/src/org/jboss/test/messaging/core/remoting/TestPacketHandler.java
   trunk/tests/src/org/jboss/test/messaging/core/remoting/integration/
   trunk/tests/src/org/jboss/test/messaging/core/remoting/wireformat/
Modified:
   trunk/tests/build.xml
Log:
* refactored remoting tests to follow naming conventions (http://www.jboss.org/index.html?module=bb&op=viewtopic&t=125569)
* modified build.xml's integration-tests target to also run **/integration/test/** classes			  

Modified: trunk/tests/build.xml
===================================================================
--- trunk/tests/build.xml	2007-12-12 09:31:27 UTC (rev 3479)
+++ trunk/tests/build.xml	2007-12-12 09:34:48 UTC (rev 3480)
@@ -369,8 +369,6 @@
 			   <fileset dir="${build.tests.classes}">
 				   <include name="**/test/unit/**/${test-mask}.class"/>				   
 				   <exclude name="**/integration/test/unit/**/${test-mask}.class"/>
-				   
-				   
 			   </fileset>
 		   </batchtest>
 	   </junit>
@@ -380,7 +378,7 @@
 	   description="Runs integration tests">
 	   
 	   <echo message=""/>
-	   <echo message="Running unit tests"/>
+	   <echo message="Running integration tests"/>
 	   <echo message=""/>
 	   
 	   <junit printsummary="yes" haltonfailure="yes" haltonerror="yes">		   
@@ -392,6 +390,7 @@
 			   <formatter type="plain" usefile="${junit.formatter.usefile}"/>
 			   <fileset dir="${build.tests.classes}">
 				   <include name="**/integration/test/unit/**/${test-mask}.class"/>				   
+				   <include name="**/integration/test/**/${test-mask}.class"/>				   
 			   </fileset>
 		   </batchtest>
 	   </junit>

Copied: trunk/tests/src/org/jboss/messaging/core/remoting/integration/test (from rev 3475, trunk/tests/src/org/jboss/test/messaging/core/remoting/integration)

Deleted: trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/MinaClientTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/remoting/integration/MinaClientTest.java	2007-12-11 15:24:02 UTC (rev 3475)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/MinaClientTest.java	2007-12-12 09:34:48 UTC (rev 3480)
@@ -1,169 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- *
- * Distributable under LGPL license.
- * See terms of license at gnu.org.
- */
-package org.jboss.test.messaging.core.remoting.integration;
-
-import static java.util.concurrent.TimeUnit.MILLISECONDS;
-import static java.util.concurrent.TimeUnit.SECONDS;
-import static org.jboss.messaging.core.remoting.TransportType.TCP;
-
-import java.io.IOException;
-import java.util.List;
-
-import org.jboss.messaging.core.remoting.Client;
-import org.jboss.messaging.core.remoting.PacketDispatcher;
-import org.jboss.messaging.core.remoting.integration.MinaConnector;
-import org.jboss.messaging.core.remoting.wireformat.AbstractPacket;
-import org.jboss.messaging.core.remoting.wireformat.TextPacket;
-import org.jboss.test.messaging.core.remoting.TestPacketHandler;
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
- * 
- * @version <tt>$Revision$</tt>
- */
-public class MinaClientTest extends TestSupport
-{
-   private ReversePacketHandler serverPacketHandler;
-
-   // Constants -----------------------------------------------------
-
-   // Attributes ----------------------------------------------------
-
-   // Static --------------------------------------------------------
-
-   // Constructors --------------------------------------------------
-
-   // Public --------------------------------------------------------
-
-   public void testConnected() throws Exception
-   {
-      Client client = new Client(new MinaConnector());
-
-      assertFalse(client.isConnected());
-
-      client.connect("localhost", PORT, TCP);
-      assertTrue(client.isConnected());
-
-      assertTrue(client.disconnect());
-      assertFalse(client.isConnected());
-      assertFalse(client.disconnect());
-   }
-      
-   public void testSendOneWay() throws Exception
-   {
-      serverPacketHandler.expectMessage(1);
-
-      TextPacket packet = new TextPacket("testSendOneWay");
-      packet.setVersion((byte) 1);
-      packet.setTargetID(serverPacketHandler.getID());
-      client.sendOneWay(packet);
-
-      assertTrue(serverPacketHandler.await(2, SECONDS));
-
-      List<TextPacket> messages = serverPacketHandler.getPackets();
-      assertEquals(1, messages.size());
-      String response = ((TextPacket) messages.get(0)).getText();
-      assertEquals(packet.getText(), response);
-   }
-
-   public void testSendManyOneWay() throws Exception
-   {
-      serverPacketHandler.expectMessage(MANY_MESSAGES);
-
-      TextPacket[] packets = new TextPacket[MANY_MESSAGES];
-      for (int i = 0; i < MANY_MESSAGES; i++)
-      {
-         packets[i] = new TextPacket("testSendManyOneWay " + i);
-         packets[i].setVersion((byte) 1);
-         packets[i].setTargetID(serverPacketHandler.getID());
-         client.sendOneWay(packets[i]);
-      }
-
-      assertTrue(serverPacketHandler.await(10, SECONDS));
-
-      List<TextPacket> receivedPackets = serverPacketHandler.getPackets();
-      assertEquals(MANY_MESSAGES, receivedPackets.size());
-      for (int i = 0; i < MANY_MESSAGES; i++)
-      {
-         TextPacket receivedPacket = (TextPacket) receivedPackets.get(i);
-         assertEquals(packets[i].getText(), receivedPacket.getText());
-      }
-   }
-
-   public void testSendOneWayWithCallbackHandler() throws Exception
-   {
-      TestPacketHandler callbackHandler = new TestPacketHandler();
-      callbackHandler.expectMessage(1);
-
-      PacketDispatcher.client.register(callbackHandler);
-
-      TextPacket packet = new TextPacket("testSendOneWayWithCallbackHandler");
-      packet.setVersion((byte) 1);
-      packet.setTargetID(serverPacketHandler.getID());
-      packet.setCallbackID(callbackHandler.getID());
-
-      client.sendOneWay(packet);
-
-      assertTrue(callbackHandler.await(5, SECONDS));
-
-      assertEquals(1, callbackHandler.getPackets().size());
-      String response = callbackHandler.getPackets().get(0).getText();
-      assertEquals(reverse(packet.getText()), response);
-   }
-
-   public void testSendBlocking() throws Exception
-   {
-      TextPacket request = new TextPacket("testSendBlocking");
-      request.setVersion((byte) 1);
-      request.setTargetID(serverPacketHandler.getID());
-
-      AbstractPacket receivedPacket = client.sendBlocking(request);
-
-      assertNotNull(receivedPacket);
-      assertTrue(receivedPacket instanceof TextPacket);
-      TextPacket response = (TextPacket) receivedPacket;
-      assertEquals(reverse(request.getText()), response.getText());
-   }
-
-   public void testSendBlockingWithTimeout() throws Exception
-   {
-      client.setBlockingRequestTimeout(500, MILLISECONDS);
-      serverPacketHandler.setSleepTime(1000, MILLISECONDS);
-
-      AbstractPacket packet = new TextPacket("testSendBlockingWithTimeout");
-      packet.setVersion((byte) 1);
-
-      try
-      {
-         client.sendBlocking(packet);
-         fail("a IOException should be thrown");
-      } catch (IOException e)
-      {
-      }
-   }
-
-   // TestCase implementation ---------------------------------------
-
-   @Override
-   protected void setUp() throws Exception
-   {
-      startServer(TestSupport.PORT, TRANSPORT);
-      startClient(TestSupport.PORT, TRANSPORT);
-
-      serverPacketHandler = new ReversePacketHandler();
-      PacketDispatcher.server.register(serverPacketHandler);
-   }
-
-   @Override
-   protected void tearDown() throws Exception
-   {
-      PacketDispatcher.server.unregister(serverPacketHandler.getID());
-
-      client.disconnect();
-      stopServer();
-   }
-}

Copied: trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/MinaClientTest.java (from rev 3476, trunk/tests/src/org/jboss/test/messaging/core/remoting/integration/MinaClientTest.java)
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/MinaClientTest.java	                        (rev 0)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/MinaClientTest.java	2007-12-12 09:34:48 UTC (rev 3480)
@@ -0,0 +1,171 @@
+/*
+ * JBoss, Home of Professional Open Source
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package org.jboss.messaging.core.remoting.integration.test;
+
+import static java.util.concurrent.TimeUnit.MILLISECONDS;
+import static java.util.concurrent.TimeUnit.SECONDS;
+import static org.jboss.messaging.core.remoting.TransportType.TCP;
+
+import java.io.IOException;
+import java.util.List;
+
+import org.jboss.messaging.core.remoting.Client;
+import org.jboss.messaging.core.remoting.PacketDispatcher;
+import org.jboss.messaging.core.remoting.integration.MinaConnector;
+import org.jboss.messaging.core.remoting.test.unit.TestPacketHandler;
+import org.jboss.messaging.core.remoting.wireformat.AbstractPacket;
+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 MinaClientTest extends TestSupport
+{
+   private ReversePacketHandler serverPacketHandler;
+
+   // Constants -----------------------------------------------------
+
+   // Attributes ----------------------------------------------------
+
+   // Static --------------------------------------------------------
+
+   // Constructors --------------------------------------------------
+
+   // Public --------------------------------------------------------
+
+   public void testConnected() throws Exception
+   {
+      Client client = new Client(new MinaConnector());
+
+      assertFalse(client.isConnected());
+
+      client.connect("localhost", PORT, TCP);
+      assertTrue(client.isConnected());
+
+      assertTrue(client.disconnect());
+      assertFalse(client.isConnected());
+      assertFalse(client.disconnect());
+   }
+      
+   public void testSendOneWay() throws Exception
+   {
+      serverPacketHandler.expectMessage(1);
+
+      TextPacket packet = new TextPacket("testSendOneWay");
+      packet.setVersion((byte) 1);
+      packet.setTargetID(serverPacketHandler.getID());
+      client.sendOneWay(packet);
+
+      assertTrue(serverPacketHandler.await(2, SECONDS));
+
+      List<TextPacket> messages = serverPacketHandler.getPackets();
+      assertEquals(1, messages.size());
+      String response = ((TextPacket) messages.get(0)).getText();
+      assertEquals(packet.getText(), response);
+   }
+
+   public void testSendManyOneWay() throws Exception
+   {
+      serverPacketHandler.expectMessage(MANY_MESSAGES);
+
+      TextPacket[] packets = new TextPacket[MANY_MESSAGES];
+      for (int i = 0; i < MANY_MESSAGES; i++)
+      {
+         packets[i] = new TextPacket("testSendManyOneWay " + i);
+         packets[i].setVersion((byte) 1);
+         packets[i].setTargetID(serverPacketHandler.getID());
+         client.sendOneWay(packets[i]);
+      }
+
+      assertTrue(serverPacketHandler.await(10, SECONDS));
+
+      List<TextPacket> receivedPackets = serverPacketHandler.getPackets();
+      assertEquals(MANY_MESSAGES, receivedPackets.size());
+      for (int i = 0; i < MANY_MESSAGES; i++)
+      {
+         TextPacket receivedPacket = (TextPacket) receivedPackets.get(i);
+         assertEquals(packets[i].getText(), receivedPacket.getText());
+      }
+   }
+
+   public void testSendOneWayWithCallbackHandler() throws Exception
+   {
+      TestPacketHandler callbackHandler = new TestPacketHandler();
+      callbackHandler.expectMessage(1);
+
+      PacketDispatcher.client.register(callbackHandler);
+
+      TextPacket packet = new TextPacket("testSendOneWayWithCallbackHandler");
+      packet.setVersion((byte) 1);
+      packet.setTargetID(serverPacketHandler.getID());
+      packet.setCallbackID(callbackHandler.getID());
+
+      client.sendOneWay(packet);
+
+      assertTrue(callbackHandler.await(5, SECONDS));
+
+      assertEquals(1, callbackHandler.getPackets().size());
+      String response = callbackHandler.getPackets().get(0).getText();
+      assertEquals(reverse(packet.getText()), response);
+   }
+
+   public void testSendBlocking() throws Exception
+   {
+      TextPacket request = new TextPacket("testSendBlocking");
+      request.setVersion((byte) 1);
+      request.setTargetID(serverPacketHandler.getID());
+
+      AbstractPacket receivedPacket = client.sendBlocking(request);
+
+      assertNotNull(receivedPacket);
+      assertTrue(receivedPacket instanceof TextPacket);
+      TextPacket response = (TextPacket) receivedPacket;
+      assertEquals(reverse(request.getText()), response.getText());
+   }
+
+   public void testSendBlockingWithTimeout() throws Exception
+   {
+      client.setBlockingRequestTimeout(500, MILLISECONDS);
+      serverPacketHandler.setSleepTime(1000, MILLISECONDS);
+
+      AbstractPacket packet = new TextPacket("testSendBlockingWithTimeout");
+      packet.setTargetID(serverPacketHandler.getID());
+      
+      packet.setVersion((byte) 1);
+
+      try
+      {
+         client.sendBlocking(packet);
+         fail("a IOException should be thrown");
+      } catch (IOException e)
+      {
+      }
+   }
+
+   // TestCase implementation ---------------------------------------
+
+   @Override
+   protected void setUp() throws Exception
+   {
+      startServer(TestSupport.PORT, TRANSPORT);
+      startClient(TestSupport.PORT, TRANSPORT);
+
+      serverPacketHandler = new ReversePacketHandler();
+      PacketDispatcher.server.register(serverPacketHandler);
+   }
+
+   @Override
+   protected void tearDown() throws Exception
+   {
+      PacketDispatcher.server.unregister(serverPacketHandler.getID());
+
+      client.disconnect();
+      stopServer();
+   }
+}

Deleted: trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/MinaHandlerTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/remoting/integration/MinaHandlerTest.java	2007-12-11 15:24:02 UTC (rev 3475)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/MinaHandlerTest.java	2007-12-12 09:34:48 UTC (rev 3480)
@@ -1,98 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- *
- * Distributable under LGPL license.
- * See terms of license at gnu.org.
- */
-package org.jboss.test.messaging.core.remoting.integration;
-
-import junit.framework.TestCase;
-
-import org.jboss.messaging.core.remoting.PacketDispatcher;
-import org.jboss.messaging.core.remoting.integration.MinaHandler;
-import org.jboss.messaging.core.remoting.wireformat.TextPacket;
-import org.jboss.test.messaging.core.remoting.TestPacketHandler;
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
- * 
- * @version <tt>$Revision$</tt>
- * 
- */
-public class MinaHandlerTest extends TestCase
-{
-
-   private MinaHandler handler;
-   private TestPacketHandler packetHandler;
-
-   // Constants -----------------------------------------------------
-
-   // Attributes ----------------------------------------------------
-
-   // Static --------------------------------------------------------
-
-   // Constructors --------------------------------------------------
-
-   // Public --------------------------------------------------------
-
-   public void testReceiveNotAbstractPacket() throws Exception
-   {
-      try
-      {
-         handler.messageReceived(null, new Object());
-         fail();
-      } catch (IllegalArgumentException e)
-      {
-      }
-   }
-
-   public void testReceiveUnhandledAbstractPacket() throws Exception
-   {
-      TextPacket packet = new TextPacket("testReceiveUnhandledAbstractPacket");
-
-      handler.messageReceived(null, packet);
-
-      assertEquals(0, packetHandler.getPackets().size());
-   }
-
-   public void testReceiveHandledAbstractPacket() throws Exception
-   {
-
-      TextPacket packet = new TextPacket("testReceiveHandledAbstractPacket");
-      packet.setTargetID(packetHandler.getID());
-
-      handler.messageReceived(null, packet);
-
-      assertEquals(1, packetHandler.getPackets().size());
-      assertEquals(packet.getText(), packetHandler.getPackets().get(0)
-            .getText());
-   }
-
-   // TestCase overrides --------------------------------------------
-
-   @Override
-   protected void setUp() throws Exception
-   {
-      handler = new MinaHandler(PacketDispatcher.client);
-
-      packetHandler = new TestPacketHandler();
-      PacketDispatcher.client.register(packetHandler);
-   }
-
-   @Override
-   protected void tearDown() throws Exception
-   {
-      PacketDispatcher.client.unregister(packetHandler.getID());
-      packetHandler = null;
-
-      handler = null;
-   }
-
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   // Private -------------------------------------------------------
-
-   // Inner classes -------------------------------------------------
-}

Copied: trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/MinaHandlerTest.java (from rev 3476, trunk/tests/src/org/jboss/test/messaging/core/remoting/integration/MinaHandlerTest.java)
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/MinaHandlerTest.java	                        (rev 0)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/MinaHandlerTest.java	2007-12-12 09:34:48 UTC (rev 3480)
@@ -0,0 +1,98 @@
+/*
+ * JBoss, Home of Professional Open Source
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package org.jboss.messaging.core.remoting.integration.test;
+
+import junit.framework.TestCase;
+
+import org.jboss.messaging.core.remoting.PacketDispatcher;
+import org.jboss.messaging.core.remoting.integration.MinaHandler;
+import org.jboss.messaging.core.remoting.test.unit.TestPacketHandler;
+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 MinaHandlerTest extends TestCase
+{
+
+   private MinaHandler handler;
+   private TestPacketHandler packetHandler;
+
+   // Constants -----------------------------------------------------
+
+   // Attributes ----------------------------------------------------
+
+   // Static --------------------------------------------------------
+
+   // Constructors --------------------------------------------------
+
+   // Public --------------------------------------------------------
+
+   public void testReceiveNotAbstractPacket() throws Exception
+   {
+      try
+      {
+         handler.messageReceived(null, new Object());
+         fail();
+      } catch (IllegalArgumentException e)
+      {
+      }
+   }
+
+   public void testReceiveUnhandledAbstractPacket() throws Exception
+   {
+      TextPacket packet = new TextPacket("testReceiveUnhandledAbstractPacket");
+
+      handler.messageReceived(null, packet);
+
+      assertEquals(0, packetHandler.getPackets().size());
+   }
+
+   public void testReceiveHandledAbstractPacket() throws Exception
+   {
+
+      TextPacket packet = new TextPacket("testReceiveHandledAbstractPacket");
+      packet.setTargetID(packetHandler.getID());
+
+      handler.messageReceived(null, packet);
+
+      assertEquals(1, packetHandler.getPackets().size());
+      assertEquals(packet.getText(), packetHandler.getPackets().get(0)
+            .getText());
+   }
+
+   // TestCase overrides --------------------------------------------
+
+   @Override
+   protected void setUp() throws Exception
+   {
+      handler = new MinaHandler(PacketDispatcher.client);
+
+      packetHandler = new TestPacketHandler();
+      PacketDispatcher.client.register(packetHandler);
+   }
+
+   @Override
+   protected void tearDown() throws Exception
+   {
+      PacketDispatcher.client.unregister(packetHandler.getID());
+      packetHandler = null;
+
+      handler = null;
+   }
+
+   // Package protected ---------------------------------------------
+
+   // Protected -----------------------------------------------------
+
+   // Private -------------------------------------------------------
+
+   // Inner classes -------------------------------------------------
+}

Deleted: trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/MinaInspectorTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/remoting/integration/MinaInspectorTest.java	2007-12-11 15:24:02 UTC (rev 3475)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/MinaInspectorTest.java	2007-12-12 09:34:48 UTC (rev 3480)
@@ -1,109 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- *
- * Distributable under LGPL license.
- * See terms of license at gnu.org.
- */
-package org.jboss.test.messaging.core.remoting.integration;
-
-import static org.apache.mina.filter.reqres.ResponseType.WHOLE;
-
-import java.util.UUID;
-
-import junit.framework.TestCase;
-
-import org.jboss.messaging.core.remoting.integration.MinaInspector;
-import org.jboss.messaging.core.remoting.wireformat.AbstractPacket;
-import org.jboss.messaging.core.remoting.wireformat.NullPacket;
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
- * 
- * @version <tt>$Revision$</tt>
- * 
- */
-public class MinaInspectorTest extends TestCase
-{
-
-   // Constants -----------------------------------------------------
-
-   // Attributes ----------------------------------------------------
-
-   // Static --------------------------------------------------------
-
-   // Constructors --------------------------------------------------
-
-   // Public --------------------------------------------------------
-
-   private MinaInspector inspector;
-
-   public void testGetRequestIdForNull()
-   {
-      assertNull(inspector.getRequestId(null));
-   }
-
-   public void testGetRequestIdForNotAbstractPacket()
-   {
-      assertNull(inspector.getRequestId(new Object()));
-   }
-
-   public void testGetRequestIdForAbstractPacketWhichIsNotRequest()
-   {
-      AbstractPacket packet = new NullPacket();
-      packet.setTargetID(UUID.randomUUID().toString());
-      assertFalse(packet.isRequest());
-
-      assertNull(inspector.getRequestId(packet));
-   }
-
-   public void testGetRequestIdForAbstractPacketWhichIsRequest()
-   {
-      AbstractPacket packet = new NullPacket();
-      packet.setTargetID(UUID.randomUUID().toString());
-      packet.setCorrelationID(System.currentTimeMillis());
-      assertTrue(packet.isRequest());
-
-      Object requestID = inspector.getRequestId(packet);
-      assertNotNull(requestID);
-      assertEquals(packet.getCorrelationID(), requestID);
-   }
-
-   public void testGetResponseTypeForNull()
-   {
-      assertNull(inspector.getResponseType(null));
-   }
-
-   public void testGetResponseTypeForNotAbstractPacket()
-   {
-      assertNull(inspector.getResponseType(new Object()));
-   }
-
-   public void testGetResponseTypeForAbstractPacket()
-   {
-      AbstractPacket packet = new NullPacket();
-
-      assertEquals(WHOLE, inspector.getResponseType(packet));
-   }
-
-   // TestCase overrides --------------------------------------------
-
-   @Override
-   protected void setUp() throws Exception
-   {
-      inspector = new MinaInspector();
-   }
-
-   @Override
-   protected void tearDown() throws Exception
-   {
-      inspector = null;
-   }
-
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   // Private -------------------------------------------------------
-
-   // Inner classes -------------------------------------------------
-}

Copied: trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/MinaInspectorTest.java (from rev 3476, trunk/tests/src/org/jboss/test/messaging/core/remoting/integration/MinaInspectorTest.java)
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/MinaInspectorTest.java	                        (rev 0)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/MinaInspectorTest.java	2007-12-12 09:34:48 UTC (rev 3480)
@@ -0,0 +1,109 @@
+/*
+ * JBoss, Home of Professional Open Source
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package org.jboss.messaging.core.remoting.integration.test;
+
+import static org.apache.mina.filter.reqres.ResponseType.WHOLE;
+
+import java.util.UUID;
+
+import junit.framework.TestCase;
+
+import org.jboss.messaging.core.remoting.integration.MinaInspector;
+import org.jboss.messaging.core.remoting.wireformat.AbstractPacket;
+import org.jboss.messaging.core.remoting.wireformat.NullPacket;
+
+/**
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ * 
+ * @version <tt>$Revision$</tt>
+ * 
+ */
+public class MinaInspectorTest extends TestCase
+{
+
+   // Constants -----------------------------------------------------
+
+   // Attributes ----------------------------------------------------
+
+   // Static --------------------------------------------------------
+
+   // Constructors --------------------------------------------------
+
+   // Public --------------------------------------------------------
+
+   private MinaInspector inspector;
+
+   public void testGetRequestIdForNull()
+   {
+      assertNull(inspector.getRequestId(null));
+   }
+
+   public void testGetRequestIdForNotAbstractPacket()
+   {
+      assertNull(inspector.getRequestId(new Object()));
+   }
+
+   public void testGetRequestIdForAbstractPacketWhichIsNotRequest()
+   {
+      AbstractPacket packet = new NullPacket();
+      packet.setTargetID(UUID.randomUUID().toString());
+      assertFalse(packet.isRequest());
+
+      assertNull(inspector.getRequestId(packet));
+   }
+
+   public void testGetRequestIdForAbstractPacketWhichIsRequest()
+   {
+      AbstractPacket packet = new NullPacket();
+      packet.setTargetID(UUID.randomUUID().toString());
+      packet.setCorrelationID(System.currentTimeMillis());
+      assertTrue(packet.isRequest());
+
+      Object requestID = inspector.getRequestId(packet);
+      assertNotNull(requestID);
+      assertEquals(packet.getCorrelationID(), requestID);
+   }
+
+   public void testGetResponseTypeForNull()
+   {
+      assertNull(inspector.getResponseType(null));
+   }
+
+   public void testGetResponseTypeForNotAbstractPacket()
+   {
+      assertNull(inspector.getResponseType(new Object()));
+   }
+
+   public void testGetResponseTypeForAbstractPacket()
+   {
+      AbstractPacket packet = new NullPacket();
+
+      assertEquals(WHOLE, inspector.getResponseType(packet));
+   }
+
+   // TestCase overrides --------------------------------------------
+
+   @Override
+   protected void setUp() throws Exception
+   {
+      inspector = new MinaInspector();
+   }
+
+   @Override
+   protected void tearDown() throws Exception
+   {
+      inspector = null;
+   }
+
+   // Package protected ---------------------------------------------
+
+   // Protected -----------------------------------------------------
+
+   // Private -------------------------------------------------------
+
+   // Inner classes -------------------------------------------------
+}

Deleted: trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/MinaRemotingBufferTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/remoting/integration/MinaRemotingBufferTest.java	2007-12-11 15:24:02 UTC (rev 3475)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/MinaRemotingBufferTest.java	2007-12-12 09:34:48 UTC (rev 3480)
@@ -1,108 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- *
- * Distributable under LGPL license.
- * See terms of license at gnu.org.
- */
-package org.jboss.test.messaging.core.remoting.integration;
-
-import static java.util.UUID.randomUUID;
-import junit.framework.TestCase;
-
-import org.apache.mina.common.IoBuffer;
-import org.jboss.messaging.core.remoting.codec.RemotingBuffer;
-import org.jboss.messaging.core.remoting.integration.MinaPacketCodec;
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
- * 
- * @version <tt>$Revision$</tt>
- */
-public class MinaRemotingBufferTest extends TestCase
-{
-   // Constants -----------------------------------------------------
-
-   // Attributes ----------------------------------------------------
-
-   // Static --------------------------------------------------------
-
-   // Constructors --------------------------------------------------
-
-   // Public --------------------------------------------------------
-
-   private RemotingBuffer wrapper;
-   private IoBuffer buffer;
-
-   @Override
-   protected void setUp() throws Exception
-   {
-      buffer = IoBuffer.allocate(256);
-      buffer.setAutoExpand(true);
-      wrapper = new MinaPacketCodec.BufferWrapper(buffer);
-   }
-
-   @Override
-   protected void tearDown() throws Exception
-   {
-      wrapper = null;
-      buffer = null;
-
-   }
-
-   public void testNullString() throws Exception
-   {
-      assertNull(putAndGetNullableString(null));
-   }
-
-   public void testEmptyString() throws Exception
-   {
-      String result = putAndGetNullableString("");
-
-      assertNotNull(result);
-      assertEquals("", result);
-   }
-
-   public void testNonEmptyString() throws Exception
-   {
-      String junk = randomUUID().toString();
-
-      String result = putAndGetNullableString(junk);
-
-      assertNotNull(result);
-      assertEquals(junk, result);
-   }
-
-   public void testPutTrueBoolean() throws Exception
-   {
-      wrapper.putBoolean(true);
-      
-      buffer.flip();
-      
-      assertTrue(wrapper.getBoolean());
-   }
-
-   public void testPutFalseBoolean() throws Exception
-   {
-      wrapper.putBoolean(false);
-      
-      buffer.flip();
-      
-      assertFalse(wrapper.getBoolean());
-   }
-
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   // Private -------------------------------------------------------
-
-   private String putAndGetNullableString(String nullableString) throws Exception
-   {
-      wrapper.putNullableString(nullableString);
-
-      buffer.flip();
-      
-      return wrapper.getNullableString();
-   }
-   // Inner classes -------------------------------------------------
-}

Copied: trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/MinaRemotingBufferTest.java (from rev 3476, trunk/tests/src/org/jboss/test/messaging/core/remoting/integration/MinaRemotingBufferTest.java)
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/MinaRemotingBufferTest.java	                        (rev 0)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/MinaRemotingBufferTest.java	2007-12-12 09:34:48 UTC (rev 3480)
@@ -0,0 +1,108 @@
+/*
+ * JBoss, Home of Professional Open Source
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package org.jboss.messaging.core.remoting.integration.test;
+
+import static java.util.UUID.randomUUID;
+import junit.framework.TestCase;
+
+import org.apache.mina.common.IoBuffer;
+import org.jboss.messaging.core.remoting.codec.RemotingBuffer;
+import org.jboss.messaging.core.remoting.integration.MinaPacketCodec;
+
+/**
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
+ * 
+ * @version <tt>$Revision$</tt>
+ */
+public class MinaRemotingBufferTest extends TestCase
+{
+   // Constants -----------------------------------------------------
+
+   // Attributes ----------------------------------------------------
+
+   // Static --------------------------------------------------------
+
+   // Constructors --------------------------------------------------
+
+   // Public --------------------------------------------------------
+
+   private RemotingBuffer wrapper;
+   private IoBuffer buffer;
+
+   @Override
+   protected void setUp() throws Exception
+   {
+      buffer = IoBuffer.allocate(256);
+      buffer.setAutoExpand(true);
+      wrapper = new MinaPacketCodec.BufferWrapper(buffer);
+   }
+
+   @Override
+   protected void tearDown() throws Exception
+   {
+      wrapper = null;
+      buffer = null;
+
+   }
+
+   public void testNullString() throws Exception
+   {
+      assertNull(putAndGetNullableString(null));
+   }
+
+   public void testEmptyString() throws Exception
+   {
+      String result = putAndGetNullableString("");
+
+      assertNotNull(result);
+      assertEquals("", result);
+   }
+
+   public void testNonEmptyString() throws Exception
+   {
+      String junk = randomUUID().toString();
+
+      String result = putAndGetNullableString(junk);
+
+      assertNotNull(result);
+      assertEquals(junk, result);
+   }
+
+   public void testPutTrueBoolean() throws Exception
+   {
+      wrapper.putBoolean(true);
+      
+      buffer.flip();
+      
+      assertTrue(wrapper.getBoolean());
+   }
+
+   public void testPutFalseBoolean() throws Exception
+   {
+      wrapper.putBoolean(false);
+      
+      buffer.flip();
+      
+      assertFalse(wrapper.getBoolean());
+   }
+
+   // Package protected ---------------------------------------------
+
+   // Protected -----------------------------------------------------
+
+   // Private -------------------------------------------------------
+
+   private String putAndGetNullableString(String nullableString) throws Exception
+   {
+      wrapper.putNullableString(nullableString);
+
+      buffer.flip();
+      
+      return wrapper.getNullableString();
+   }
+   // Inner classes -------------------------------------------------
+}

Deleted: trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/ReversePacketHandler.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/remoting/integration/ReversePacketHandler.java	2007-12-11 15:24:02 UTC (rev 3475)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/ReversePacketHandler.java	2007-12-12 09:34:48 UTC (rev 3480)
@@ -1,92 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- *
- * Distributable under LGPL license.
- * See terms of license at gnu.org.
- */
-package org.jboss.test.messaging.core.remoting.integration;
-
-import static java.util.concurrent.TimeUnit.MILLISECONDS;
-import static junit.framework.Assert.fail;
-import static org.jboss.messaging.core.remoting.wireformat.AbstractPacket.NO_ID_SET;
-import static org.jboss.test.messaging.core.remoting.integration.TestSupport.reverse;
-
-import java.util.concurrent.TimeUnit;
-
-import junit.framework.Assert;
-
-import org.jboss.messaging.core.remoting.PacketSender;
-import org.jboss.messaging.core.remoting.wireformat.AbstractPacket;
-import org.jboss.messaging.core.remoting.wireformat.TextPacket;
-import org.jboss.test.messaging.core.remoting.TestPacketHandler;
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
- * 
- * @version <tt>$Revision$</tt>
- * 
- */
-public class ReversePacketHandler extends TestPacketHandler
-{
-   // Constants -----------------------------------------------------
-
-   // Attributes ----------------------------------------------------
-
-   private int sleepTime;
-   private TimeUnit timeUnit;
-   private PacketSender lastSender;
- 
-   // Static --------------------------------------------------------
-
-   // Constructors --------------------------------------------------
-
-   // Public --------------------------------------------------------
-
-   public void setSleepTime(int sleepTime, TimeUnit timeUnit)
-   {
-      this.sleepTime = sleepTime;
-      this.timeUnit = timeUnit;
-   }
-   
-   public PacketSender getLastSender()
-   {
-      return lastSender;
-   }
-   
-   // TestPacketHandler overrides -----------------------------------
-   
-   @Override
-   protected void doHandle(AbstractPacket packet, PacketSender sender)
-   {
-      Assert.assertTrue(packet instanceof TextPacket);
-
-      lastSender = sender;
-
-      if (sleepTime > 0)
-      {
-         try
-         {
-            Thread.sleep(MILLISECONDS.convert(sleepTime, timeUnit));
-         } catch (InterruptedException e)
-         {
-            fail();
-         }
-      }
-      
-      TextPacket message = (TextPacket) packet;
-      if (message.isRequest() || message.getCallbackID() != NO_ID_SET)
-      {
-         TextPacket response = new TextPacket(reverse(message.getText()));
-         response.normalize(message);
-         sender.send(response);
-      }
-   }
-
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   // Private -------------------------------------------------------
-
-   // Inner classes -------------------------------------------------
-}

Copied: trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/ReversePacketHandler.java (from rev 3476, trunk/tests/src/org/jboss/test/messaging/core/remoting/integration/ReversePacketHandler.java)
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/ReversePacketHandler.java	                        (rev 0)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/ReversePacketHandler.java	2007-12-12 09:34:48 UTC (rev 3480)
@@ -0,0 +1,92 @@
+/*
+ * JBoss, Home of Professional Open Source
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package org.jboss.messaging.core.remoting.integration.test;
+
+import static java.util.concurrent.TimeUnit.MILLISECONDS;
+import static junit.framework.Assert.fail;
+import static org.jboss.messaging.core.remoting.integration.test.TestSupport.reverse;
+import static org.jboss.messaging.core.remoting.wireformat.AbstractPacket.NO_ID_SET;
+
+import java.util.concurrent.TimeUnit;
+
+import junit.framework.Assert;
+
+import org.jboss.messaging.core.remoting.PacketSender;
+import org.jboss.messaging.core.remoting.test.unit.TestPacketHandler;
+import org.jboss.messaging.core.remoting.wireformat.AbstractPacket;
+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 ReversePacketHandler extends TestPacketHandler
+{
+   // Constants -----------------------------------------------------
+
+   // Attributes ----------------------------------------------------
+
+   private int sleepTime;
+   private TimeUnit timeUnit;
+   private PacketSender lastSender;
+ 
+   // Static --------------------------------------------------------
+
+   // Constructors --------------------------------------------------
+
+   // Public --------------------------------------------------------
+
+   public void setSleepTime(int sleepTime, TimeUnit timeUnit)
+   {
+      this.sleepTime = sleepTime;
+      this.timeUnit = timeUnit;
+   }
+   
+   public PacketSender getLastSender()
+   {
+      return lastSender;
+   }
+   
+   // TestPacketHandler overrides -----------------------------------
+   
+   @Override
+   protected void doHandle(AbstractPacket packet, PacketSender sender)
+   {
+      Assert.assertTrue(packet instanceof TextPacket);
+
+      lastSender = sender;
+
+      if (sleepTime > 0)
+      {
+         try
+         {
+            Thread.sleep(MILLISECONDS.convert(sleepTime, timeUnit));
+         } catch (InterruptedException e)
+         {
+            fail();
+         }
+      }
+      
+      TextPacket message = (TextPacket) packet;
+      if (message.isRequest() || !NO_ID_SET.equals(message.getCallbackID()))
+      {
+         TextPacket response = new TextPacket(reverse(message.getText()));
+         response.normalize(message);
+         sender.send(response);
+      }
+   }
+
+   // Package protected ---------------------------------------------
+
+   // Protected -----------------------------------------------------
+
+   // Private -------------------------------------------------------
+
+   // Inner classes -------------------------------------------------
+}

Deleted: trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/TargetHandlerTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/remoting/integration/TargetHandlerTest.java	2007-12-11 15:24:02 UTC (rev 3475)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/TargetHandlerTest.java	2007-12-12 09:34:48 UTC (rev 3480)
@@ -1,97 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- *
- * Distributable under LGPL license.
- * See terms of license at gnu.org.
- */
-package org.jboss.test.messaging.core.remoting.integration;
-
-import static java.util.concurrent.TimeUnit.SECONDS;
-
-import java.util.List;
-
-import org.jboss.messaging.core.remoting.PacketDispatcher;
-import org.jboss.messaging.core.remoting.PacketSender;
-import org.jboss.messaging.core.remoting.wireformat.TextPacket;
-import org.jboss.test.messaging.core.remoting.TestPacketHandler;
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
- * 
- * @version <tt>$Revision$</tt>
- */
-public class TargetHandlerTest extends TestSupport
-{
-   // Constants -----------------------------------------------------
-
-   // Attributes ----------------------------------------------------
-
-   private ReversePacketHandler serverPacketHandler;
-
-   // Static --------------------------------------------------------
-
-   // Constructors --------------------------------------------------
-
-   // Public --------------------------------------------------------
-
-   public void testClientHandlePacketSentByServer() throws Exception
-   {
-      TestPacketHandler clientHandler = new TestPacketHandler();
-      PacketDispatcher.client.register(clientHandler);
-
-      serverPacketHandler.expectMessage(1);
-      clientHandler.expectMessage(1);
-
-      TextPacket packet = new TextPacket(
-            "testClientHandlePacketSentByServer from client");
-      packet.setVersion((byte) 1);
-      packet.setTargetID(serverPacketHandler.getID());
-      // send a packet to create a sender when the server
-      // handles the packet
-      client.sendOneWay(packet);
-
-      assertTrue(serverPacketHandler.await(2, SECONDS));
-
-      assertNotNull(serverPacketHandler.getLastSender());
-      PacketSender sender = serverPacketHandler.getLastSender();
-      TextPacket packetFromServer = new TextPacket(
-            "testClientHandlePacketSentByServer from server");
-      packetFromServer.setVersion((byte) 1);
-      packetFromServer.setTargetID(clientHandler.getID());
-      sender.send(packetFromServer);
-
-      assertTrue(clientHandler.await(2, SECONDS));
-
-      List<TextPacket> packets = clientHandler.getPackets();
-      assertEquals(1, packets.size());
-      TextPacket packetReceivedByClient = (TextPacket) packets.get(0);
-      assertEquals(packetFromServer.getText(), packetReceivedByClient.getText());
-   }
-
-   // TestCase overrides --------------------------------------------
-
-   public void setUp() throws Exception
-   {
-      startServer(PORT, TRANSPORT);
-      startClient(PORT, TRANSPORT);
-      
-      serverPacketHandler = new ReversePacketHandler();
-      PacketDispatcher.server.register(serverPacketHandler);
-   }
-
-   public void tearDown() throws Exception
-   {
-      PacketDispatcher.server.unregister(serverPacketHandler.getID());
-
-      client.disconnect();
-      stopServer();
-   }
-
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   // Private -------------------------------------------------------
-
-   // Inner classes -------------------------------------------------
-}

Copied: trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/TargetHandlerTest.java (from rev 3476, trunk/tests/src/org/jboss/test/messaging/core/remoting/integration/TargetHandlerTest.java)
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/TargetHandlerTest.java	                        (rev 0)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/TargetHandlerTest.java	2007-12-12 09:34:48 UTC (rev 3480)
@@ -0,0 +1,97 @@
+/*
+ * JBoss, Home of Professional Open Source
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package org.jboss.messaging.core.remoting.integration.test;
+
+import static java.util.concurrent.TimeUnit.SECONDS;
+
+import java.util.List;
+
+import org.jboss.messaging.core.remoting.PacketDispatcher;
+import org.jboss.messaging.core.remoting.PacketSender;
+import org.jboss.messaging.core.remoting.test.unit.TestPacketHandler;
+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 TargetHandlerTest extends TestSupport
+{
+   // Constants -----------------------------------------------------
+
+   // Attributes ----------------------------------------------------
+
+   private ReversePacketHandler serverPacketHandler;
+
+   // Static --------------------------------------------------------
+
+   // Constructors --------------------------------------------------
+
+   // Public --------------------------------------------------------
+
+   public void testClientHandlePacketSentByServer() throws Exception
+   {
+      TestPacketHandler clientHandler = new TestPacketHandler();
+      PacketDispatcher.client.register(clientHandler);
+
+      serverPacketHandler.expectMessage(1);
+      clientHandler.expectMessage(1);
+
+      TextPacket packet = new TextPacket(
+            "testClientHandlePacketSentByServer from client");
+      packet.setVersion((byte) 1);
+      packet.setTargetID(serverPacketHandler.getID());
+      // send a packet to create a sender when the server
+      // handles the packet
+      client.sendOneWay(packet);
+
+      assertTrue(serverPacketHandler.await(2, SECONDS));
+
+      assertNotNull(serverPacketHandler.getLastSender());
+      PacketSender sender = serverPacketHandler.getLastSender();
+      TextPacket packetFromServer = new TextPacket(
+            "testClientHandlePacketSentByServer from server");
+      packetFromServer.setVersion((byte) 1);
+      packetFromServer.setTargetID(clientHandler.getID());
+      sender.send(packetFromServer);
+
+      assertTrue(clientHandler.await(2, SECONDS));
+
+      List<TextPacket> packets = clientHandler.getPackets();
+      assertEquals(1, packets.size());
+      TextPacket packetReceivedByClient = (TextPacket) packets.get(0);
+      assertEquals(packetFromServer.getText(), packetReceivedByClient.getText());
+   }
+
+   // TestCase overrides --------------------------------------------
+
+   public void setUp() throws Exception
+   {
+      startServer(PORT, TRANSPORT);
+      startClient(PORT, TRANSPORT);
+      
+      serverPacketHandler = new ReversePacketHandler();
+      PacketDispatcher.server.register(serverPacketHandler);
+   }
+
+   public void tearDown() throws Exception
+   {
+      PacketDispatcher.server.unregister(serverPacketHandler.getID());
+
+      client.disconnect();
+      stopServer();
+   }
+
+   // Package protected ---------------------------------------------
+
+   // Protected -----------------------------------------------------
+
+   // Private -------------------------------------------------------
+
+   // Inner classes -------------------------------------------------
+}

Deleted: trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/TestSupport.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/remoting/integration/TestSupport.java	2007-12-11 15:24:02 UTC (rev 3475)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/TestSupport.java	2007-12-12 09:34:48 UTC (rev 3480)
@@ -1,108 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- *
- * Distributable under LGPL license.
- * See terms of license at gnu.org.
- */
-package org.jboss.test.messaging.core.remoting.integration;
-
-import static org.jboss.messaging.core.remoting.TransportType.TCP;
-import junit.framework.TestCase;
-
-import org.jboss.messaging.core.remoting.Client;
-import org.jboss.messaging.core.remoting.TransportType;
-import org.jboss.messaging.core.remoting.integration.MinaConnector;
-import org.jboss.messaging.core.remoting.integration.MinaService;
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
- * 
- * @version <tt>$Revision$</tt>
- */
-public abstract class TestSupport extends TestCase
-{
-   // Constants -----------------------------------------------------
-
-   public static final int MANY_MESSAGES = 500;
-
-   /**
-    * Configurable by system property <code>transport.type</code>, default is
-    * TCP
-    */
-   public final static TransportType TRANSPORT;
-
-   // Attributes ----------------------------------------------------
-
-   Client client;
-
-   private MinaService service;
-
-   public static final int PORT = 9090;
-
-   // Static --------------------------------------------------------
-
-   static
-   {
-      String transportType = System.getProperty("transport.type", TCP
-            .toString());
-      TRANSPORT = TransportType.valueOf(transportType);
-      info("Default transport is " + TRANSPORT);
-   }
-
-   static String reverse(String text)
-   {
-      // Reverse text
-      StringBuffer buf = new StringBuffer(text.length());
-      for (int i = text.length() - 1; i >= 0; i--)
-      {
-         buf.append(text.charAt(i));
-      }
-      return buf.toString();
-   }
-
-   // Constructors --------------------------------------------------
-
-   // Public --------------------------------------------------------
-
-   void startServer(int port, TransportType transport) throws Exception
-   {
-      startServer(port, transport, false);
-   }
-
-   void startServer(int port, TransportType transport, boolean useSSL)
-         throws Exception
-   {
-      service = new MinaService("localhost", port);
-      service.start();
-   }
-   
-   void stopServer()
-   {
-      service.stop();
-   }
-
-   void startClient(int port, TransportType transport) throws Exception
-   {
-      startClient(port, transport, false);
-   }
-
-   void startClient(int port, TransportType transport, boolean useSSL)
-         throws Exception
-   {
-      client = new Client(new MinaConnector());
-      client.connect("localhost", port, transport, useSSL);
-   }
-
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   // Private -------------------------------------------------------
-
-   private static void info(String info)
-   {
-      System.out.format("### %-50s ###\n", info);
-   }
-
-   // Inner classes -------------------------------------------------
-}

Copied: trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/TestSupport.java (from rev 3476, trunk/tests/src/org/jboss/test/messaging/core/remoting/integration/TestSupport.java)
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/TestSupport.java	                        (rev 0)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/integration/test/TestSupport.java	2007-12-12 09:34:48 UTC (rev 3480)
@@ -0,0 +1,108 @@
+/*
+ * JBoss, Home of Professional Open Source
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package org.jboss.messaging.core.remoting.integration.test;
+
+import static org.jboss.messaging.core.remoting.TransportType.TCP;
+import junit.framework.TestCase;
+
+import org.jboss.messaging.core.remoting.Client;
+import org.jboss.messaging.core.remoting.TransportType;
+import org.jboss.messaging.core.remoting.integration.MinaConnector;
+import org.jboss.messaging.core.remoting.integration.MinaService;
+
+/**
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
+ * 
+ * @version <tt>$Revision$</tt>
+ */
+public abstract class TestSupport extends TestCase
+{
+   // Constants -----------------------------------------------------
+
+   public static final int MANY_MESSAGES = 500;
+
+   /**
+    * Configurable by system property <code>transport.type</code>, default is
+    * TCP
+    */
+   public final static TransportType TRANSPORT;
+
+   // Attributes ----------------------------------------------------
+
+   Client client;
+
+   private MinaService service;
+
+   public static final int PORT = 9090;
+
+   // Static --------------------------------------------------------
+
+   static
+   {
+      String transportType = System.getProperty("transport.type", TCP
+            .toString());
+      TRANSPORT = TransportType.valueOf(transportType);
+      info("Default transport is " + TRANSPORT);
+   }
+
+   static String reverse(String text)
+   {
+      // Reverse text
+      StringBuffer buf = new StringBuffer(text.length());
+      for (int i = text.length() - 1; i >= 0; i--)
+      {
+         buf.append(text.charAt(i));
+      }
+      return buf.toString();
+   }
+
+   // Constructors --------------------------------------------------
+
+   // Public --------------------------------------------------------
+
+   void startServer(int port, TransportType transport) throws Exception
+   {
+      startServer(port, transport, false);
+   }
+
+   void startServer(int port, TransportType transport, boolean useSSL)
+         throws Exception
+   {
+      service = new MinaService("localhost", port);
+      service.start();
+   }
+   
+   void stopServer()
+   {
+      service.stop();
+   }
+
+   void startClient(int port, TransportType transport) throws Exception
+   {
+      startClient(port, transport, false);
+   }
+
+   void startClient(int port, TransportType transport, boolean useSSL)
+         throws Exception
+   {
+      client = new Client(new MinaConnector());
+      client.connect("localhost", port, transport, useSSL);
+   }
+
+   // Package protected ---------------------------------------------
+
+   // Protected -----------------------------------------------------
+
+   // Private -------------------------------------------------------
+
+   private static void info(String info)
+   {
+      System.out.format("### %-50s ###\n", info);
+   }
+
+   // Inner classes -------------------------------------------------
+}

Copied: trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/ClientTest.java (from rev 3475, trunk/tests/src/org/jboss/test/messaging/core/remoting/ClientTest.java)
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/ClientTest.java	                        (rev 0)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/ClientTest.java	2007-12-12 09:34:48 UTC (rev 3480)
@@ -0,0 +1,191 @@
+/*
+ * 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 org.jboss.messaging.core.remoting.TransportType.TCP;
+import static org.jboss.messaging.core.remoting.integration.test.TestSupport.PORT;
+
+import java.io.IOException;
+
+import javax.jms.IllegalStateException;
+
+import junit.framework.TestCase;
+
+import org.jboss.messaging.core.remoting.Client;
+import org.jboss.messaging.core.remoting.NIOSession;
+import org.jboss.messaging.core.remoting.TransportType;
+import org.jboss.messaging.core.remoting.integration.test.TestSupport;
+import org.jboss.messaging.core.remoting.wireformat.NullPacket;
+
+/**
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
+ * 
+ * @version <tt>$Revision$</tt>
+ */
+public class ClientTest extends TestCase
+{
+   // Constants -----------------------------------------------------
+
+   // Attributes ----------------------------------------------------
+
+   // Static --------------------------------------------------------
+
+   // Constructors --------------------------------------------------
+
+   // Public --------------------------------------------------------
+
+   public void testConnected() throws Exception
+   {
+      Client client = new Client(new NIOConnectorAdapter()
+      {
+         private boolean connected = false;
+
+         @Override
+         public NIOSession connect(String host, int port,
+               TransportType transport) throws IOException
+         {
+            connected = true;
+            return new NIOSessionAdapter()
+            {
+               @Override
+               public boolean isConnected()
+               {
+                  return connected;
+               }
+            };
+         }
+
+         @Override
+         public boolean disconnect()
+         {
+            boolean wasConnected = connected;
+            connected = false;
+            return wasConnected;
+         }
+      });
+
+      assertFalse(client.isConnected());
+
+      client.connect("localhost", TestSupport.PORT, TCP);
+      assertTrue(client.isConnected());
+
+      assertTrue(client.disconnect());
+      assertFalse(client.isConnected());
+      assertFalse(client.disconnect());
+   }
+
+   public void testConnectionFailure() throws Exception
+   {
+      Client client = new Client(new NIOConnectorAdapter()
+      {
+         @Override
+         public NIOSession connect(String host, int port,
+               TransportType transport) throws IOException
+         {
+            throw new IOException("connection exception");
+         }
+      });
+
+      try
+      {
+         client.connect("localhost", PORT, TCP);
+         fail("connection must fail");
+      } catch (IOException e)
+      {
+      }
+   }
+
+   public void testSessionID() throws Exception
+   {
+      Client client = new Client(new NIOConnectorAdapter()
+      {
+         @Override
+         public NIOSession connect(String host, int port,
+               TransportType transport) throws IOException
+         {
+            return new NIOSessionAdapter()
+            {
+               @Override
+               public long getID()
+               {
+                  return System.currentTimeMillis();
+               }
+
+               @Override
+               public boolean isConnected()
+               {
+                  return true;
+               }
+            };
+         }
+      });
+      assertNull(client.getSessionID());
+      client.connect("localhost", PORT, TCP);
+      assertNotNull(client.getSessionID());
+      client.disconnect();
+      assertNull(client.getSessionID());
+   }
+
+   public void testURI() throws Exception
+   {
+      Client client = new Client(new NIOConnectorAdapter()
+      {
+         private boolean connected = false;
+
+         @Override
+         public NIOSession connect(String host, int port,
+               TransportType transport) throws IOException
+         {
+            connected = true;
+            return super.connect(host, port, transport);
+         }
+
+         @Override
+         public boolean disconnect()
+         {
+            connected = false;
+            return true;
+         }
+
+         @Override
+         public String getServerURI()
+         {
+            if (!connected)
+               return null;
+            else
+               return "tcp://localhost:" + PORT;
+         }
+      });
+      assertNull(client.getURI());
+      client.connect("localhost", PORT, TCP);
+      assertNotNull(client.getURI());
+      client.disconnect();
+      assertNull(client.getURI());
+   }
+
+   public void testCanNotSendPacketIfNotConnected() throws Exception
+   {
+      Client client = new Client(new NIOConnectorAdapter()
+      {
+         @Override
+         public NIOSession connect(String host, int port,
+               TransportType transport) throws IOException
+         {
+            return null;
+         }
+      });
+
+      try
+      {
+         client.sendOneWay(new NullPacket());
+         fail("can not send a packet if the dispatcher is not connected");
+      } catch (IllegalStateException e)
+      {
+
+      }
+   }
+}

Copied: trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/NIOConnectorAdapter.java (from rev 3475, trunk/tests/src/org/jboss/test/messaging/core/remoting/NIOConnectorAdapter.java)
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/NIOConnectorAdapter.java	                        (rev 0)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/NIOConnectorAdapter.java	2007-12-12 09:34:48 UTC (rev 3480)
@@ -0,0 +1,69 @@
+/*
+ * 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 java.io.IOException;
+
+import org.jboss.jms.client.remoting.ConsolidatedRemotingConnectionListener;
+import org.jboss.messaging.core.remoting.NIOConnector;
+import org.jboss.messaging.core.remoting.NIOSession;
+import org.jboss.messaging.core.remoting.TransportType;
+
+/**
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ *
+ * @version <tt>$Revision$</tt>
+ *
+ */
+public class NIOConnectorAdapter implements NIOConnector
+{
+   // Constants -----------------------------------------------------
+
+   // Attributes ----------------------------------------------------
+
+   // Static --------------------------------------------------------
+
+   // Constructors --------------------------------------------------
+
+   // Public --------------------------------------------------------
+
+   // NIOConnector implementation -----------------------------------
+   
+   public void addConnectionListener(
+         ConsolidatedRemotingConnectionListener listener)
+   {
+   }
+
+   public NIOSession connect(String host, int port, TransportType transport)
+         throws IOException
+   {
+      return null;
+   }
+
+   public boolean disconnect()
+   {
+      return false;
+   }
+
+   public String getServerURI()
+   {
+      return null;
+   }
+
+   public void removeConnectionListener(
+         ConsolidatedRemotingConnectionListener listener)
+   {
+   }
+
+   // Package protected ---------------------------------------------
+
+   // Protected -----------------------------------------------------
+
+   // Private -------------------------------------------------------
+
+   // Inner classes -------------------------------------------------
+}

Copied: trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/NIOSessionAdapter.java (from rev 3475, trunk/tests/src/org/jboss/test/messaging/core/remoting/NIOSessionAdapter.java)
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/NIOSessionAdapter.java	                        (rev 0)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/NIOSessionAdapter.java	2007-12-12 09:34:48 UTC (rev 3480)
@@ -0,0 +1,60 @@
+/*
+ * 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 java.util.concurrent.TimeUnit;
+
+import org.jboss.messaging.core.remoting.NIOSession;
+
+/**
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ *
+ * @version <tt>$Revision$</tt>
+ *
+ */
+public class NIOSessionAdapter implements NIOSession
+{    
+   // Constants -----------------------------------------------------
+
+   // Attributes ----------------------------------------------------
+
+   // Static --------------------------------------------------------
+
+   // Constructors --------------------------------------------------
+
+   // Public --------------------------------------------------------
+
+   // NIOSession implementation -------------------------------------
+ 
+   public long getID()
+   {
+      return 0;
+   }
+
+   public boolean isConnected()
+   {
+      return false;
+   }
+
+   public void write(Object object)
+   {
+   }
+   
+   public Object writeAndBlock(long requestID, Object object, long timeout,
+         TimeUnit timeUnit) throws Throwable
+   {
+      return null;
+   }
+
+   // Package protected ---------------------------------------------
+
+   // Protected -----------------------------------------------------
+
+   // Private -------------------------------------------------------
+
+   // Inner classes -------------------------------------------------
+}

Copied: trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/TestPacketHandler.java (from rev 3475, trunk/tests/src/org/jboss/test/messaging/core/remoting/TestPacketHandler.java)
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/TestPacketHandler.java	                        (rev 0)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/TestPacketHandler.java	2007-12-12 09:34:48 UTC (rev 3480)
@@ -0,0 +1,67 @@
+/*
+ * 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 java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+import org.jboss.messaging.core.remoting.PacketHandler;
+import org.jboss.messaging.core.remoting.PacketSender;
+import org.jboss.messaging.core.remoting.wireformat.AbstractPacket;
+import org.jboss.messaging.core.remoting.wireformat.TextPacket;
+
+public class TestPacketHandler implements PacketHandler
+{
+   private final String id;
+   private final List<TextPacket> packets;
+   private CountDownLatch latch;
+   
+   public TestPacketHandler()
+   {
+      this.id = UUID.randomUUID().toString();
+      packets = new ArrayList<TextPacket>();
+   }
+
+   public String getID()
+   {
+      return id;
+   }
+   
+   public boolean await(long time, TimeUnit timeUnit) throws InterruptedException
+   {
+     if (latch == null)
+        return false;
+     return latch.await(time, timeUnit);
+   }
+
+   public void expectMessage(int count)
+   {
+      this.latch = new CountDownLatch(count);
+   }
+
+   public void handle(AbstractPacket packet, PacketSender sender)
+   {
+      packets.add((TextPacket) packet);
+      
+      doHandle(packet, sender);
+
+      if (latch != null)
+         latch.countDown();
+   }
+   
+   protected void doHandle(AbstractPacket packet, PacketSender sender)
+   {
+   }
+
+   public List<TextPacket> getPackets()
+   {
+      return packets;
+   }
+}
\ No newline at end of file

Copied: trunk/tests/src/org/jboss/messaging/core/remoting/wireformat/test/unit (from rev 3475, trunk/tests/src/org/jboss/test/messaging/core/remoting/wireformat)

Deleted: trunk/tests/src/org/jboss/messaging/core/remoting/wireformat/test/unit/PacketTypeTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/remoting/wireformat/PacketTypeTest.java	2007-12-11 15:24:02 UTC (rev 3475)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/wireformat/test/unit/PacketTypeTest.java	2007-12-12 09:34:48 UTC (rev 3480)
@@ -1,1633 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- *
- * Distributable under LGPL license.
- * See terms of license at gnu.org.
- */
-package org.jboss.test.messaging.core.remoting.wireformat;
-
-import static org.jboss.messaging.core.remoting.codec.AbstractPacketCodec.LONG_LENGTH;
-import static org.jboss.messaging.core.remoting.codec.AbstractPacketCodec.sizeof;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_ACKDELIVERIES;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_ADDTEMPORARYDESTINATION;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_BROWSER_RESET;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_CANCELDELIVERIES;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_CANCELDELIVERY;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_CHANGERATE;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_CLOSE;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_DELETETEMPORARYDESTINATION;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_DELIVERMESSAGE;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_JMSEXCEPTION;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_RECOVERDELIVERIES;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_SENDMESSAGE;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_SENDTRANSACTION;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_SETCLIENTID;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_STARTCONNECTION;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_STOPCONNECTION;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_UNSUBSCRIBE;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_UPDATECALLBACK;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.NULL;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_ACKDELIVERY;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_BROWSER_HASNEXTMESSAGE;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_BROWSER_NEXTMESSAGE;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_BROWSER_NEXTMESSAGEBLOCK;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_CLOSING;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_CREATEBROWSER;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_CREATECONNECTION;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_CREATECONSUMER;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_CREATEDESTINATION;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_CREATESESSION;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_GETCLIENTAOPSTACK;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_GETCLIENTID;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_GETPREPAREDTRANSACTIONS;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_GETTOPOLOGY;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_IDBLOCK;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.RESP_ACKDELIVERY;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.RESP_BROWSER_HASNEXTMESSAGE;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.RESP_BROWSER_NEXTMESSAGE;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.RESP_BROWSER_NEXTMESSAGEBLOCK;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.RESP_CLOSING;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.RESP_CREATEBROWSER;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.RESP_CREATECONNECTION;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.RESP_CREATECONSUMER;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.RESP_CREATEDESTINATION;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.RESP_CREATESESSION;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.RESP_GETCLIENTAOPSTACK;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.RESP_GETCLIENTID;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.RESP_GETPREPAREDTRANSACTIONS;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.RESP_GETTOPOLOGY;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.RESP_IDBLOCK;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.TEXT;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.nio.charset.CharacterCodingException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Random;
-import java.util.UUID;
-
-import javax.jms.InvalidDestinationException;
-import javax.jms.JMSException;
-
-import junit.framework.TestCase;
-
-import org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate;
-import org.jboss.jms.delegate.Ack;
-import org.jboss.jms.delegate.Cancel;
-import org.jboss.jms.delegate.DefaultAck;
-import org.jboss.jms.delegate.DefaultCancel;
-import org.jboss.jms.delegate.DeliveryRecovery;
-import org.jboss.jms.delegate.TopologyResult;
-import org.jboss.jms.destination.JBossDestination;
-import org.jboss.jms.destination.JBossQueue;
-import org.jboss.jms.destination.JBossTopic;
-import org.jboss.jms.message.JBossMessage;
-import org.jboss.jms.tx.ClientTransaction;
-import org.jboss.jms.tx.MessagingXid;
-import org.jboss.jms.tx.TransactionRequest;
-import org.jboss.messaging.core.contract.Message;
-import org.jboss.messaging.core.remoting.codec.AbstractPacketCodec;
-import org.jboss.messaging.core.remoting.codec.AcknowledgeDeliveriesRequestCodec;
-import org.jboss.messaging.core.remoting.codec.AcknowledgeDeliveryRequestCodec;
-import org.jboss.messaging.core.remoting.codec.AcknowledgeDeliveryResponseCodec;
-import org.jboss.messaging.core.remoting.codec.AddTemporaryDestinationMessageCodec;
-import org.jboss.messaging.core.remoting.codec.BrowserHasNextMessageResponseCodec;
-import org.jboss.messaging.core.remoting.codec.BrowserNextMessageBlockRequestCodec;
-import org.jboss.messaging.core.remoting.codec.BrowserNextMessageBlockResponseCodec;
-import org.jboss.messaging.core.remoting.codec.BrowserNextMessageResponseCodec;
-import org.jboss.messaging.core.remoting.codec.CancelDeliveriesMessageCodec;
-import org.jboss.messaging.core.remoting.codec.CancelDeliveryMessageCodec;
-import org.jboss.messaging.core.remoting.codec.ChangeRateMessageCodec;
-import org.jboss.messaging.core.remoting.codec.ClosingRequestCodec;
-import org.jboss.messaging.core.remoting.codec.ClosingResponseCodec;
-import org.jboss.messaging.core.remoting.codec.ConnectionFactoryCreateConnectionRequestCodec;
-import org.jboss.messaging.core.remoting.codec.ConnectionFactoryCreateConnectionResponseCodec;
-import org.jboss.messaging.core.remoting.codec.CreateBrowserRequestCodec;
-import org.jboss.messaging.core.remoting.codec.CreateBrowserResponseCodec;
-import org.jboss.messaging.core.remoting.codec.CreateConsumerRequestCodec;
-import org.jboss.messaging.core.remoting.codec.CreateConsumerResponseCodec;
-import org.jboss.messaging.core.remoting.codec.CreateDestinationRequestCodec;
-import org.jboss.messaging.core.remoting.codec.CreateDestinationResponseCodec;
-import org.jboss.messaging.core.remoting.codec.CreateSessionRequestCodec;
-import org.jboss.messaging.core.remoting.codec.CreateSessionResponseCodec;
-import org.jboss.messaging.core.remoting.codec.DeleteTemporaryDestinationMessageCodec;
-import org.jboss.messaging.core.remoting.codec.DeliverMessageCodec;
-import org.jboss.messaging.core.remoting.codec.GetClientAOPStackResponseCodec;
-import org.jboss.messaging.core.remoting.codec.GetClientIDResponseCodec;
-import org.jboss.messaging.core.remoting.codec.GetPreparedTransactionsResponseCodec;
-import org.jboss.messaging.core.remoting.codec.GetTopologyResponseCodec;
-import org.jboss.messaging.core.remoting.codec.IDBlockRequestCodec;
-import org.jboss.messaging.core.remoting.codec.IDBlockResponseCodec;
-import org.jboss.messaging.core.remoting.codec.JMSExceptionMessageCodec;
-import org.jboss.messaging.core.remoting.codec.RecoverDeliveriesMessageCodec;
-import org.jboss.messaging.core.remoting.codec.RemotingBuffer;
-import org.jboss.messaging.core.remoting.codec.SendMessageCodec;
-import org.jboss.messaging.core.remoting.codec.SendTransactionMessageCodec;
-import org.jboss.messaging.core.remoting.codec.SetClientIDMessageCodec;
-import org.jboss.messaging.core.remoting.codec.TextPacketCodec;
-import org.jboss.messaging.core.remoting.codec.UnsubscribeMessageCodec;
-import org.jboss.messaging.core.remoting.codec.UpdateCallbackMessageCodec;
-import org.jboss.messaging.core.remoting.integration.PacketCodecFactory;
-import org.jboss.messaging.core.remoting.wireformat.AbstractPacket;
-import org.jboss.messaging.core.remoting.wireformat.AcknowledgeDeliveriesMessage;
-import org.jboss.messaging.core.remoting.wireformat.AcknowledgeDeliveryRequest;
-import org.jboss.messaging.core.remoting.wireformat.AcknowledgeDeliveryResponse;
-import org.jboss.messaging.core.remoting.wireformat.AddTemporaryDestinationMessage;
-import org.jboss.messaging.core.remoting.wireformat.BrowserHasNextMessageRequest;
-import org.jboss.messaging.core.remoting.wireformat.BrowserHasNextMessageResponse;
-import org.jboss.messaging.core.remoting.wireformat.BrowserNextMessageBlockRequest;
-import org.jboss.messaging.core.remoting.wireformat.BrowserNextMessageBlockResponse;
-import org.jboss.messaging.core.remoting.wireformat.BrowserNextMessageRequest;
-import org.jboss.messaging.core.remoting.wireformat.BrowserNextMessageResponse;
-import org.jboss.messaging.core.remoting.wireformat.BrowserResetMessage;
-import org.jboss.messaging.core.remoting.wireformat.CancelDeliveriesMessage;
-import org.jboss.messaging.core.remoting.wireformat.CancelDeliveryMessage;
-import org.jboss.messaging.core.remoting.wireformat.ChangeRateMessage;
-import org.jboss.messaging.core.remoting.wireformat.CloseMessage;
-import org.jboss.messaging.core.remoting.wireformat.ClosingRequest;
-import org.jboss.messaging.core.remoting.wireformat.ClosingResponse;
-import org.jboss.messaging.core.remoting.wireformat.CreateBrowserRequest;
-import org.jboss.messaging.core.remoting.wireformat.CreateBrowserResponse;
-import org.jboss.messaging.core.remoting.wireformat.CreateConnectionRequest;
-import org.jboss.messaging.core.remoting.wireformat.CreateConnectionResponse;
-import org.jboss.messaging.core.remoting.wireformat.CreateConsumerRequest;
-import org.jboss.messaging.core.remoting.wireformat.CreateConsumerResponse;
-import org.jboss.messaging.core.remoting.wireformat.CreateDestinationRequest;
-import org.jboss.messaging.core.remoting.wireformat.CreateDestinationResponse;
-import org.jboss.messaging.core.remoting.wireformat.CreateSessionRequest;
-import org.jboss.messaging.core.remoting.wireformat.CreateSessionResponse;
-import org.jboss.messaging.core.remoting.wireformat.DeleteTemporaryDestinationMessage;
-import org.jboss.messaging.core.remoting.wireformat.DeliverMessage;
-import org.jboss.messaging.core.remoting.wireformat.GetClientAOPStackRequest;
-import org.jboss.messaging.core.remoting.wireformat.GetClientAOPStackResponse;
-import org.jboss.messaging.core.remoting.wireformat.GetClientIDRequest;
-import org.jboss.messaging.core.remoting.wireformat.GetClientIDResponse;
-import org.jboss.messaging.core.remoting.wireformat.GetPreparedTransactionsRequest;
-import org.jboss.messaging.core.remoting.wireformat.GetPreparedTransactionsResponse;
-import org.jboss.messaging.core.remoting.wireformat.GetTopologyRequest;
-import org.jboss.messaging.core.remoting.wireformat.GetTopologyResponse;
-import org.jboss.messaging.core.remoting.wireformat.IDBlockRequest;
-import org.jboss.messaging.core.remoting.wireformat.IDBlockResponse;
-import org.jboss.messaging.core.remoting.wireformat.JMSExceptionMessage;
-import org.jboss.messaging.core.remoting.wireformat.NullPacket;
-import org.jboss.messaging.core.remoting.wireformat.RecoverDeliveriesMessage;
-import org.jboss.messaging.core.remoting.wireformat.SendMessage;
-import org.jboss.messaging.core.remoting.wireformat.SendTransactionMessage;
-import org.jboss.messaging.core.remoting.wireformat.SetClientIDMessage;
-import org.jboss.messaging.core.remoting.wireformat.StartConnectionMessage;
-import org.jboss.messaging.core.remoting.wireformat.StopConnectionMessage;
-import org.jboss.messaging.core.remoting.wireformat.TextPacket;
-import org.jboss.messaging.core.remoting.wireformat.UnsubscribeMessage;
-import org.jboss.messaging.core.remoting.wireformat.UpdateCallbackMessage;
-import org.jboss.messaging.util.Version;
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
- * 
- * @version <tt>$Revision$</tt>
- */
-public class PacketTypeTest extends TestCase
-{
-
-   // Constants -----------------------------------------------------
-
-   private static final Random random = new Random(System.currentTimeMillis());
-
-   // Attributes ----------------------------------------------------
-
-   // Static --------------------------------------------------------
-
-   private static void addVersion(AbstractPacket packet)
-   {
-      packet.setVersion(randomByte());
-   }
-
-   private static String randomString()
-   {
-      return UUID.randomUUID().toString();
-   }
-
-   private static long randomLong()
-   {
-      return random.nextLong();
-   }
-
-   private static int randomInt()
-   {
-      return random.nextInt();
-   }
-
-   private static byte randomByte()
-   {
-      return Integer.valueOf(random.nextInt()).byteValue();
-   }
-
-   private static byte[] randomBytes()
-   {
-      return randomString().getBytes();
-   }
-
-   private static void checkHeader(RemotingBuffer buffer, AbstractPacket packet)
-         throws Exception
-   {
-      assertEquals(buffer.get(), packet.getType().byteValue());
-      assertEquals(buffer.get(), packet.getVersion());
-
-      int headerLength = LONG_LENGTH + sizeof(packet.getTargetID())
-            + sizeof(packet.getCallbackID());
-      assertEquals(buffer.getInt(), headerLength);
-      assertEquals(buffer.getLong(), packet.getCorrelationID());
-      assertEquals(buffer.getNullableString(), packet.getTargetID());
-      assertEquals(buffer.getNullableString(), packet.getCallbackID());
-   }
-
-   private static void assertEqualsAcks(List<Ack> expected, List<Ack> actual)
-   {
-      assertEquals(expected.size(), actual.size());
-      for (int i = 0; i < expected.size(); i++)
-      {
-         assertEquals(expected.get(i).getDeliveryID(), actual.get(i)
-               .getDeliveryID());
-      }
-   }
-
-   private static void assertEqualsDeliveries(List<DeliveryRecovery> expected,
-         List<DeliveryRecovery> actual)
-   {
-      assertEquals(expected.size(), actual.size());
-      for (int i = 0; i < expected.size(); i++)
-      {
-         DeliveryRecovery expectedDelivery = expected.get(i);
-         DeliveryRecovery actualDelivery = actual.get(i);
-         assertEquals(expectedDelivery.getDeliveryID(), actualDelivery
-               .getDeliveryID());
-         assertEquals(expectedDelivery.getMessageID(), actualDelivery
-               .getMessageID());
-         assertEquals(expectedDelivery.getQueueName(), actualDelivery
-               .getQueueName());
-      }
-   }
-
-   private static void assertEqualsCancels(List<Cancel> expected,
-         List<Cancel> actual)
-   {
-      assertEquals(expected.size(), actual.size());
-      for (int i = 0; i < expected.size(); i++)
-      {
-         Cancel expectedCancel = expected.get(i);
-         Cancel actualCancel = actual.get(i);
-         assertEquals(expectedCancel.getDeliveryId(), actualCancel
-               .getDeliveryId());
-         assertEquals(expectedCancel.getDeliveryCount(), actualCancel
-               .getDeliveryCount());
-         assertEquals(expectedCancel.isExpired(), actualCancel.isExpired());
-         assertEquals(expectedCancel.isReachedMaxDeliveryAttempts(),
-               actualCancel.isReachedMaxDeliveryAttempts());
-      }
-   }
-
-   private static void assertSameXids(MessagingXid[] expected,
-         MessagingXid[] actual)
-   {
-      assertEquals(expected.length, actual.length);
-      for (int i = 0; i < expected.length; i++)
-      {
-         MessagingXid expectedXid = expected[i];
-         MessagingXid actualXid = actual[i];
-         assertEqualsByteArrays(expectedXid.getBranchQualifier(), actualXid
-               .getBranchQualifier());
-         assertEquals(expectedXid.getFormatId(), actualXid.getFormatId());
-         assertEqualsByteArrays(expectedXid.getGlobalTransactionId(), actualXid
-               .getGlobalTransactionId());
-      }
-   }
-
-   private static void assertEqualsByteArrays(byte[] expected, byte[] actual)
-   {
-      assertEquals(expected.length, actual.length);
-      for (int i = 0; i < expected.length; i++)
-      {
-         assertEquals(expected[i], actual[i]);
-      }
-   }
-
-   private static void assertSameTopology(TopologyResult expected,
-         TopologyResult actual)
-   {
-      assertEquals(expected.getUniqueName(), actual.getUniqueName());
-      assertEquals(expected.getFailoverMap(), actual.getFailoverMap());
-
-      ClientConnectionFactoryDelegate[] expectedDelegates = expected
-            .getDelegates();
-      ClientConnectionFactoryDelegate[] actualDelegates = actual.getDelegates();
-
-      assertEquals(expectedDelegates.length, actualDelegates.length);
-
-      for (int i = 0; i < expectedDelegates.length; i++)
-      {
-         ClientConnectionFactoryDelegate expectedDelegate = expectedDelegates[i];
-         ClientConnectionFactoryDelegate actualDelegate = actualDelegates[i];
-
-         assertEquals(expectedDelegate.getID(), actualDelegate.getID());
-         assertEquals(expectedDelegate.getName(), actualDelegate.getName());
-      }
-   }
-
-   // Constructors --------------------------------------------------
-
-   // Public --------------------------------------------------------
-
-   public void testNullPacket() throws Exception
-   {
-      NullPacket packet = new NullPacket();
-      packet.setVersion(randomByte());
-      packet.setCallbackID(randomString());
-      packet.setCorrelationID(randomLong());
-      packet.setTargetID(randomString());
-
-      AbstractPacketCodec<AbstractPacket> codec = PacketCodecFactory
-            .createCodecForEmptyPacket(NULL, NullPacket.class);
-
-      SimpleRemotingBuffer buffer = encode(packet, codec);
-      checkHeader(buffer, packet);
-      // no body
-      assertEquals(0, buffer.getInt());
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof NullPacket);
-      NullPacket p = (NullPacket) decodedPacket;
-
-      assertEquals(NULL, p.getType());
-      assertEquals(packet.getVersion(), p.getVersion());
-      assertEquals(packet.getCallbackID(), p.getCallbackID());
-      assertEquals(packet.getCorrelationID(), p.getCorrelationID());
-      assertEquals(packet.getTargetID(), p.getTargetID());
-   }
-
-   public void testJMSExceptionMessage() throws Exception
-   {
-      JMSException e = new InvalidDestinationException(
-            "testJMSExceptionMessage");
-      JMSExceptionMessage message = new JMSExceptionMessage(e);
-      addVersion(message);
-
-      AbstractPacketCodec<JMSExceptionMessage> codec = new JMSExceptionMessageCodec();
-      SimpleRemotingBuffer buffer = encode(message, codec);
-      checkHeader(buffer, message);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof JMSExceptionMessage);
-      JMSExceptionMessage decodedMessage = (JMSExceptionMessage) decodedPacket;
-
-      assertEquals(MSG_JMSEXCEPTION, decodedMessage.getType());
-      assertEquals(message.getException().getMessage(), decodedMessage
-            .getException().getMessage());
-   }
-
-   public void testTextPacket() throws Exception
-   {
-      TextPacket packet = new TextPacket("testTextPacket");
-      addVersion(packet);
-      AbstractPacketCodec<TextPacket> codec = new TextPacketCodec();
-
-      SimpleRemotingBuffer buffer = encode(packet, codec);
-      checkHeader(buffer, packet);
-      assertEquals(buffer.getInt(), sizeof(packet.getText()));
-      assertEquals(buffer.getNullableString(), packet.getText());
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof TextPacket);
-      TextPacket p = (TextPacket) decodedPacket;
-
-      assertEquals(TEXT, p.getType());
-      assertEquals(packet.getText(), p.getText());
-   }
-
-   public void testCreateConnectionRequest() throws Exception
-   {
-      byte version = randomByte();
-      String remotingSessionID = randomString();
-      String clientVMID = randomString();
-      int failedNodeID = 0;
-      String username = null;
-      String password = null;
-
-      CreateConnectionRequest request = new CreateConnectionRequest(version,
-            remotingSessionID, clientVMID, failedNodeID, username, password);
-      addVersion(request);
-      AbstractPacketCodec<CreateConnectionRequest> codec = new ConnectionFactoryCreateConnectionRequestCodec();
-      SimpleRemotingBuffer buffer = encode(request, codec);
-      checkHeader(buffer, request);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof CreateConnectionRequest);
-      CreateConnectionRequest decodedRequest = (CreateConnectionRequest) decodedPacket;
-
-      assertEquals(REQ_CREATECONNECTION, decodedPacket.getType());
-      assertEquals(request.getVersion(), decodedRequest.getVersion());
-      assertEquals(request.getRemotingSessionID(), decodedRequest
-            .getRemotingSessionID());
-      assertEquals(request.getClientVMID(), decodedRequest.getClientVMID());
-      assertEquals(request.getFailedNodeID(), decodedRequest.getFailedNodeID());
-      assertEquals(request.getUsername(), decodedRequest.getUsername());
-      assertEquals(request.getPassword(), decodedRequest.getPassword());
-   }
-
-   public void testCreateConnectionResponse() throws Exception
-   {
-      CreateConnectionResponse response = new CreateConnectionResponse(
-            randomString(), 1234);
-      addVersion(response);
-      AbstractPacketCodec<CreateConnectionResponse> codec = new ConnectionFactoryCreateConnectionResponseCodec();
-      SimpleRemotingBuffer buffer = encode(response, codec);
-      checkHeader(buffer, response);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof CreateConnectionResponse);
-
-      CreateConnectionResponse decodedResponse = (CreateConnectionResponse) decodedPacket;
-      assertEquals(RESP_CREATECONNECTION, decodedResponse.getType());
-      assertEquals(response.getConnectionID(), decodedResponse
-            .getConnectionID());
-      assertEquals(response.getServerID(), decodedResponse.getServerID());
-   }
-
-   public void testGetClientAOPStackRequest() throws Exception
-   {
-      GetClientAOPStackRequest request = new GetClientAOPStackRequest();
-      addVersion(request);
-
-      AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
-            REQ_GETCLIENTAOPSTACK, GetClientAOPStackRequest.class);
-      SimpleRemotingBuffer buffer = encode(request, codec);
-      checkHeader(buffer, request);
-      buffer.rewind();
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof GetClientAOPStackRequest);
-      assertEquals(REQ_GETCLIENTAOPSTACK, decodedPacket.getType());
-   }
-
-   public void testGetClientAOPStackResponse() throws Exception
-   {
-      byte[] stack = randomBytes();
-
-      GetClientAOPStackResponse response = new GetClientAOPStackResponse(stack);
-      addVersion(response);
-      AbstractPacketCodec codec = new GetClientAOPStackResponseCodec();
-      SimpleRemotingBuffer buffer = encode(response, codec);
-      checkHeader(buffer, response);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof GetClientAOPStackResponse);
-      GetClientAOPStackResponse decodedResponse = (GetClientAOPStackResponse) decodedPacket;
-      assertEquals(RESP_GETCLIENTAOPSTACK, decodedResponse.getType());
-      assertEqualsByteArrays(response.getStack(), decodedResponse.getStack());
-   }
-
-   public void testGetTopologyRequest() throws Exception
-   {
-      GetTopologyRequest request = new GetTopologyRequest();
-      addVersion(request);
-
-      AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
-            REQ_GETTOPOLOGY, GetTopologyRequest.class);
-      SimpleRemotingBuffer buffer = encode(request, codec);
-      checkHeader(buffer, request);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof GetTopologyRequest);
-      assertEquals(REQ_GETTOPOLOGY, decodedPacket.getType());
-   }
-
-   @SuppressWarnings("unchecked")
-   public void testGetTopologyResponse() throws Exception
-   {
-      // FIXME should use mock objects with a correct interface
-      ClientConnectionFactoryDelegate[] delegates = new ClientConnectionFactoryDelegate[] {
-            new ClientConnectionFactoryDelegate(randomString(), randomString(),
-                  23, randomString(), randomInt(), Version.instance(), false, true),
-            new ClientConnectionFactoryDelegate(randomString(), randomString(),
-                  33, randomString(), randomInt(), Version.instance(), true, false) };
-      TopologyResult topology = new TopologyResult(randomString(), delegates,
-            new HashMap());
-      GetTopologyResponse response = new GetTopologyResponse(topology);
-      addVersion(response);
-      AbstractPacketCodec codec = new GetTopologyResponseCodec();
-      SimpleRemotingBuffer buffer = encode(response, codec);
-      checkHeader(buffer, response);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof GetTopologyResponse);
-      GetTopologyResponse decodedResponse = (GetTopologyResponse) decodedPacket;
-      assertEquals(RESP_GETTOPOLOGY, decodedPacket.getType());
-      assertSameTopology(response.getTopology(), decodedResponse.getTopology());
-   }
-
-   public void testUpdateCallbackMessage() throws Exception
-   {
-      UpdateCallbackMessage message = new UpdateCallbackMessage(randomString(),
-            randomString(), true);
-      addVersion(message);
-      AbstractPacketCodec codec = new UpdateCallbackMessageCodec();
-      SimpleRemotingBuffer buffer = encode(message, codec);
-      checkHeader(buffer, message);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof UpdateCallbackMessage);
-
-      UpdateCallbackMessage decodedMessage = (UpdateCallbackMessage) decodedPacket;
-      assertEquals(MSG_UPDATECALLBACK, decodedMessage.getType());
-      assertEquals(message.getRemotingSessionID(), decodedMessage
-            .getRemotingSessionID());
-      assertEquals(message.getClientVMID(), decodedMessage.getClientVMID());
-      assertEquals(message.isAdd(), decodedMessage.isAdd());
-   }
-
-   public void testCreateSessionRequest() throws Exception
-   {
-      CreateSessionRequest request = new CreateSessionRequest(true, 0, false);
-      addVersion(request);
-      AbstractPacketCodec codec = new CreateSessionRequestCodec();
-      SimpleRemotingBuffer buffer = encode(request, codec);
-      checkHeader(buffer, request);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof CreateSessionRequest);
-
-      CreateSessionRequest decodedRequest = (CreateSessionRequest) decodedPacket;
-      assertEquals(REQ_CREATESESSION, decodedRequest.getType());
-      assertEquals(request.isTransacted(), decodedRequest.isTransacted());
-      assertEquals(request.getAcknowledgementMode(), decodedRequest
-            .getAcknowledgementMode());
-      assertEquals(request.isXA(), decodedRequest.isXA());
-   }
-
-   public void testCreateSessionResponse() throws Exception
-   {
-      CreateSessionResponse response = new CreateSessionResponse(
-            randomString(), 23, false);
-      addVersion(response);
-      AbstractPacketCodec codec = new CreateSessionResponseCodec();
-      SimpleRemotingBuffer buffer = encode(response, codec);
-      checkHeader(buffer, response);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof CreateSessionResponse);
-
-      CreateSessionResponse decodedResponse = (CreateSessionResponse) decodedPacket;
-      assertEquals(RESP_CREATESESSION, decodedResponse.getType());
-      assertEquals(response.getSessionID(), decodedResponse.getSessionID());
-      assertEquals(response.getDupsOKBatchSize(), decodedResponse
-            .getDupsOKBatchSize());
-      assertEquals(response.isStrictTCK(), decodedResponse.isStrictTCK());
-   }
-
-   public void testIDBlockRequest() throws Exception
-   {
-      IDBlockRequest request = new IDBlockRequest(23);
-      addVersion(request);
-      AbstractPacketCodec codec = new IDBlockRequestCodec();
-      SimpleRemotingBuffer buffer = encode(request, codec);
-      checkHeader(buffer, request);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof IDBlockRequest);
-
-      IDBlockRequest decodedRequest = (IDBlockRequest) decodedPacket;
-      assertEquals(REQ_IDBLOCK, decodedRequest.getType());
-      assertEquals(request.getSize(), decodedRequest.getSize());
-   }
-
-   public void testIDBlockResponse() throws Exception
-   {
-      IDBlockResponse response = new IDBlockResponse(randomLong(),
-            randomLong() * 2);
-      addVersion(response);
-      AbstractPacketCodec codec = new IDBlockResponseCodec();
-      SimpleRemotingBuffer buffer = encode(response, codec);
-      checkHeader(buffer, response);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof IDBlockResponse);
-
-      IDBlockResponse decodedResponse = (IDBlockResponse) decodedPacket;
-      assertEquals(RESP_IDBLOCK, decodedResponse.getType());
-      assertEquals(response.getLow(), decodedResponse.getLow());
-      assertEquals(response.getHigh(), decodedResponse.getHigh());
-   }
-
-   public void testSendMessage() throws Exception
-   {
-      SendMessage packet = new SendMessage(new JBossMessage(System
-            .currentTimeMillis()), true, randomLong());
-      addVersion(packet);
-      AbstractPacketCodec codec = new SendMessageCodec();
-      SimpleRemotingBuffer buffer = encode(packet, codec);
-      checkHeader(buffer, packet);
-      buffer.rewind();
-
-      AbstractPacket p = codec.decode(buffer);
-
-      assertTrue(p instanceof SendMessage);
-
-      SendMessage decodedPacket = (SendMessage) p;
-      assertEquals(MSG_SENDMESSAGE, decodedPacket.getType());
-      assertEquals(packet.checkForDuplicates(), decodedPacket
-            .checkForDuplicates());
-      assertEquals(packet.getSequence(), decodedPacket.getSequence());
-      assertEquals(packet.getMessage().getMessageID(), decodedPacket
-            .getMessage().getMessageID());
-   }
-
-   public void testCreateConsumerRequest() throws Exception
-   {
-      JBossDestination destination = new JBossQueue(
-            "testCreateConsumerRequest", true);
-      CreateConsumerRequest request = new CreateConsumerRequest(destination,
-            "color = 'red'", false, "subscription", false, false);
-      addVersion(request);
-      AbstractPacketCodec codec = new CreateConsumerRequestCodec();
-      SimpleRemotingBuffer buffer = encode(request, codec);
-      checkHeader(buffer, request);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof CreateConsumerRequest);
-
-      CreateConsumerRequest decodedRequest = (CreateConsumerRequest) decodedPacket;
-      assertEquals(REQ_CREATECONSUMER, decodedRequest.getType());
-      assertEquals(request.getDestination(), decodedRequest.getDestination());
-      assertEquals(request.getSelector(), decodedRequest.getSelector());
-      assertEquals(request.isNoLocal(), decodedRequest.isNoLocal());
-      assertEquals(request.getSubscriptionName(), decodedRequest
-            .getSubscriptionName());
-      assertEquals(request.isConnectionConsumer(), decodedRequest
-            .isConnectionConsumer());
-      assertEquals(request.isAutoFlowControl(), decodedRequest
-            .isAutoFlowControl());
-   }
-
-   public void testCreateDestinationRequest() throws Exception
-   {
-      CreateDestinationRequest request = new CreateDestinationRequest(
-            "testCreateDestinationRequest", false);
-      addVersion(request);
-      AbstractPacketCodec codec = new CreateDestinationRequestCodec();
-      SimpleRemotingBuffer buffer = encode(request, codec);
-      checkHeader(buffer, request);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof CreateDestinationRequest);
-
-      CreateDestinationRequest decodedRequest = (CreateDestinationRequest) decodedPacket;
-      assertEquals(REQ_CREATEDESTINATION, decodedRequest.getType());
-      assertEquals(request.getName(), decodedRequest.getName());
-      assertEquals(request.isQueue(), decodedRequest.isQueue());
-   }
-
-   public void testCreateDestinationResponseForQueue() throws Exception
-   {
-      JBossDestination destination = new JBossQueue("testCreateQueueResponse",
-            true);
-      CreateDestinationResponse response = new CreateDestinationResponse(
-            destination);
-      addVersion(response);
-      AbstractPacketCodec codec = new CreateDestinationResponseCodec();
-      SimpleRemotingBuffer buffer = encode(response, codec);
-      checkHeader(buffer, response);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof CreateDestinationResponse);
-
-      CreateDestinationResponse decodedResponse = (CreateDestinationResponse) decodedPacket;
-      assertEquals(RESP_CREATEDESTINATION, decodedResponse.getType());
-      assertTrue(decodedResponse.getDestination() instanceof JBossQueue);
-      assertEquals(response.getDestination(), decodedResponse.getDestination());
-   }
-
-   public void testCreateDestinationResponseForTopic() throws Exception
-   {
-      JBossDestination destination = new JBossTopic(
-            "testCreateDestinationResponseForTopic");
-      CreateDestinationResponse response = new CreateDestinationResponse(
-            destination);
-      addVersion(response);
-      AbstractPacketCodec codec = new CreateDestinationResponseCodec();
-      SimpleRemotingBuffer buffer = encode(response, codec);
-      checkHeader(buffer, response);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof CreateDestinationResponse);
-
-      CreateDestinationResponse decodedResponse = (CreateDestinationResponse) decodedPacket;
-      assertEquals(RESP_CREATEDESTINATION, decodedResponse.getType());
-      assertTrue(decodedResponse.getDestination() instanceof JBossTopic);
-      assertEquals(response.getDestination(), decodedResponse.getDestination());
-   }
-
-   public void testCreateConsumerResponse() throws Exception
-   {
-
-      CreateConsumerResponse response = new CreateConsumerResponse(
-            randomString(), 23, 42, randomLong());
-      addVersion(response);
-      AbstractPacketCodec codec = new CreateConsumerResponseCodec();
-      SimpleRemotingBuffer buffer = encode(response, codec);
-      checkHeader(buffer, response);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof CreateConsumerResponse);
-
-      CreateConsumerResponse decodedResponse = (CreateConsumerResponse) decodedPacket;
-      assertEquals(RESP_CREATECONSUMER, decodedResponse.getType());
-      assertEquals(response.getBufferSize(), decodedResponse.getBufferSize());
-      assertEquals(response.getMaxDeliveries(), decodedResponse
-            .getMaxDeliveries());
-      assertEquals(response.getRedeliveryDelay(), decodedResponse
-            .getRedeliveryDelay());
-   }
-
-   public void testStartConnectionMessage() throws Exception
-   {
-      StartConnectionMessage packet = new StartConnectionMessage();
-      addVersion(packet);
-
-      AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
-            MSG_STARTCONNECTION, StartConnectionMessage.class);
-      SimpleRemotingBuffer buffer = encode(packet, codec);
-      checkHeader(buffer, packet);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof StartConnectionMessage);
-      assertEquals(MSG_STARTCONNECTION, decodedPacket.getType());
-   }
-
-   public void testStopConnectionMessage() throws Exception
-   {
-      StopConnectionMessage packet = new StopConnectionMessage();
-      addVersion(packet);
-
-      AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
-            MSG_STOPCONNECTION, StopConnectionMessage.class);
-      SimpleRemotingBuffer buffer = encode(packet, codec);
-      checkHeader(buffer, packet);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof StopConnectionMessage);
-      assertEquals(MSG_STOPCONNECTION, decodedPacket.getType());
-   }
-
-   public void testChangeRateMessage() throws Exception
-   {
-      ChangeRateMessage message = new ChangeRateMessage(0.63f);
-      addVersion(message);
-      AbstractPacketCodec codec = new ChangeRateMessageCodec();
-      SimpleRemotingBuffer buffer = encode(message, codec);
-      checkHeader(buffer, message);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof ChangeRateMessage);
-      ChangeRateMessage decodedMessage = (ChangeRateMessage) decodedPacket;
-      assertEquals(MSG_CHANGERATE, decodedMessage.getType());
-      assertEquals(message.getRate(), decodedMessage.getRate());
-   }
-
-   public void testDeliverMessage() throws Exception
-   {
-      Message msg = new JBossMessage(randomLong());
-      DeliverMessage message = new DeliverMessage(msg, randomString(),
-            randomLong(), 23);
-      addVersion(message);
-      AbstractPacketCodec codec = new DeliverMessageCodec();
-      SimpleRemotingBuffer buffer = encode(message, codec);
-      checkHeader(buffer, message);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof DeliverMessage);
-      DeliverMessage decodedMessage = (DeliverMessage) decodedPacket;
-      assertEquals(MSG_DELIVERMESSAGE, decodedMessage.getType());
-      assertEquals(message.getMessage().getMessageID(), decodedMessage
-            .getMessage().getMessageID());
-      assertEquals(message.getConsumerID(), decodedMessage.getConsumerID());
-      assertEquals(message.getDeliveryID(), decodedMessage.getDeliveryID());
-      assertEquals(message.getDeliveryCount(), decodedMessage
-            .getDeliveryCount());
-   }
-
-   public void testAcknowledgeDeliveryRequest() throws Exception
-   {
-      AcknowledgeDeliveryRequest request = new AcknowledgeDeliveryRequest(
-            randomLong());
-      addVersion(request);
-      AbstractPacketCodec codec = new AcknowledgeDeliveryRequestCodec();
-      SimpleRemotingBuffer buffer = encode(request, codec);
-      checkHeader(buffer, request);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof AcknowledgeDeliveryRequest);
-      AcknowledgeDeliveryRequest decodedRequest = (AcknowledgeDeliveryRequest) decodedPacket;
-      assertEquals(REQ_ACKDELIVERY, decodedRequest.getType());
-      assertEquals(request.getDeliveryID(), decodedRequest.getDeliveryID());
-   }
-
-   public void testAcknowledgeDeliveriesRequest() throws Exception
-   {
-      List<Ack> acks = new ArrayList<Ack>();
-      acks.add(new DefaultAck(randomLong()));
-      acks.add(new DefaultAck(randomLong()));
-      acks.add(new DefaultAck(randomLong()));
-
-      AcknowledgeDeliveriesMessage request = new AcknowledgeDeliveriesMessage(
-            acks);
-      addVersion(request);
-      AbstractPacketCodec codec = new AcknowledgeDeliveriesRequestCodec();
-      SimpleRemotingBuffer buffer = encode(request, codec);
-      checkHeader(buffer, request);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof AcknowledgeDeliveriesMessage);
-      AcknowledgeDeliveriesMessage decodedRequest = (AcknowledgeDeliveriesMessage) decodedPacket;
-      assertEquals(MSG_ACKDELIVERIES, decodedRequest.getType());
-      assertEqualsAcks(request.getAcks(), decodedRequest.getAcks());
-   }
-
-   public void testAcknowledgeDeliveryResponse() throws Exception
-   {
-      AcknowledgeDeliveryResponse response = new AcknowledgeDeliveryResponse(
-            true);
-      addVersion(response);
-      AbstractPacketCodec codec = new AcknowledgeDeliveryResponseCodec();
-      SimpleRemotingBuffer buffer = encode(response, codec);
-      checkHeader(buffer, response);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof AcknowledgeDeliveryResponse);
-      AcknowledgeDeliveryResponse decodedResponse = (AcknowledgeDeliveryResponse) decodedPacket;
-      assertEquals(RESP_ACKDELIVERY, decodedResponse.getType());
-      assertEquals(response.isAcknowledged(), decodedResponse.isAcknowledged());
-
-   }
-
-   public void testClosingRequest() throws Exception
-   {
-      ClosingRequest request = new ClosingRequest(randomLong());
-      addVersion(request);
-      AbstractPacketCodec codec = new ClosingRequestCodec();
-      SimpleRemotingBuffer buffer = encode(request, codec);
-      checkHeader(buffer, request);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof ClosingRequest);
-      ClosingRequest decodedRequest = (ClosingRequest) decodedPacket;
-      assertEquals(REQ_CLOSING, decodedRequest.getType());
-      assertEquals(request.getSequence(), decodedRequest.getSequence());
-   }
-
-   public void testClosingResponse() throws Exception
-   {
-      ClosingResponse response = new ClosingResponse(System.currentTimeMillis());
-      addVersion(response);
-      AbstractPacketCodec codec = new ClosingResponseCodec();
-      SimpleRemotingBuffer buffer = encode(response, codec);
-      checkHeader(buffer, response);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof ClosingResponse);
-      ClosingResponse decodedRequest = (ClosingResponse) decodedPacket;
-      assertEquals(RESP_CLOSING, decodedRequest.getType());
-      assertEquals(response.getID(), decodedRequest.getID());
-   }
-
-   public void testCloseMessage() throws Exception
-   {
-      CloseMessage message = new CloseMessage();
-      addVersion(message);
-
-      AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
-            MSG_CLOSE, CloseMessage.class);
-      SimpleRemotingBuffer buffer = encode(message, codec);
-      checkHeader(buffer, message);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof CloseMessage);
-      CloseMessage decodedMessage = (CloseMessage) decodedPacket;
-      assertEquals(MSG_CLOSE, decodedMessage.getType());
-   }
-
-   public void testSendTransactionMessage() throws Exception
-   {
-      ClientTransaction tx = new ClientTransaction();
-      MessagingXid xid = new MessagingXid(randomBytes(), 23, randomBytes());
-      TransactionRequest tr = new TransactionRequest(
-            TransactionRequest.ONE_PHASE_COMMIT_REQUEST, xid, tx);
-
-      SendTransactionMessage message = new SendTransactionMessage(tr, true);
-      addVersion(message);
-      AbstractPacketCodec codec = new SendTransactionMessageCodec();
-      SimpleRemotingBuffer buffer = encode(message, codec);
-      checkHeader(buffer, message);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof SendTransactionMessage);
-      SendTransactionMessage decodedMessage = (SendTransactionMessage) decodedPacket;
-      assertEquals(MSG_SENDTRANSACTION, decodedMessage.getType());
-      assertEquals(message.checkForDuplicates(), decodedMessage
-            .checkForDuplicates());
-
-      TransactionRequest expectedTxReq = message.getTransactionRequest();
-      TransactionRequest actualTxReq = decodedMessage.getTransactionRequest();
-
-      assertEquals(expectedTxReq.getRequestType(), actualTxReq.getRequestType());
-      assertEquals(expectedTxReq.getXid(), actualTxReq.getXid());
-   }
-
-   public void testGetPreparedTransactionsRequest() throws Exception
-   {
-      GetPreparedTransactionsRequest request = new GetPreparedTransactionsRequest();
-      addVersion(request);
-
-      AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
-            REQ_GETPREPAREDTRANSACTIONS, GetPreparedTransactionsRequest.class);
-      SimpleRemotingBuffer buffer = encode(request, codec);
-      checkHeader(buffer, request);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof GetPreparedTransactionsRequest);
-      assertEquals(REQ_GETPREPAREDTRANSACTIONS, decodedPacket.getType());
-   }
-
-   public void testGetPreparedTransactionsResponse() throws Exception
-   {
-      MessagingXid[] xids = new MessagingXid[] {
-            new MessagingXid(randomBytes(), 23, randomBytes()),
-            new MessagingXid(randomBytes(), 33, randomBytes()),
-            new MessagingXid(randomBytes(), 91, randomBytes()) };
-      GetPreparedTransactionsResponse response = new GetPreparedTransactionsResponse(
-            xids);
-      addVersion(response);
-      AbstractPacketCodec codec = new GetPreparedTransactionsResponseCodec();
-      SimpleRemotingBuffer buffer = encode(response, codec);
-      checkHeader(buffer, response);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof GetPreparedTransactionsResponse);
-      GetPreparedTransactionsResponse decodedResponse = (GetPreparedTransactionsResponse) decodedPacket;
-      assertEquals(RESP_GETPREPAREDTRANSACTIONS, decodedResponse.getType());
-      assertSameXids(response.getXids(), decodedResponse.getXids());
-   }
-
-   public void testGetClientIDRequest() throws Exception
-   {
-      GetClientIDRequest request = new GetClientIDRequest();
-      addVersion(request);
-
-      AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
-            REQ_GETCLIENTID, GetClientIDRequest.class);
-      SimpleRemotingBuffer buffer = encode(request, codec);
-      checkHeader(buffer, request);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof GetClientIDRequest);
-      assertEquals(REQ_GETCLIENTID, decodedPacket.getType());
-   }
-
-   public void testGetClientIDResponse() throws Exception
-   {
-      GetClientIDResponse response = new GetClientIDResponse(randomString());
-      addVersion(response);
-      AbstractPacketCodec codec = new GetClientIDResponseCodec();
-      SimpleRemotingBuffer buffer = encode(response, codec);
-      checkHeader(buffer, response);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof GetClientIDResponse);
-      GetClientIDResponse decodedResponse = (GetClientIDResponse) decodedPacket;
-      assertEquals(RESP_GETCLIENTID, decodedResponse.getType());
-      assertEquals(response.getClientID(), decodedResponse.getClientID());
-   }
-
-   public void testSetClientIDMessage() throws Exception
-   {
-      SetClientIDMessage message = new SetClientIDMessage(randomString());
-      addVersion(message);
-      AbstractPacketCodec codec = new SetClientIDMessageCodec();
-      SimpleRemotingBuffer buffer = encode(message, codec);
-      checkHeader(buffer, message);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof SetClientIDMessage);
-      SetClientIDMessage decodedMessage = (SetClientIDMessage) decodedPacket;
-      assertEquals(MSG_SETCLIENTID, decodedMessage.getType());
-      assertEquals(message.getClientID(), decodedMessage.getClientID());
-   }
-
-   public void testRecoverDeliveriesMessage() throws Exception
-   {
-      List<DeliveryRecovery> deliveries = new ArrayList<DeliveryRecovery>();
-      deliveries.add(new DeliveryRecovery(randomLong(), randomLong(),
-            randomString()));
-      deliveries.add(new DeliveryRecovery(randomLong(), randomLong(),
-            randomString()));
-      deliveries.add(new DeliveryRecovery(randomLong(), randomLong(),
-            randomString()));
-
-      RecoverDeliveriesMessage message = new RecoverDeliveriesMessage(
-            deliveries, randomString());
-      addVersion(message);
-      AbstractPacketCodec codec = new RecoverDeliveriesMessageCodec();
-      SimpleRemotingBuffer buffer = encode(message, codec);
-      checkHeader(buffer, message);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof RecoverDeliveriesMessage);
-      RecoverDeliveriesMessage decodedMessage = (RecoverDeliveriesMessage) decodedPacket;
-      assertEquals(MSG_RECOVERDELIVERIES, decodedMessage.getType());
-      assertEqualsDeliveries(message.getDeliveries(), decodedMessage
-            .getDeliveries());
-      assertEquals(message.getSessionID(), decodedMessage.getSessionID());
-   }
-
-   public void testCancelDeliveryMessage() throws Exception
-   {
-      Cancel cancel = new DefaultCancel(randomLong(), 23, true, false);
-      CancelDeliveryMessage message = new CancelDeliveryMessage(cancel);
-      addVersion(message);
-      AbstractPacketCodec codec = new CancelDeliveryMessageCodec();
-      SimpleRemotingBuffer buffer = encode(message, codec);
-      checkHeader(buffer, message);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof CancelDeliveryMessage);
-      CancelDeliveryMessage decodedMessage = (CancelDeliveryMessage) decodedPacket;
-      assertEquals(MSG_CANCELDELIVERY, decodedMessage.getType());
-      Cancel expected = message.getCancel();
-      Cancel actual = decodedMessage.getCancel();
-      assertEquals(expected.getDeliveryId(), actual.getDeliveryId());
-      assertEquals(expected.getDeliveryCount(), actual.getDeliveryCount());
-      assertEquals(expected.isExpired(), actual.isExpired());
-      assertEquals(expected.isReachedMaxDeliveryAttempts(), actual
-            .isReachedMaxDeliveryAttempts());
-   }
-
-   public void testCancelDeliveriesMessage() throws Exception
-   {
-      List<Cancel> cancels = new ArrayList<Cancel>();
-      cancels.add(new DefaultCancel(randomLong(), 23, true, false));
-      cancels.add(new DefaultCancel(randomLong(), 33, false, true));
-
-      CancelDeliveriesMessage message = new CancelDeliveriesMessage(cancels);
-      addVersion(message);
-      AbstractPacketCodec codec = new CancelDeliveriesMessageCodec();
-      SimpleRemotingBuffer buffer = encode(message, codec);
-      checkHeader(buffer, message);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof CancelDeliveriesMessage);
-      CancelDeliveriesMessage decodedMessage = (CancelDeliveriesMessage) decodedPacket;
-      assertEquals(MSG_CANCELDELIVERIES, decodedMessage.getType());
-      assertEqualsCancels(message.getCancels(), decodedMessage.getCancels());
-   }
-
-   public void testCreateBrowserRequest() throws Exception
-   {
-      JBossDestination destination = new JBossQueue("testCreateBrowserRequest",
-            true);
-      CreateBrowserRequest request = new CreateBrowserRequest(destination,
-            "color = 'red'");
-      addVersion(request);
-      AbstractPacketCodec codec = new CreateBrowserRequestCodec();
-      SimpleRemotingBuffer buffer = encode(request, codec);
-      checkHeader(buffer, request);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof CreateBrowserRequest);
-
-      CreateBrowserRequest decodedRequest = (CreateBrowserRequest) decodedPacket;
-      assertEquals(REQ_CREATEBROWSER, decodedRequest.getType());
-      assertEquals(request.getDestination(), decodedRequest.getDestination());
-      assertEquals(request.getSelector(), decodedRequest.getSelector());
-   }
-
-   public void testCreateBrowserResponse() throws Exception
-   {
-      CreateBrowserResponse response = new CreateBrowserResponse(randomString());
-      addVersion(response);
-      AbstractPacketCodec codec = new CreateBrowserResponseCodec();
-      SimpleRemotingBuffer buffer = encode(response, codec);
-      checkHeader(buffer, response);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof CreateBrowserResponse);
-
-      CreateBrowserResponse decodedResponse = (CreateBrowserResponse) decodedPacket;
-      assertEquals(RESP_CREATEBROWSER, decodedResponse.getType());
-      assertEquals(response.getBrowserID(), decodedResponse.getBrowserID());
-   }
-
-   public void testBrowserResetMessage() throws Exception
-   {
-      BrowserResetMessage message = new BrowserResetMessage();
-      addVersion(message);
-
-      AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
-            MSG_BROWSER_RESET, BrowserResetMessage.class);
-      SimpleRemotingBuffer buffer = encode(message, codec);
-      checkHeader(buffer, message);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof BrowserResetMessage);
-      assertEquals(MSG_BROWSER_RESET, decodedPacket.getType());
-   }
-
-   public void testBrowserHasNextMessageRequest() throws Exception
-   {
-      BrowserHasNextMessageRequest request = new BrowserHasNextMessageRequest();
-      addVersion(request);
-
-      AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
-            REQ_BROWSER_HASNEXTMESSAGE, BrowserHasNextMessageRequest.class);
-      SimpleRemotingBuffer buffer = encode(request, codec);
-      checkHeader(buffer, request);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof BrowserHasNextMessageRequest);
-      assertEquals(REQ_BROWSER_HASNEXTMESSAGE, decodedPacket.getType());
-   }
-
-   public void testBrowserHasNextMessageResponse() throws Exception
-   {
-      BrowserHasNextMessageResponse response = new BrowserHasNextMessageResponse(
-            false);
-      addVersion(response);
-      AbstractPacketCodec codec = new BrowserHasNextMessageResponseCodec();
-      SimpleRemotingBuffer buffer = encode(response, codec);
-      checkHeader(buffer, response);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof BrowserHasNextMessageResponse);
-
-      BrowserHasNextMessageResponse decodedResponse = (BrowserHasNextMessageResponse) decodedPacket;
-      assertEquals(RESP_BROWSER_HASNEXTMESSAGE, decodedResponse.getType());
-      assertEquals(response.hasNext(), decodedResponse.hasNext());
-   }
-
-   public void testBrowserNextMessageRequest() throws Exception
-   {
-      BrowserNextMessageRequest request = new BrowserNextMessageRequest();
-      addVersion(request);
-
-      AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
-            REQ_BROWSER_NEXTMESSAGE, BrowserNextMessageRequest.class);
-      SimpleRemotingBuffer buffer = encode(request, codec);
-      checkHeader(buffer, request);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof BrowserNextMessageRequest);
-      assertEquals(REQ_BROWSER_NEXTMESSAGE, decodedPacket.getType());
-   }
-
-   public void testBrowserNextMessageResponse() throws Exception
-   {
-      JBossMessage msg = new JBossMessage(randomLong());
-      BrowserNextMessageResponse response = new BrowserNextMessageResponse(msg);
-      addVersion(response);
-      AbstractPacketCodec codec = new BrowserNextMessageResponseCodec();
-      SimpleRemotingBuffer buffer = encode(response, codec);
-      checkHeader(buffer, response);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof BrowserNextMessageResponse);
-      BrowserNextMessageResponse decodedResponse = (BrowserNextMessageResponse) decodedPacket;
-      assertEquals(RESP_BROWSER_NEXTMESSAGE, decodedResponse.getType());
-      assertEquals(response.getMessage().getMessageID(), decodedResponse
-            .getMessage().getMessageID());
-   }
-
-   public void testBrowserNextMessageBlockRequest() throws Exception
-   {
-      BrowserNextMessageBlockRequest request = new BrowserNextMessageBlockRequest(
-            randomLong());
-      addVersion(request);
-      AbstractPacketCodec codec = new BrowserNextMessageBlockRequestCodec();
-      SimpleRemotingBuffer buffer = encode(request, codec);
-      checkHeader(buffer, request);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof BrowserNextMessageBlockRequest);
-      BrowserNextMessageBlockRequest decodedRequest = (BrowserNextMessageBlockRequest) decodedPacket;
-      assertEquals(REQ_BROWSER_NEXTMESSAGEBLOCK, decodedPacket.getType());
-      assertEquals(request.getMaxMessages(), decodedRequest.getMaxMessages());
-   }
-
-   public void testBrowserNextMessageBlockResponse() throws Exception
-   {
-      JBossMessage[] messages = new JBossMessage[] {
-            new JBossMessage(randomLong()), new JBossMessage(randomLong()) };
-
-      BrowserNextMessageBlockResponse response = new BrowserNextMessageBlockResponse(
-            messages);
-      addVersion(response);
-      AbstractPacketCodec codec = new BrowserNextMessageBlockResponseCodec();
-      SimpleRemotingBuffer buffer = encode(response, codec);
-      checkHeader(buffer, response);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof BrowserNextMessageBlockResponse);
-      BrowserNextMessageBlockResponse decodedResponse = (BrowserNextMessageBlockResponse) decodedPacket;
-      assertEquals(RESP_BROWSER_NEXTMESSAGEBLOCK, decodedResponse.getType());
-      assertEquals(response.getMessages()[0].getMessageID(), decodedResponse
-            .getMessages()[0].getMessageID());
-      assertEquals(response.getMessages()[1].getMessageID(), decodedResponse
-            .getMessages()[1].getMessageID());
-   }
-
-   public void testUnsubscribeMessage() throws Exception
-   {
-      UnsubscribeMessage message = new UnsubscribeMessage(
-            "testUnsubscribeMessage");
-      addVersion(message);
-      AbstractPacketCodec codec = new UnsubscribeMessageCodec();
-      SimpleRemotingBuffer buffer = encode(message, codec);
-      checkHeader(buffer, message);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof UnsubscribeMessage);
-      UnsubscribeMessage decodedMessage = (UnsubscribeMessage) decodedPacket;
-      assertEquals(MSG_UNSUBSCRIBE, decodedMessage.getType());
-      assertEquals(decodedMessage.getSubscriptionName(), message
-            .getSubscriptionName());
-   }
-
-   public void testAddTemporaryDestinationMessage() throws Exception
-   {
-      JBossDestination destination = new JBossQueue(
-            "testAddTemporaryDestinationMessage", true);
-      AddTemporaryDestinationMessage message = new AddTemporaryDestinationMessage(
-            destination);
-      addVersion(message);
-      AbstractPacketCodec codec = new AddTemporaryDestinationMessageCodec();
-      SimpleRemotingBuffer buffer = encode(message, codec);
-      checkHeader(buffer, message);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof AddTemporaryDestinationMessage);
-
-      AddTemporaryDestinationMessage decodedMessage = (AddTemporaryDestinationMessage) decodedPacket;
-      assertEquals(MSG_ADDTEMPORARYDESTINATION, decodedMessage.getType());
-      assertEquals(message.getDestination(), decodedMessage.getDestination());
-   }
-
-   public void testDeleteTemporaryDestinationMessage() throws Exception
-   {
-      JBossDestination destination = new JBossQueue(
-            "testDeleteTemporaryDestinationMessage", true);
-      DeleteTemporaryDestinationMessage message = new DeleteTemporaryDestinationMessage(
-            destination);
-      addVersion(message);
-      AbstractPacketCodec codec = new DeleteTemporaryDestinationMessageCodec();
-      SimpleRemotingBuffer buffer = encode(message, codec);
-      checkHeader(buffer, message);
-      buffer.rewind();
-
-      AbstractPacket decodedPacket = codec.decode(buffer);
-
-      assertTrue(decodedPacket instanceof DeleteTemporaryDestinationMessage);
-
-      DeleteTemporaryDestinationMessage decodedMessage = (DeleteTemporaryDestinationMessage) decodedPacket;
-      assertEquals(MSG_DELETETEMPORARYDESTINATION, decodedMessage.getType());
-      assertEquals(message.getDestination(), decodedMessage.getDestination());
-   }
-
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   // Private -------------------------------------------------------
-
-   private SimpleRemotingBuffer encode(AbstractPacket packet,
-         AbstractPacketCodec codec) throws Exception
-   {
-      SimpleRemotingBuffer buf = new SimpleRemotingBuffer();
-
-      codec.encode(packet, buf);
-      buf.flip();
-
-      return buf;
-   }
-
-   private final class SimpleRemotingBuffer implements RemotingBuffer
-   {
-      private static final byte NON_NULL_STRING = (byte) 0;
-      private static final byte NULL_STRING = (byte) 1;
-
-      ByteArrayOutputStream baos = new ByteArrayOutputStream();
-      DataOutputStream dos = new DataOutputStream(baos);
-
-      DataInputStream dais;
-
-      /**
-       * the buffer is can no longer be written but just read
-       */
-      public void flip()
-      {
-         dos = null;
-         dais = new DataInputStream(
-               new ByteArrayInputStream(baos.toByteArray()));
-         dais.mark(1024);
-      }
-
-      public void rewind() throws IOException
-      {
-         dais.reset();
-      }
-
-      public byte get()
-      {
-         try
-         {
-            return dais.readByte();
-         } catch (IOException e)
-         {
-            fail();
-            return -1;
-         }
-      }
-
-      public void get(byte[] b)
-      {
-         try
-         {
-            dais.readFully(b);
-         } catch (IOException e)
-         {
-            fail();
-         }
-      }
-
-      public boolean getBoolean()
-      {
-         try
-         {
-            return dais.readBoolean();
-         } catch (IOException e)
-         {
-            fail();
-            return false;
-         }
-      }
-
-      public float getFloat()
-      {
-         try
-         {
-            return dais.readFloat();
-         } catch (IOException e)
-         {
-            fail();
-            return -1;
-         }
-      }
-
-      public int getInt()
-      {
-         try
-         {
-            return dais.readInt();
-         } catch (IOException e)
-         {
-            fail();
-            return -1;
-         }
-      }
-
-      public long getLong()
-      {
-         try
-         {
-            return dais.readLong();
-         } catch (IOException e)
-         {
-            fail();
-            return -1;
-         }
-      }
-
-      public String getNullableString() throws CharacterCodingException
-      {
-         try
-         {
-            byte check = dais.readByte();
-            if (check == NULL_STRING)
-            {
-               return null;
-            } else
-            {
-               return dais.readUTF();
-            }
-         } catch (IOException e)
-         {
-            fail();
-            return null;
-         }
-      }
-
-      public void put(byte byteValue)
-      {
-         try
-         {
-            dos.writeByte(byteValue);
-         } catch (IOException e)
-         {
-            fail();
-         }
-      }
-
-      public void put(byte[] bytes)
-      {
-         try
-         {
-            dos.write(bytes);
-         } catch (IOException e)
-         {
-            fail();
-         }
-      }
-
-      public void putBoolean(boolean b)
-      {
-         try
-         {
-            dos.writeBoolean(b);
-         } catch (IOException e)
-         {
-            fail();
-         }
-      }
-
-      public void putFloat(float floatValue)
-      {
-         try
-         {
-            dos.writeFloat(floatValue);
-         } catch (IOException e)
-         {
-            fail();
-         }
-      }
-
-      public void putInt(int intValue)
-      {
-         try
-         {
-            dos.writeInt(intValue);
-         } catch (IOException e)
-         {
-            fail();
-         }
-      }
-
-      public void putLong(long longValue)
-      {
-         try
-         {
-            dos.writeLong(longValue);
-         } catch (IOException e)
-         {
-            fail();
-         }
-      }
-
-      public void putNullableString(String nullableString)
-            throws CharacterCodingException
-      {
-         try
-         {
-            if (nullableString == null)
-            {
-               dos.writeByte(NULL_STRING);
-            } else
-            {
-               dos.writeByte(NON_NULL_STRING);
-               dos.writeUTF(nullableString);
-            }
-         } catch (IOException e)
-         {
-            fail();
-         }
-      }
-
-      public int remaining()
-      {
-         try
-         {
-            return dais.available();
-         } catch (IOException e)
-         {
-            fail();
-            return -1;
-         }
-      }
-   }
-
-}

Copied: trunk/tests/src/org/jboss/messaging/core/remoting/wireformat/test/unit/PacketTypeTest.java (from rev 3476, trunk/tests/src/org/jboss/test/messaging/core/remoting/wireformat/PacketTypeTest.java)
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/wireformat/test/unit/PacketTypeTest.java	                        (rev 0)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/wireformat/test/unit/PacketTypeTest.java	2007-12-12 09:34:48 UTC (rev 3480)
@@ -0,0 +1,1633 @@
+/*
+ * JBoss, Home of Professional Open Source
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package org.jboss.messaging.core.remoting.wireformat.test.unit;
+
+import static org.jboss.messaging.core.remoting.codec.AbstractPacketCodec.LONG_LENGTH;
+import static org.jboss.messaging.core.remoting.codec.AbstractPacketCodec.sizeof;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_ACKDELIVERIES;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_ADDTEMPORARYDESTINATION;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_BROWSER_RESET;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_CANCELDELIVERIES;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_CANCELDELIVERY;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_CHANGERATE;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_CLOSE;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_DELETETEMPORARYDESTINATION;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_DELIVERMESSAGE;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_JMSEXCEPTION;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_RECOVERDELIVERIES;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_SENDMESSAGE;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_SENDTRANSACTION;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_SETCLIENTID;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_STARTCONNECTION;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_STOPCONNECTION;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_UNSUBSCRIBE;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_UPDATECALLBACK;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.NULL;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_ACKDELIVERY;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_BROWSER_HASNEXTMESSAGE;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_BROWSER_NEXTMESSAGE;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_BROWSER_NEXTMESSAGEBLOCK;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_CLOSING;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_CREATEBROWSER;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_CREATECONNECTION;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_CREATECONSUMER;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_CREATEDESTINATION;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_CREATESESSION;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_GETCLIENTAOPSTACK;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_GETCLIENTID;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_GETPREPAREDTRANSACTIONS;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_GETTOPOLOGY;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_IDBLOCK;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.RESP_ACKDELIVERY;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.RESP_BROWSER_HASNEXTMESSAGE;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.RESP_BROWSER_NEXTMESSAGE;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.RESP_BROWSER_NEXTMESSAGEBLOCK;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.RESP_CLOSING;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.RESP_CREATEBROWSER;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.RESP_CREATECONNECTION;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.RESP_CREATECONSUMER;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.RESP_CREATEDESTINATION;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.RESP_CREATESESSION;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.RESP_GETCLIENTAOPSTACK;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.RESP_GETCLIENTID;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.RESP_GETPREPAREDTRANSACTIONS;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.RESP_GETTOPOLOGY;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.RESP_IDBLOCK;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.TEXT;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.nio.charset.CharacterCodingException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Random;
+import java.util.UUID;
+
+import javax.jms.InvalidDestinationException;
+import javax.jms.JMSException;
+
+import junit.framework.TestCase;
+
+import org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate;
+import org.jboss.jms.delegate.Ack;
+import org.jboss.jms.delegate.Cancel;
+import org.jboss.jms.delegate.DefaultAck;
+import org.jboss.jms.delegate.DefaultCancel;
+import org.jboss.jms.delegate.DeliveryRecovery;
+import org.jboss.jms.delegate.TopologyResult;
+import org.jboss.jms.destination.JBossDestination;
+import org.jboss.jms.destination.JBossQueue;
+import org.jboss.jms.destination.JBossTopic;
+import org.jboss.jms.message.JBossMessage;
+import org.jboss.jms.tx.ClientTransaction;
+import org.jboss.jms.tx.MessagingXid;
+import org.jboss.jms.tx.TransactionRequest;
+import org.jboss.messaging.core.contract.Message;
+import org.jboss.messaging.core.remoting.codec.AbstractPacketCodec;
+import org.jboss.messaging.core.remoting.codec.AcknowledgeDeliveriesRequestCodec;
+import org.jboss.messaging.core.remoting.codec.AcknowledgeDeliveryRequestCodec;
+import org.jboss.messaging.core.remoting.codec.AcknowledgeDeliveryResponseCodec;
+import org.jboss.messaging.core.remoting.codec.AddTemporaryDestinationMessageCodec;
+import org.jboss.messaging.core.remoting.codec.BrowserHasNextMessageResponseCodec;
+import org.jboss.messaging.core.remoting.codec.BrowserNextMessageBlockRequestCodec;
+import org.jboss.messaging.core.remoting.codec.BrowserNextMessageBlockResponseCodec;
+import org.jboss.messaging.core.remoting.codec.BrowserNextMessageResponseCodec;
+import org.jboss.messaging.core.remoting.codec.CancelDeliveriesMessageCodec;
+import org.jboss.messaging.core.remoting.codec.CancelDeliveryMessageCodec;
+import org.jboss.messaging.core.remoting.codec.ChangeRateMessageCodec;
+import org.jboss.messaging.core.remoting.codec.ClosingRequestCodec;
+import org.jboss.messaging.core.remoting.codec.ClosingResponseCodec;
+import org.jboss.messaging.core.remoting.codec.ConnectionFactoryCreateConnectionRequestCodec;
+import org.jboss.messaging.core.remoting.codec.ConnectionFactoryCreateConnectionResponseCodec;
+import org.jboss.messaging.core.remoting.codec.CreateBrowserRequestCodec;
+import org.jboss.messaging.core.remoting.codec.CreateBrowserResponseCodec;
+import org.jboss.messaging.core.remoting.codec.CreateConsumerRequestCodec;
+import org.jboss.messaging.core.remoting.codec.CreateConsumerResponseCodec;
+import org.jboss.messaging.core.remoting.codec.CreateDestinationRequestCodec;
+import org.jboss.messaging.core.remoting.codec.CreateDestinationResponseCodec;
+import org.jboss.messaging.core.remoting.codec.CreateSessionRequestCodec;
+import org.jboss.messaging.core.remoting.codec.CreateSessionResponseCodec;
+import org.jboss.messaging.core.remoting.codec.DeleteTemporaryDestinationMessageCodec;
+import org.jboss.messaging.core.remoting.codec.DeliverMessageCodec;
+import org.jboss.messaging.core.remoting.codec.GetClientAOPStackResponseCodec;
+import org.jboss.messaging.core.remoting.codec.GetClientIDResponseCodec;
+import org.jboss.messaging.core.remoting.codec.GetPreparedTransactionsResponseCodec;
+import org.jboss.messaging.core.remoting.codec.GetTopologyResponseCodec;
+import org.jboss.messaging.core.remoting.codec.IDBlockRequestCodec;
+import org.jboss.messaging.core.remoting.codec.IDBlockResponseCodec;
+import org.jboss.messaging.core.remoting.codec.JMSExceptionMessageCodec;
+import org.jboss.messaging.core.remoting.codec.RecoverDeliveriesMessageCodec;
+import org.jboss.messaging.core.remoting.codec.RemotingBuffer;
+import org.jboss.messaging.core.remoting.codec.SendMessageCodec;
+import org.jboss.messaging.core.remoting.codec.SendTransactionMessageCodec;
+import org.jboss.messaging.core.remoting.codec.SetClientIDMessageCodec;
+import org.jboss.messaging.core.remoting.codec.TextPacketCodec;
+import org.jboss.messaging.core.remoting.codec.UnsubscribeMessageCodec;
+import org.jboss.messaging.core.remoting.codec.UpdateCallbackMessageCodec;
+import org.jboss.messaging.core.remoting.integration.PacketCodecFactory;
+import org.jboss.messaging.core.remoting.wireformat.AbstractPacket;
+import org.jboss.messaging.core.remoting.wireformat.AcknowledgeDeliveriesMessage;
+import org.jboss.messaging.core.remoting.wireformat.AcknowledgeDeliveryRequest;
+import org.jboss.messaging.core.remoting.wireformat.AcknowledgeDeliveryResponse;
+import org.jboss.messaging.core.remoting.wireformat.AddTemporaryDestinationMessage;
+import org.jboss.messaging.core.remoting.wireformat.BrowserHasNextMessageRequest;
+import org.jboss.messaging.core.remoting.wireformat.BrowserHasNextMessageResponse;
+import org.jboss.messaging.core.remoting.wireformat.BrowserNextMessageBlockRequest;
+import org.jboss.messaging.core.remoting.wireformat.BrowserNextMessageBlockResponse;
+import org.jboss.messaging.core.remoting.wireformat.BrowserNextMessageRequest;
+import org.jboss.messaging.core.remoting.wireformat.BrowserNextMessageResponse;
+import org.jboss.messaging.core.remoting.wireformat.BrowserResetMessage;
+import org.jboss.messaging.core.remoting.wireformat.CancelDeliveriesMessage;
+import org.jboss.messaging.core.remoting.wireformat.CancelDeliveryMessage;
+import org.jboss.messaging.core.remoting.wireformat.ChangeRateMessage;
+import org.jboss.messaging.core.remoting.wireformat.CloseMessage;
+import org.jboss.messaging.core.remoting.wireformat.ClosingRequest;
+import org.jboss.messaging.core.remoting.wireformat.ClosingResponse;
+import org.jboss.messaging.core.remoting.wireformat.CreateBrowserRequest;
+import org.jboss.messaging.core.remoting.wireformat.CreateBrowserResponse;
+import org.jboss.messaging.core.remoting.wireformat.CreateConnectionRequest;
+import org.jboss.messaging.core.remoting.wireformat.CreateConnectionResponse;
+import org.jboss.messaging.core.remoting.wireformat.CreateConsumerRequest;
+import org.jboss.messaging.core.remoting.wireformat.CreateConsumerResponse;
+import org.jboss.messaging.core.remoting.wireformat.CreateDestinationRequest;
+import org.jboss.messaging.core.remoting.wireformat.CreateDestinationResponse;
+import org.jboss.messaging.core.remoting.wireformat.CreateSessionRequest;
+import org.jboss.messaging.core.remoting.wireformat.CreateSessionResponse;
+import org.jboss.messaging.core.remoting.wireformat.DeleteTemporaryDestinationMessage;
+import org.jboss.messaging.core.remoting.wireformat.DeliverMessage;
+import org.jboss.messaging.core.remoting.wireformat.GetClientAOPStackRequest;
+import org.jboss.messaging.core.remoting.wireformat.GetClientAOPStackResponse;
+import org.jboss.messaging.core.remoting.wireformat.GetClientIDRequest;
+import org.jboss.messaging.core.remoting.wireformat.GetClientIDResponse;
+import org.jboss.messaging.core.remoting.wireformat.GetPreparedTransactionsRequest;
+import org.jboss.messaging.core.remoting.wireformat.GetPreparedTransactionsResponse;
+import org.jboss.messaging.core.remoting.wireformat.GetTopologyRequest;
+import org.jboss.messaging.core.remoting.wireformat.GetTopologyResponse;
+import org.jboss.messaging.core.remoting.wireformat.IDBlockRequest;
+import org.jboss.messaging.core.remoting.wireformat.IDBlockResponse;
+import org.jboss.messaging.core.remoting.wireformat.JMSExceptionMessage;
+import org.jboss.messaging.core.remoting.wireformat.NullPacket;
+import org.jboss.messaging.core.remoting.wireformat.RecoverDeliveriesMessage;
+import org.jboss.messaging.core.remoting.wireformat.SendMessage;
+import org.jboss.messaging.core.remoting.wireformat.SendTransactionMessage;
+import org.jboss.messaging.core.remoting.wireformat.SetClientIDMessage;
+import org.jboss.messaging.core.remoting.wireformat.StartConnectionMessage;
+import org.jboss.messaging.core.remoting.wireformat.StopConnectionMessage;
+import org.jboss.messaging.core.remoting.wireformat.TextPacket;
+import org.jboss.messaging.core.remoting.wireformat.UnsubscribeMessage;
+import org.jboss.messaging.core.remoting.wireformat.UpdateCallbackMessage;
+import org.jboss.messaging.util.Version;
+
+/**
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
+ * 
+ * @version <tt>$Revision$</tt>
+ */
+public class PacketTypeTest extends TestCase
+{
+
+   // Constants -----------------------------------------------------
+
+   private static final Random random = new Random(System.currentTimeMillis());
+
+   // Attributes ----------------------------------------------------
+
+   // Static --------------------------------------------------------
+
+   private static void addVersion(AbstractPacket packet)
+   {
+      packet.setVersion(randomByte());
+   }
+
+   private static String randomString()
+   {
+      return UUID.randomUUID().toString();
+   }
+
+   private static long randomLong()
+   {
+      return random.nextLong();
+   }
+
+   private static int randomInt()
+   {
+      return random.nextInt();
+   }
+
+   private static byte randomByte()
+   {
+      return Integer.valueOf(random.nextInt()).byteValue();
+   }
+
+   private static byte[] randomBytes()
+   {
+      return randomString().getBytes();
+   }
+
+   private static void checkHeader(RemotingBuffer buffer, AbstractPacket packet)
+         throws Exception
+   {
+      assertEquals(buffer.get(), packet.getType().byteValue());
+      assertEquals(buffer.get(), packet.getVersion());
+
+      int headerLength = LONG_LENGTH + sizeof(packet.getTargetID())
+            + sizeof(packet.getCallbackID());
+      assertEquals(buffer.getInt(), headerLength);
+      assertEquals(buffer.getLong(), packet.getCorrelationID());
+      assertEquals(buffer.getNullableString(), packet.getTargetID());
+      assertEquals(buffer.getNullableString(), packet.getCallbackID());
+   }
+
+   private static void assertEqualsAcks(List<Ack> expected, List<Ack> actual)
+   {
+      assertEquals(expected.size(), actual.size());
+      for (int i = 0; i < expected.size(); i++)
+      {
+         assertEquals(expected.get(i).getDeliveryID(), actual.get(i)
+               .getDeliveryID());
+      }
+   }
+
+   private static void assertEqualsDeliveries(List<DeliveryRecovery> expected,
+         List<DeliveryRecovery> actual)
+   {
+      assertEquals(expected.size(), actual.size());
+      for (int i = 0; i < expected.size(); i++)
+      {
+         DeliveryRecovery expectedDelivery = expected.get(i);
+         DeliveryRecovery actualDelivery = actual.get(i);
+         assertEquals(expectedDelivery.getDeliveryID(), actualDelivery
+               .getDeliveryID());
+         assertEquals(expectedDelivery.getMessageID(), actualDelivery
+               .getMessageID());
+         assertEquals(expectedDelivery.getQueueName(), actualDelivery
+               .getQueueName());
+      }
+   }
+
+   private static void assertEqualsCancels(List<Cancel> expected,
+         List<Cancel> actual)
+   {
+      assertEquals(expected.size(), actual.size());
+      for (int i = 0; i < expected.size(); i++)
+      {
+         Cancel expectedCancel = expected.get(i);
+         Cancel actualCancel = actual.get(i);
+         assertEquals(expectedCancel.getDeliveryId(), actualCancel
+               .getDeliveryId());
+         assertEquals(expectedCancel.getDeliveryCount(), actualCancel
+               .getDeliveryCount());
+         assertEquals(expectedCancel.isExpired(), actualCancel.isExpired());
+         assertEquals(expectedCancel.isReachedMaxDeliveryAttempts(),
+               actualCancel.isReachedMaxDeliveryAttempts());
+      }
+   }
+
+   private static void assertSameXids(MessagingXid[] expected,
+         MessagingXid[] actual)
+   {
+      assertEquals(expected.length, actual.length);
+      for (int i = 0; i < expected.length; i++)
+      {
+         MessagingXid expectedXid = expected[i];
+         MessagingXid actualXid = actual[i];
+         assertEqualsByteArrays(expectedXid.getBranchQualifier(), actualXid
+               .getBranchQualifier());
+         assertEquals(expectedXid.getFormatId(), actualXid.getFormatId());
+         assertEqualsByteArrays(expectedXid.getGlobalTransactionId(), actualXid
+               .getGlobalTransactionId());
+      }
+   }
+
+   private static void assertEqualsByteArrays(byte[] expected, byte[] actual)
+   {
+      assertEquals(expected.length, actual.length);
+      for (int i = 0; i < expected.length; i++)
+      {
+         assertEquals(expected[i], actual[i]);
+      }
+   }
+
+   private static void assertSameTopology(TopologyResult expected,
+         TopologyResult actual)
+   {
+      assertEquals(expected.getUniqueName(), actual.getUniqueName());
+      assertEquals(expected.getFailoverMap(), actual.getFailoverMap());
+
+      ClientConnectionFactoryDelegate[] expectedDelegates = expected
+            .getDelegates();
+      ClientConnectionFactoryDelegate[] actualDelegates = actual.getDelegates();
+
+      assertEquals(expectedDelegates.length, actualDelegates.length);
+
+      for (int i = 0; i < expectedDelegates.length; i++)
+      {
+         ClientConnectionFactoryDelegate expectedDelegate = expectedDelegates[i];
+         ClientConnectionFactoryDelegate actualDelegate = actualDelegates[i];
+
+         assertEquals(expectedDelegate.getID(), actualDelegate.getID());
+         assertEquals(expectedDelegate.getName(), actualDelegate.getName());
+      }
+   }
+
+   // Constructors --------------------------------------------------
+
+   // Public --------------------------------------------------------
+
+   public void testNullPacket() throws Exception
+   {
+      NullPacket packet = new NullPacket();
+      packet.setVersion(randomByte());
+      packet.setCallbackID(randomString());
+      packet.setCorrelationID(randomLong());
+      packet.setTargetID(randomString());
+
+      AbstractPacketCodec<AbstractPacket> codec = PacketCodecFactory
+            .createCodecForEmptyPacket(NULL, NullPacket.class);
+
+      SimpleRemotingBuffer buffer = encode(packet, codec);
+      checkHeader(buffer, packet);
+      // no body
+      assertEquals(0, buffer.getInt());
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof NullPacket);
+      NullPacket p = (NullPacket) decodedPacket;
+
+      assertEquals(NULL, p.getType());
+      assertEquals(packet.getVersion(), p.getVersion());
+      assertEquals(packet.getCallbackID(), p.getCallbackID());
+      assertEquals(packet.getCorrelationID(), p.getCorrelationID());
+      assertEquals(packet.getTargetID(), p.getTargetID());
+   }
+
+   public void testJMSExceptionMessage() throws Exception
+   {
+      JMSException e = new InvalidDestinationException(
+            "testJMSExceptionMessage");
+      JMSExceptionMessage message = new JMSExceptionMessage(e);
+      addVersion(message);
+
+      AbstractPacketCodec<JMSExceptionMessage> codec = new JMSExceptionMessageCodec();
+      SimpleRemotingBuffer buffer = encode(message, codec);
+      checkHeader(buffer, message);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof JMSExceptionMessage);
+      JMSExceptionMessage decodedMessage = (JMSExceptionMessage) decodedPacket;
+
+      assertEquals(MSG_JMSEXCEPTION, decodedMessage.getType());
+      assertEquals(message.getException().getMessage(), decodedMessage
+            .getException().getMessage());
+   }
+
+   public void testTextPacket() throws Exception
+   {
+      TextPacket packet = new TextPacket("testTextPacket");
+      addVersion(packet);
+      AbstractPacketCodec<TextPacket> codec = new TextPacketCodec();
+
+      SimpleRemotingBuffer buffer = encode(packet, codec);
+      checkHeader(buffer, packet);
+      assertEquals(buffer.getInt(), sizeof(packet.getText()));
+      assertEquals(buffer.getNullableString(), packet.getText());
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof TextPacket);
+      TextPacket p = (TextPacket) decodedPacket;
+
+      assertEquals(TEXT, p.getType());
+      assertEquals(packet.getText(), p.getText());
+   }
+
+   public void testCreateConnectionRequest() throws Exception
+   {
+      byte version = randomByte();
+      String remotingSessionID = randomString();
+      String clientVMID = randomString();
+      int failedNodeID = 0;
+      String username = null;
+      String password = null;
+
+      CreateConnectionRequest request = new CreateConnectionRequest(version,
+            remotingSessionID, clientVMID, failedNodeID, username, password);
+      addVersion(request);
+      AbstractPacketCodec<CreateConnectionRequest> codec = new ConnectionFactoryCreateConnectionRequestCodec();
+      SimpleRemotingBuffer buffer = encode(request, codec);
+      checkHeader(buffer, request);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof CreateConnectionRequest);
+      CreateConnectionRequest decodedRequest = (CreateConnectionRequest) decodedPacket;
+
+      assertEquals(REQ_CREATECONNECTION, decodedPacket.getType());
+      assertEquals(request.getVersion(), decodedRequest.getVersion());
+      assertEquals(request.getRemotingSessionID(), decodedRequest
+            .getRemotingSessionID());
+      assertEquals(request.getClientVMID(), decodedRequest.getClientVMID());
+      assertEquals(request.getFailedNodeID(), decodedRequest.getFailedNodeID());
+      assertEquals(request.getUsername(), decodedRequest.getUsername());
+      assertEquals(request.getPassword(), decodedRequest.getPassword());
+   }
+
+   public void testCreateConnectionResponse() throws Exception
+   {
+      CreateConnectionResponse response = new CreateConnectionResponse(
+            randomString(), 1234);
+      addVersion(response);
+      AbstractPacketCodec<CreateConnectionResponse> codec = new ConnectionFactoryCreateConnectionResponseCodec();
+      SimpleRemotingBuffer buffer = encode(response, codec);
+      checkHeader(buffer, response);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof CreateConnectionResponse);
+
+      CreateConnectionResponse decodedResponse = (CreateConnectionResponse) decodedPacket;
+      assertEquals(RESP_CREATECONNECTION, decodedResponse.getType());
+      assertEquals(response.getConnectionID(), decodedResponse
+            .getConnectionID());
+      assertEquals(response.getServerID(), decodedResponse.getServerID());
+   }
+
+   public void testGetClientAOPStackRequest() throws Exception
+   {
+      GetClientAOPStackRequest request = new GetClientAOPStackRequest();
+      addVersion(request);
+
+      AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
+            REQ_GETCLIENTAOPSTACK, GetClientAOPStackRequest.class);
+      SimpleRemotingBuffer buffer = encode(request, codec);
+      checkHeader(buffer, request);
+      buffer.rewind();
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof GetClientAOPStackRequest);
+      assertEquals(REQ_GETCLIENTAOPSTACK, decodedPacket.getType());
+   }
+
+   public void testGetClientAOPStackResponse() throws Exception
+   {
+      byte[] stack = randomBytes();
+
+      GetClientAOPStackResponse response = new GetClientAOPStackResponse(stack);
+      addVersion(response);
+      AbstractPacketCodec codec = new GetClientAOPStackResponseCodec();
+      SimpleRemotingBuffer buffer = encode(response, codec);
+      checkHeader(buffer, response);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof GetClientAOPStackResponse);
+      GetClientAOPStackResponse decodedResponse = (GetClientAOPStackResponse) decodedPacket;
+      assertEquals(RESP_GETCLIENTAOPSTACK, decodedResponse.getType());
+      assertEqualsByteArrays(response.getStack(), decodedResponse.getStack());
+   }
+
+   public void testGetTopologyRequest() throws Exception
+   {
+      GetTopologyRequest request = new GetTopologyRequest();
+      addVersion(request);
+
+      AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
+            REQ_GETTOPOLOGY, GetTopologyRequest.class);
+      SimpleRemotingBuffer buffer = encode(request, codec);
+      checkHeader(buffer, request);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof GetTopologyRequest);
+      assertEquals(REQ_GETTOPOLOGY, decodedPacket.getType());
+   }
+
+   @SuppressWarnings("unchecked")
+   public void testGetTopologyResponse() throws Exception
+   {
+      // FIXME should use mock objects with a correct interface
+      ClientConnectionFactoryDelegate[] delegates = new ClientConnectionFactoryDelegate[] {
+            new ClientConnectionFactoryDelegate(randomString(), randomString(),
+                  23, randomString(), randomInt(), Version.instance(), false, true),
+            new ClientConnectionFactoryDelegate(randomString(), randomString(),
+                  33, randomString(), randomInt(), Version.instance(), true, false) };
+      TopologyResult topology = new TopologyResult(randomString(), delegates,
+            new HashMap());
+      GetTopologyResponse response = new GetTopologyResponse(topology);
+      addVersion(response);
+      AbstractPacketCodec codec = new GetTopologyResponseCodec();
+      SimpleRemotingBuffer buffer = encode(response, codec);
+      checkHeader(buffer, response);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof GetTopologyResponse);
+      GetTopologyResponse decodedResponse = (GetTopologyResponse) decodedPacket;
+      assertEquals(RESP_GETTOPOLOGY, decodedPacket.getType());
+      assertSameTopology(response.getTopology(), decodedResponse.getTopology());
+   }
+
+   public void testUpdateCallbackMessage() throws Exception
+   {
+      UpdateCallbackMessage message = new UpdateCallbackMessage(randomString(),
+            randomString(), true);
+      addVersion(message);
+      AbstractPacketCodec codec = new UpdateCallbackMessageCodec();
+      SimpleRemotingBuffer buffer = encode(message, codec);
+      checkHeader(buffer, message);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof UpdateCallbackMessage);
+
+      UpdateCallbackMessage decodedMessage = (UpdateCallbackMessage) decodedPacket;
+      assertEquals(MSG_UPDATECALLBACK, decodedMessage.getType());
+      assertEquals(message.getRemotingSessionID(), decodedMessage
+            .getRemotingSessionID());
+      assertEquals(message.getClientVMID(), decodedMessage.getClientVMID());
+      assertEquals(message.isAdd(), decodedMessage.isAdd());
+   }
+
+   public void testCreateSessionRequest() throws Exception
+   {
+      CreateSessionRequest request = new CreateSessionRequest(true, 0, false);
+      addVersion(request);
+      AbstractPacketCodec codec = new CreateSessionRequestCodec();
+      SimpleRemotingBuffer buffer = encode(request, codec);
+      checkHeader(buffer, request);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof CreateSessionRequest);
+
+      CreateSessionRequest decodedRequest = (CreateSessionRequest) decodedPacket;
+      assertEquals(REQ_CREATESESSION, decodedRequest.getType());
+      assertEquals(request.isTransacted(), decodedRequest.isTransacted());
+      assertEquals(request.getAcknowledgementMode(), decodedRequest
+            .getAcknowledgementMode());
+      assertEquals(request.isXA(), decodedRequest.isXA());
+   }
+
+   public void testCreateSessionResponse() throws Exception
+   {
+      CreateSessionResponse response = new CreateSessionResponse(
+            randomString(), 23, false);
+      addVersion(response);
+      AbstractPacketCodec codec = new CreateSessionResponseCodec();
+      SimpleRemotingBuffer buffer = encode(response, codec);
+      checkHeader(buffer, response);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof CreateSessionResponse);
+
+      CreateSessionResponse decodedResponse = (CreateSessionResponse) decodedPacket;
+      assertEquals(RESP_CREATESESSION, decodedResponse.getType());
+      assertEquals(response.getSessionID(), decodedResponse.getSessionID());
+      assertEquals(response.getDupsOKBatchSize(), decodedResponse
+            .getDupsOKBatchSize());
+      assertEquals(response.isStrictTCK(), decodedResponse.isStrictTCK());
+   }
+
+   public void testIDBlockRequest() throws Exception
+   {
+      IDBlockRequest request = new IDBlockRequest(23);
+      addVersion(request);
+      AbstractPacketCodec codec = new IDBlockRequestCodec();
+      SimpleRemotingBuffer buffer = encode(request, codec);
+      checkHeader(buffer, request);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof IDBlockRequest);
+
+      IDBlockRequest decodedRequest = (IDBlockRequest) decodedPacket;
+      assertEquals(REQ_IDBLOCK, decodedRequest.getType());
+      assertEquals(request.getSize(), decodedRequest.getSize());
+   }
+
+   public void testIDBlockResponse() throws Exception
+   {
+      IDBlockResponse response = new IDBlockResponse(randomLong(),
+            randomLong() * 2);
+      addVersion(response);
+      AbstractPacketCodec codec = new IDBlockResponseCodec();
+      SimpleRemotingBuffer buffer = encode(response, codec);
+      checkHeader(buffer, response);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof IDBlockResponse);
+
+      IDBlockResponse decodedResponse = (IDBlockResponse) decodedPacket;
+      assertEquals(RESP_IDBLOCK, decodedResponse.getType());
+      assertEquals(response.getLow(), decodedResponse.getLow());
+      assertEquals(response.getHigh(), decodedResponse.getHigh());
+   }
+
+   public void testSendMessage() throws Exception
+   {
+      SendMessage packet = new SendMessage(new JBossMessage(System
+            .currentTimeMillis()), true, randomLong());
+      addVersion(packet);
+      AbstractPacketCodec codec = new SendMessageCodec();
+      SimpleRemotingBuffer buffer = encode(packet, codec);
+      checkHeader(buffer, packet);
+      buffer.rewind();
+
+      AbstractPacket p = codec.decode(buffer);
+
+      assertTrue(p instanceof SendMessage);
+
+      SendMessage decodedPacket = (SendMessage) p;
+      assertEquals(MSG_SENDMESSAGE, decodedPacket.getType());
+      assertEquals(packet.checkForDuplicates(), decodedPacket
+            .checkForDuplicates());
+      assertEquals(packet.getSequence(), decodedPacket.getSequence());
+      assertEquals(packet.getMessage().getMessageID(), decodedPacket
+            .getMessage().getMessageID());
+   }
+
+   public void testCreateConsumerRequest() throws Exception
+   {
+      JBossDestination destination = new JBossQueue(
+            "testCreateConsumerRequest", true);
+      CreateConsumerRequest request = new CreateConsumerRequest(destination,
+            "color = 'red'", false, "subscription", false, false);
+      addVersion(request);
+      AbstractPacketCodec codec = new CreateConsumerRequestCodec();
+      SimpleRemotingBuffer buffer = encode(request, codec);
+      checkHeader(buffer, request);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof CreateConsumerRequest);
+
+      CreateConsumerRequest decodedRequest = (CreateConsumerRequest) decodedPacket;
+      assertEquals(REQ_CREATECONSUMER, decodedRequest.getType());
+      assertEquals(request.getDestination(), decodedRequest.getDestination());
+      assertEquals(request.getSelector(), decodedRequest.getSelector());
+      assertEquals(request.isNoLocal(), decodedRequest.isNoLocal());
+      assertEquals(request.getSubscriptionName(), decodedRequest
+            .getSubscriptionName());
+      assertEquals(request.isConnectionConsumer(), decodedRequest
+            .isConnectionConsumer());
+      assertEquals(request.isAutoFlowControl(), decodedRequest
+            .isAutoFlowControl());
+   }
+
+   public void testCreateDestinationRequest() throws Exception
+   {
+      CreateDestinationRequest request = new CreateDestinationRequest(
+            "testCreateDestinationRequest", false);
+      addVersion(request);
+      AbstractPacketCodec codec = new CreateDestinationRequestCodec();
+      SimpleRemotingBuffer buffer = encode(request, codec);
+      checkHeader(buffer, request);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof CreateDestinationRequest);
+
+      CreateDestinationRequest decodedRequest = (CreateDestinationRequest) decodedPacket;
+      assertEquals(REQ_CREATEDESTINATION, decodedRequest.getType());
+      assertEquals(request.getName(), decodedRequest.getName());
+      assertEquals(request.isQueue(), decodedRequest.isQueue());
+   }
+
+   public void testCreateDestinationResponseForQueue() throws Exception
+   {
+      JBossDestination destination = new JBossQueue("testCreateQueueResponse",
+            true);
+      CreateDestinationResponse response = new CreateDestinationResponse(
+            destination);
+      addVersion(response);
+      AbstractPacketCodec codec = new CreateDestinationResponseCodec();
+      SimpleRemotingBuffer buffer = encode(response, codec);
+      checkHeader(buffer, response);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof CreateDestinationResponse);
+
+      CreateDestinationResponse decodedResponse = (CreateDestinationResponse) decodedPacket;
+      assertEquals(RESP_CREATEDESTINATION, decodedResponse.getType());
+      assertTrue(decodedResponse.getDestination() instanceof JBossQueue);
+      assertEquals(response.getDestination(), decodedResponse.getDestination());
+   }
+
+   public void testCreateDestinationResponseForTopic() throws Exception
+   {
+      JBossDestination destination = new JBossTopic(
+            "testCreateDestinationResponseForTopic");
+      CreateDestinationResponse response = new CreateDestinationResponse(
+            destination);
+      addVersion(response);
+      AbstractPacketCodec codec = new CreateDestinationResponseCodec();
+      SimpleRemotingBuffer buffer = encode(response, codec);
+      checkHeader(buffer, response);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof CreateDestinationResponse);
+
+      CreateDestinationResponse decodedResponse = (CreateDestinationResponse) decodedPacket;
+      assertEquals(RESP_CREATEDESTINATION, decodedResponse.getType());
+      assertTrue(decodedResponse.getDestination() instanceof JBossTopic);
+      assertEquals(response.getDestination(), decodedResponse.getDestination());
+   }
+
+   public void testCreateConsumerResponse() throws Exception
+   {
+
+      CreateConsumerResponse response = new CreateConsumerResponse(
+            randomString(), 23, 42, randomLong());
+      addVersion(response);
+      AbstractPacketCodec codec = new CreateConsumerResponseCodec();
+      SimpleRemotingBuffer buffer = encode(response, codec);
+      checkHeader(buffer, response);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof CreateConsumerResponse);
+
+      CreateConsumerResponse decodedResponse = (CreateConsumerResponse) decodedPacket;
+      assertEquals(RESP_CREATECONSUMER, decodedResponse.getType());
+      assertEquals(response.getBufferSize(), decodedResponse.getBufferSize());
+      assertEquals(response.getMaxDeliveries(), decodedResponse
+            .getMaxDeliveries());
+      assertEquals(response.getRedeliveryDelay(), decodedResponse
+            .getRedeliveryDelay());
+   }
+
+   public void testStartConnectionMessage() throws Exception
+   {
+      StartConnectionMessage packet = new StartConnectionMessage();
+      addVersion(packet);
+
+      AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
+            MSG_STARTCONNECTION, StartConnectionMessage.class);
+      SimpleRemotingBuffer buffer = encode(packet, codec);
+      checkHeader(buffer, packet);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof StartConnectionMessage);
+      assertEquals(MSG_STARTCONNECTION, decodedPacket.getType());
+   }
+
+   public void testStopConnectionMessage() throws Exception
+   {
+      StopConnectionMessage packet = new StopConnectionMessage();
+      addVersion(packet);
+
+      AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
+            MSG_STOPCONNECTION, StopConnectionMessage.class);
+      SimpleRemotingBuffer buffer = encode(packet, codec);
+      checkHeader(buffer, packet);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof StopConnectionMessage);
+      assertEquals(MSG_STOPCONNECTION, decodedPacket.getType());
+   }
+
+   public void testChangeRateMessage() throws Exception
+   {
+      ChangeRateMessage message = new ChangeRateMessage(0.63f);
+      addVersion(message);
+      AbstractPacketCodec codec = new ChangeRateMessageCodec();
+      SimpleRemotingBuffer buffer = encode(message, codec);
+      checkHeader(buffer, message);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof ChangeRateMessage);
+      ChangeRateMessage decodedMessage = (ChangeRateMessage) decodedPacket;
+      assertEquals(MSG_CHANGERATE, decodedMessage.getType());
+      assertEquals(message.getRate(), decodedMessage.getRate());
+   }
+
+   public void testDeliverMessage() throws Exception
+   {
+      Message msg = new JBossMessage(randomLong());
+      DeliverMessage message = new DeliverMessage(msg, randomString(),
+            randomLong(), 23);
+      addVersion(message);
+      AbstractPacketCodec codec = new DeliverMessageCodec();
+      SimpleRemotingBuffer buffer = encode(message, codec);
+      checkHeader(buffer, message);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof DeliverMessage);
+      DeliverMessage decodedMessage = (DeliverMessage) decodedPacket;
+      assertEquals(MSG_DELIVERMESSAGE, decodedMessage.getType());
+      assertEquals(message.getMessage().getMessageID(), decodedMessage
+            .getMessage().getMessageID());
+      assertEquals(message.getConsumerID(), decodedMessage.getConsumerID());
+      assertEquals(message.getDeliveryID(), decodedMessage.getDeliveryID());
+      assertEquals(message.getDeliveryCount(), decodedMessage
+            .getDeliveryCount());
+   }
+
+   public void testAcknowledgeDeliveryRequest() throws Exception
+   {
+      AcknowledgeDeliveryRequest request = new AcknowledgeDeliveryRequest(
+            randomLong());
+      addVersion(request);
+      AbstractPacketCodec codec = new AcknowledgeDeliveryRequestCodec();
+      SimpleRemotingBuffer buffer = encode(request, codec);
+      checkHeader(buffer, request);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof AcknowledgeDeliveryRequest);
+      AcknowledgeDeliveryRequest decodedRequest = (AcknowledgeDeliveryRequest) decodedPacket;
+      assertEquals(REQ_ACKDELIVERY, decodedRequest.getType());
+      assertEquals(request.getDeliveryID(), decodedRequest.getDeliveryID());
+   }
+
+   public void testAcknowledgeDeliveriesRequest() throws Exception
+   {
+      List<Ack> acks = new ArrayList<Ack>();
+      acks.add(new DefaultAck(randomLong()));
+      acks.add(new DefaultAck(randomLong()));
+      acks.add(new DefaultAck(randomLong()));
+
+      AcknowledgeDeliveriesMessage request = new AcknowledgeDeliveriesMessage(
+            acks);
+      addVersion(request);
+      AbstractPacketCodec codec = new AcknowledgeDeliveriesRequestCodec();
+      SimpleRemotingBuffer buffer = encode(request, codec);
+      checkHeader(buffer, request);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof AcknowledgeDeliveriesMessage);
+      AcknowledgeDeliveriesMessage decodedRequest = (AcknowledgeDeliveriesMessage) decodedPacket;
+      assertEquals(MSG_ACKDELIVERIES, decodedRequest.getType());
+      assertEqualsAcks(request.getAcks(), decodedRequest.getAcks());
+   }
+
+   public void testAcknowledgeDeliveryResponse() throws Exception
+   {
+      AcknowledgeDeliveryResponse response = new AcknowledgeDeliveryResponse(
+            true);
+      addVersion(response);
+      AbstractPacketCodec codec = new AcknowledgeDeliveryResponseCodec();
+      SimpleRemotingBuffer buffer = encode(response, codec);
+      checkHeader(buffer, response);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof AcknowledgeDeliveryResponse);
+      AcknowledgeDeliveryResponse decodedResponse = (AcknowledgeDeliveryResponse) decodedPacket;
+      assertEquals(RESP_ACKDELIVERY, decodedResponse.getType());
+      assertEquals(response.isAcknowledged(), decodedResponse.isAcknowledged());
+
+   }
+
+   public void testClosingRequest() throws Exception
+   {
+      ClosingRequest request = new ClosingRequest(randomLong());
+      addVersion(request);
+      AbstractPacketCodec codec = new ClosingRequestCodec();
+      SimpleRemotingBuffer buffer = encode(request, codec);
+      checkHeader(buffer, request);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof ClosingRequest);
+      ClosingRequest decodedRequest = (ClosingRequest) decodedPacket;
+      assertEquals(REQ_CLOSING, decodedRequest.getType());
+      assertEquals(request.getSequence(), decodedRequest.getSequence());
+   }
+
+   public void testClosingResponse() throws Exception
+   {
+      ClosingResponse response = new ClosingResponse(System.currentTimeMillis());
+      addVersion(response);
+      AbstractPacketCodec codec = new ClosingResponseCodec();
+      SimpleRemotingBuffer buffer = encode(response, codec);
+      checkHeader(buffer, response);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof ClosingResponse);
+      ClosingResponse decodedRequest = (ClosingResponse) decodedPacket;
+      assertEquals(RESP_CLOSING, decodedRequest.getType());
+      assertEquals(response.getID(), decodedRequest.getID());
+   }
+
+   public void testCloseMessage() throws Exception
+   {
+      CloseMessage message = new CloseMessage();
+      addVersion(message);
+
+      AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
+            MSG_CLOSE, CloseMessage.class);
+      SimpleRemotingBuffer buffer = encode(message, codec);
+      checkHeader(buffer, message);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof CloseMessage);
+      CloseMessage decodedMessage = (CloseMessage) decodedPacket;
+      assertEquals(MSG_CLOSE, decodedMessage.getType());
+   }
+
+   public void testSendTransactionMessage() throws Exception
+   {
+      ClientTransaction tx = new ClientTransaction();
+      MessagingXid xid = new MessagingXid(randomBytes(), 23, randomBytes());
+      TransactionRequest tr = new TransactionRequest(
+            TransactionRequest.ONE_PHASE_COMMIT_REQUEST, xid, tx);
+
+      SendTransactionMessage message = new SendTransactionMessage(tr, true);
+      addVersion(message);
+      AbstractPacketCodec codec = new SendTransactionMessageCodec();
+      SimpleRemotingBuffer buffer = encode(message, codec);
+      checkHeader(buffer, message);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof SendTransactionMessage);
+      SendTransactionMessage decodedMessage = (SendTransactionMessage) decodedPacket;
+      assertEquals(MSG_SENDTRANSACTION, decodedMessage.getType());
+      assertEquals(message.checkForDuplicates(), decodedMessage
+            .checkForDuplicates());
+
+      TransactionRequest expectedTxReq = message.getTransactionRequest();
+      TransactionRequest actualTxReq = decodedMessage.getTransactionRequest();
+
+      assertEquals(expectedTxReq.getRequestType(), actualTxReq.getRequestType());
+      assertEquals(expectedTxReq.getXid(), actualTxReq.getXid());
+   }
+
+   public void testGetPreparedTransactionsRequest() throws Exception
+   {
+      GetPreparedTransactionsRequest request = new GetPreparedTransactionsRequest();
+      addVersion(request);
+
+      AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
+            REQ_GETPREPAREDTRANSACTIONS, GetPreparedTransactionsRequest.class);
+      SimpleRemotingBuffer buffer = encode(request, codec);
+      checkHeader(buffer, request);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof GetPreparedTransactionsRequest);
+      assertEquals(REQ_GETPREPAREDTRANSACTIONS, decodedPacket.getType());
+   }
+
+   public void testGetPreparedTransactionsResponse() throws Exception
+   {
+      MessagingXid[] xids = new MessagingXid[] {
+            new MessagingXid(randomBytes(), 23, randomBytes()),
+            new MessagingXid(randomBytes(), 33, randomBytes()),
+            new MessagingXid(randomBytes(), 91, randomBytes()) };
+      GetPreparedTransactionsResponse response = new GetPreparedTransactionsResponse(
+            xids);
+      addVersion(response);
+      AbstractPacketCodec codec = new GetPreparedTransactionsResponseCodec();
+      SimpleRemotingBuffer buffer = encode(response, codec);
+      checkHeader(buffer, response);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof GetPreparedTransactionsResponse);
+      GetPreparedTransactionsResponse decodedResponse = (GetPreparedTransactionsResponse) decodedPacket;
+      assertEquals(RESP_GETPREPAREDTRANSACTIONS, decodedResponse.getType());
+      assertSameXids(response.getXids(), decodedResponse.getXids());
+   }
+
+   public void testGetClientIDRequest() throws Exception
+   {
+      GetClientIDRequest request = new GetClientIDRequest();
+      addVersion(request);
+
+      AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
+            REQ_GETCLIENTID, GetClientIDRequest.class);
+      SimpleRemotingBuffer buffer = encode(request, codec);
+      checkHeader(buffer, request);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof GetClientIDRequest);
+      assertEquals(REQ_GETCLIENTID, decodedPacket.getType());
+   }
+
+   public void testGetClientIDResponse() throws Exception
+   {
+      GetClientIDResponse response = new GetClientIDResponse(randomString());
+      addVersion(response);
+      AbstractPacketCodec codec = new GetClientIDResponseCodec();
+      SimpleRemotingBuffer buffer = encode(response, codec);
+      checkHeader(buffer, response);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof GetClientIDResponse);
+      GetClientIDResponse decodedResponse = (GetClientIDResponse) decodedPacket;
+      assertEquals(RESP_GETCLIENTID, decodedResponse.getType());
+      assertEquals(response.getClientID(), decodedResponse.getClientID());
+   }
+
+   public void testSetClientIDMessage() throws Exception
+   {
+      SetClientIDMessage message = new SetClientIDMessage(randomString());
+      addVersion(message);
+      AbstractPacketCodec codec = new SetClientIDMessageCodec();
+      SimpleRemotingBuffer buffer = encode(message, codec);
+      checkHeader(buffer, message);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof SetClientIDMessage);
+      SetClientIDMessage decodedMessage = (SetClientIDMessage) decodedPacket;
+      assertEquals(MSG_SETCLIENTID, decodedMessage.getType());
+      assertEquals(message.getClientID(), decodedMessage.getClientID());
+   }
+
+   public void testRecoverDeliveriesMessage() throws Exception
+   {
+      List<DeliveryRecovery> deliveries = new ArrayList<DeliveryRecovery>();
+      deliveries.add(new DeliveryRecovery(randomLong(), randomLong(),
+            randomString()));
+      deliveries.add(new DeliveryRecovery(randomLong(), randomLong(),
+            randomString()));
+      deliveries.add(new DeliveryRecovery(randomLong(), randomLong(),
+            randomString()));
+
+      RecoverDeliveriesMessage message = new RecoverDeliveriesMessage(
+            deliveries, randomString());
+      addVersion(message);
+      AbstractPacketCodec codec = new RecoverDeliveriesMessageCodec();
+      SimpleRemotingBuffer buffer = encode(message, codec);
+      checkHeader(buffer, message);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof RecoverDeliveriesMessage);
+      RecoverDeliveriesMessage decodedMessage = (RecoverDeliveriesMessage) decodedPacket;
+      assertEquals(MSG_RECOVERDELIVERIES, decodedMessage.getType());
+      assertEqualsDeliveries(message.getDeliveries(), decodedMessage
+            .getDeliveries());
+      assertEquals(message.getSessionID(), decodedMessage.getSessionID());
+   }
+
+   public void testCancelDeliveryMessage() throws Exception
+   {
+      Cancel cancel = new DefaultCancel(randomLong(), 23, true, false);
+      CancelDeliveryMessage message = new CancelDeliveryMessage(cancel);
+      addVersion(message);
+      AbstractPacketCodec codec = new CancelDeliveryMessageCodec();
+      SimpleRemotingBuffer buffer = encode(message, codec);
+      checkHeader(buffer, message);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof CancelDeliveryMessage);
+      CancelDeliveryMessage decodedMessage = (CancelDeliveryMessage) decodedPacket;
+      assertEquals(MSG_CANCELDELIVERY, decodedMessage.getType());
+      Cancel expected = message.getCancel();
+      Cancel actual = decodedMessage.getCancel();
+      assertEquals(expected.getDeliveryId(), actual.getDeliveryId());
+      assertEquals(expected.getDeliveryCount(), actual.getDeliveryCount());
+      assertEquals(expected.isExpired(), actual.isExpired());
+      assertEquals(expected.isReachedMaxDeliveryAttempts(), actual
+            .isReachedMaxDeliveryAttempts());
+   }
+
+   public void testCancelDeliveriesMessage() throws Exception
+   {
+      List<Cancel> cancels = new ArrayList<Cancel>();
+      cancels.add(new DefaultCancel(randomLong(), 23, true, false));
+      cancels.add(new DefaultCancel(randomLong(), 33, false, true));
+
+      CancelDeliveriesMessage message = new CancelDeliveriesMessage(cancels);
+      addVersion(message);
+      AbstractPacketCodec codec = new CancelDeliveriesMessageCodec();
+      SimpleRemotingBuffer buffer = encode(message, codec);
+      checkHeader(buffer, message);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof CancelDeliveriesMessage);
+      CancelDeliveriesMessage decodedMessage = (CancelDeliveriesMessage) decodedPacket;
+      assertEquals(MSG_CANCELDELIVERIES, decodedMessage.getType());
+      assertEqualsCancels(message.getCancels(), decodedMessage.getCancels());
+   }
+
+   public void testCreateBrowserRequest() throws Exception
+   {
+      JBossDestination destination = new JBossQueue("testCreateBrowserRequest",
+            true);
+      CreateBrowserRequest request = new CreateBrowserRequest(destination,
+            "color = 'red'");
+      addVersion(request);
+      AbstractPacketCodec codec = new CreateBrowserRequestCodec();
+      SimpleRemotingBuffer buffer = encode(request, codec);
+      checkHeader(buffer, request);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof CreateBrowserRequest);
+
+      CreateBrowserRequest decodedRequest = (CreateBrowserRequest) decodedPacket;
+      assertEquals(REQ_CREATEBROWSER, decodedRequest.getType());
+      assertEquals(request.getDestination(), decodedRequest.getDestination());
+      assertEquals(request.getSelector(), decodedRequest.getSelector());
+   }
+
+   public void testCreateBrowserResponse() throws Exception
+   {
+      CreateBrowserResponse response = new CreateBrowserResponse(randomString());
+      addVersion(response);
+      AbstractPacketCodec codec = new CreateBrowserResponseCodec();
+      SimpleRemotingBuffer buffer = encode(response, codec);
+      checkHeader(buffer, response);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof CreateBrowserResponse);
+
+      CreateBrowserResponse decodedResponse = (CreateBrowserResponse) decodedPacket;
+      assertEquals(RESP_CREATEBROWSER, decodedResponse.getType());
+      assertEquals(response.getBrowserID(), decodedResponse.getBrowserID());
+   }
+
+   public void testBrowserResetMessage() throws Exception
+   {
+      BrowserResetMessage message = new BrowserResetMessage();
+      addVersion(message);
+
+      AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
+            MSG_BROWSER_RESET, BrowserResetMessage.class);
+      SimpleRemotingBuffer buffer = encode(message, codec);
+      checkHeader(buffer, message);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof BrowserResetMessage);
+      assertEquals(MSG_BROWSER_RESET, decodedPacket.getType());
+   }
+
+   public void testBrowserHasNextMessageRequest() throws Exception
+   {
+      BrowserHasNextMessageRequest request = new BrowserHasNextMessageRequest();
+      addVersion(request);
+
+      AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
+            REQ_BROWSER_HASNEXTMESSAGE, BrowserHasNextMessageRequest.class);
+      SimpleRemotingBuffer buffer = encode(request, codec);
+      checkHeader(buffer, request);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof BrowserHasNextMessageRequest);
+      assertEquals(REQ_BROWSER_HASNEXTMESSAGE, decodedPacket.getType());
+   }
+
+   public void testBrowserHasNextMessageResponse() throws Exception
+   {
+      BrowserHasNextMessageResponse response = new BrowserHasNextMessageResponse(
+            false);
+      addVersion(response);
+      AbstractPacketCodec codec = new BrowserHasNextMessageResponseCodec();
+      SimpleRemotingBuffer buffer = encode(response, codec);
+      checkHeader(buffer, response);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof BrowserHasNextMessageResponse);
+
+      BrowserHasNextMessageResponse decodedResponse = (BrowserHasNextMessageResponse) decodedPacket;
+      assertEquals(RESP_BROWSER_HASNEXTMESSAGE, decodedResponse.getType());
+      assertEquals(response.hasNext(), decodedResponse.hasNext());
+   }
+
+   public void testBrowserNextMessageRequest() throws Exception
+   {
+      BrowserNextMessageRequest request = new BrowserNextMessageRequest();
+      addVersion(request);
+
+      AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
+            REQ_BROWSER_NEXTMESSAGE, BrowserNextMessageRequest.class);
+      SimpleRemotingBuffer buffer = encode(request, codec);
+      checkHeader(buffer, request);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof BrowserNextMessageRequest);
+      assertEquals(REQ_BROWSER_NEXTMESSAGE, decodedPacket.getType());
+   }
+
+   public void testBrowserNextMessageResponse() throws Exception
+   {
+      JBossMessage msg = new JBossMessage(randomLong());
+      BrowserNextMessageResponse response = new BrowserNextMessageResponse(msg);
+      addVersion(response);
+      AbstractPacketCodec codec = new BrowserNextMessageResponseCodec();
+      SimpleRemotingBuffer buffer = encode(response, codec);
+      checkHeader(buffer, response);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof BrowserNextMessageResponse);
+      BrowserNextMessageResponse decodedResponse = (BrowserNextMessageResponse) decodedPacket;
+      assertEquals(RESP_BROWSER_NEXTMESSAGE, decodedResponse.getType());
+      assertEquals(response.getMessage().getMessageID(), decodedResponse
+            .getMessage().getMessageID());
+   }
+
+   public void testBrowserNextMessageBlockRequest() throws Exception
+   {
+      BrowserNextMessageBlockRequest request = new BrowserNextMessageBlockRequest(
+            randomLong());
+      addVersion(request);
+      AbstractPacketCodec codec = new BrowserNextMessageBlockRequestCodec();
+      SimpleRemotingBuffer buffer = encode(request, codec);
+      checkHeader(buffer, request);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof BrowserNextMessageBlockRequest);
+      BrowserNextMessageBlockRequest decodedRequest = (BrowserNextMessageBlockRequest) decodedPacket;
+      assertEquals(REQ_BROWSER_NEXTMESSAGEBLOCK, decodedPacket.getType());
+      assertEquals(request.getMaxMessages(), decodedRequest.getMaxMessages());
+   }
+
+   public void testBrowserNextMessageBlockResponse() throws Exception
+   {
+      JBossMessage[] messages = new JBossMessage[] {
+            new JBossMessage(randomLong()), new JBossMessage(randomLong()) };
+
+      BrowserNextMessageBlockResponse response = new BrowserNextMessageBlockResponse(
+            messages);
+      addVersion(response);
+      AbstractPacketCodec codec = new BrowserNextMessageBlockResponseCodec();
+      SimpleRemotingBuffer buffer = encode(response, codec);
+      checkHeader(buffer, response);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof BrowserNextMessageBlockResponse);
+      BrowserNextMessageBlockResponse decodedResponse = (BrowserNextMessageBlockResponse) decodedPacket;
+      assertEquals(RESP_BROWSER_NEXTMESSAGEBLOCK, decodedResponse.getType());
+      assertEquals(response.getMessages()[0].getMessageID(), decodedResponse
+            .getMessages()[0].getMessageID());
+      assertEquals(response.getMessages()[1].getMessageID(), decodedResponse
+            .getMessages()[1].getMessageID());
+   }
+
+   public void testUnsubscribeMessage() throws Exception
+   {
+      UnsubscribeMessage message = new UnsubscribeMessage(
+            "testUnsubscribeMessage");
+      addVersion(message);
+      AbstractPacketCodec codec = new UnsubscribeMessageCodec();
+      SimpleRemotingBuffer buffer = encode(message, codec);
+      checkHeader(buffer, message);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof UnsubscribeMessage);
+      UnsubscribeMessage decodedMessage = (UnsubscribeMessage) decodedPacket;
+      assertEquals(MSG_UNSUBSCRIBE, decodedMessage.getType());
+      assertEquals(decodedMessage.getSubscriptionName(), message
+            .getSubscriptionName());
+   }
+
+   public void testAddTemporaryDestinationMessage() throws Exception
+   {
+      JBossDestination destination = new JBossQueue(
+            "testAddTemporaryDestinationMessage", true);
+      AddTemporaryDestinationMessage message = new AddTemporaryDestinationMessage(
+            destination);
+      addVersion(message);
+      AbstractPacketCodec codec = new AddTemporaryDestinationMessageCodec();
+      SimpleRemotingBuffer buffer = encode(message, codec);
+      checkHeader(buffer, message);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof AddTemporaryDestinationMessage);
+
+      AddTemporaryDestinationMessage decodedMessage = (AddTemporaryDestinationMessage) decodedPacket;
+      assertEquals(MSG_ADDTEMPORARYDESTINATION, decodedMessage.getType());
+      assertEquals(message.getDestination(), decodedMessage.getDestination());
+   }
+
+   public void testDeleteTemporaryDestinationMessage() throws Exception
+   {
+      JBossDestination destination = new JBossQueue(
+            "testDeleteTemporaryDestinationMessage", true);
+      DeleteTemporaryDestinationMessage message = new DeleteTemporaryDestinationMessage(
+            destination);
+      addVersion(message);
+      AbstractPacketCodec codec = new DeleteTemporaryDestinationMessageCodec();
+      SimpleRemotingBuffer buffer = encode(message, codec);
+      checkHeader(buffer, message);
+      buffer.rewind();
+
+      AbstractPacket decodedPacket = codec.decode(buffer);
+
+      assertTrue(decodedPacket instanceof DeleteTemporaryDestinationMessage);
+
+      DeleteTemporaryDestinationMessage decodedMessage = (DeleteTemporaryDestinationMessage) decodedPacket;
+      assertEquals(MSG_DELETETEMPORARYDESTINATION, decodedMessage.getType());
+      assertEquals(message.getDestination(), decodedMessage.getDestination());
+   }
+
+   // Package protected ---------------------------------------------
+
+   // Protected -----------------------------------------------------
+
+   // Private -------------------------------------------------------
+
+   private SimpleRemotingBuffer encode(AbstractPacket packet,
+         AbstractPacketCodec codec) throws Exception
+   {
+      SimpleRemotingBuffer buf = new SimpleRemotingBuffer();
+
+      codec.encode(packet, buf);
+      buf.flip();
+
+      return buf;
+   }
+
+   private final class SimpleRemotingBuffer implements RemotingBuffer
+   {
+      private static final byte NON_NULL_STRING = (byte) 0;
+      private static final byte NULL_STRING = (byte) 1;
+
+      ByteArrayOutputStream baos = new ByteArrayOutputStream();
+      DataOutputStream dos = new DataOutputStream(baos);
+
+      DataInputStream dais;
+
+      /**
+       * the buffer is can no longer be written but just read
+       */
+      public void flip()
+      {
+         dos = null;
+         dais = new DataInputStream(
+               new ByteArrayInputStream(baos.toByteArray()));
+         dais.mark(1024);
+      }
+
+      public void rewind() throws IOException
+      {
+         dais.reset();
+      }
+
+      public byte get()
+      {
+         try
+         {
+            return dais.readByte();
+         } catch (IOException e)
+         {
+            fail();
+            return -1;
+         }
+      }
+
+      public void get(byte[] b)
+      {
+         try
+         {
+            dais.readFully(b);
+         } catch (IOException e)
+         {
+            fail();
+         }
+      }
+
+      public boolean getBoolean()
+      {
+         try
+         {
+            return dais.readBoolean();
+         } catch (IOException e)
+         {
+            fail();
+            return false;
+         }
+      }
+
+      public float getFloat()
+      {
+         try
+         {
+            return dais.readFloat();
+         } catch (IOException e)
+         {
+            fail();
+            return -1;
+         }
+      }
+
+      public int getInt()
+      {
+         try
+         {
+            return dais.readInt();
+         } catch (IOException e)
+         {
+            fail();
+            return -1;
+         }
+      }
+
+      public long getLong()
+      {
+         try
+         {
+            return dais.readLong();
+         } catch (IOException e)
+         {
+            fail();
+            return -1;
+         }
+      }
+
+      public String getNullableString() throws CharacterCodingException
+      {
+         try
+         {
+            byte check = dais.readByte();
+            if (check == NULL_STRING)
+            {
+               return null;
+            } else
+            {
+               return dais.readUTF();
+            }
+         } catch (IOException e)
+         {
+            fail();
+            return null;
+         }
+      }
+
+      public void put(byte byteValue)
+      {
+         try
+         {
+            dos.writeByte(byteValue);
+         } catch (IOException e)
+         {
+            fail();
+         }
+      }
+
+      public void put(byte[] bytes)
+      {
+         try
+         {
+            dos.write(bytes);
+         } catch (IOException e)
+         {
+            fail();
+         }
+      }
+
+      public void putBoolean(boolean b)
+      {
+         try
+         {
+            dos.writeBoolean(b);
+         } catch (IOException e)
+         {
+            fail();
+         }
+      }
+
+      public void putFloat(float floatValue)
+      {
+         try
+         {
+            dos.writeFloat(floatValue);
+         } catch (IOException e)
+         {
+            fail();
+         }
+      }
+
+      public void putInt(int intValue)
+      {
+         try
+         {
+            dos.writeInt(intValue);
+         } catch (IOException e)
+         {
+            fail();
+         }
+      }
+
+      public void putLong(long longValue)
+      {
+         try
+         {
+            dos.writeLong(longValue);
+         } catch (IOException e)
+         {
+            fail();
+         }
+      }
+
+      public void putNullableString(String nullableString)
+            throws CharacterCodingException
+      {
+         try
+         {
+            if (nullableString == null)
+            {
+               dos.writeByte(NULL_STRING);
+            } else
+            {
+               dos.writeByte(NON_NULL_STRING);
+               dos.writeUTF(nullableString);
+            }
+         } catch (IOException e)
+         {
+            fail();
+         }
+      }
+
+      public int remaining()
+      {
+         try
+         {
+            return dais.available();
+         } catch (IOException e)
+         {
+            fail();
+            return -1;
+         }
+      }
+   }
+
+}

Deleted: trunk/tests/src/org/jboss/test/messaging/core/remoting/ClientTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/remoting/ClientTest.java	2007-12-12 09:31:27 UTC (rev 3479)
+++ trunk/tests/src/org/jboss/test/messaging/core/remoting/ClientTest.java	2007-12-12 09:34:48 UTC (rev 3480)
@@ -1,191 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- *
- * Distributable under LGPL license.
- * See terms of license at gnu.org.
- */
-package org.jboss.test.messaging.core.remoting;
-
-import static org.jboss.messaging.core.remoting.TransportType.TCP;
-import static org.jboss.test.messaging.core.remoting.integration.TestSupport.PORT;
-
-import java.io.IOException;
-
-import javax.jms.IllegalStateException;
-
-import junit.framework.TestCase;
-
-import org.jboss.messaging.core.remoting.Client;
-import org.jboss.messaging.core.remoting.NIOSession;
-import org.jboss.messaging.core.remoting.TransportType;
-import org.jboss.messaging.core.remoting.wireformat.NullPacket;
-import org.jboss.test.messaging.core.remoting.integration.TestSupport;
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
- * 
- * @version <tt>$Revision$</tt>
- */
-public class ClientTest extends TestCase
-{
-   // Constants -----------------------------------------------------
-
-   // Attributes ----------------------------------------------------
-
-   // Static --------------------------------------------------------
-
-   // Constructors --------------------------------------------------
-
-   // Public --------------------------------------------------------
-
-   public void testConnected() throws Exception
-   {
-      Client client = new Client(new NIOConnectorAdapter()
-      {
-         private boolean connected = false;
-
-         @Override
-         public NIOSession connect(String host, int port,
-               TransportType transport) throws IOException
-         {
-            connected = true;
-            return new NIOSessionAdapter()
-            {
-               @Override
-               public boolean isConnected()
-               {
-                  return connected;
-               }
-            };
-         }
-
-         @Override
-         public boolean disconnect()
-         {
-            boolean wasConnected = connected;
-            connected = false;
-            return wasConnected;
-         }
-      });
-
-      assertFalse(client.isConnected());
-
-      client.connect("localhost", TestSupport.PORT, TCP);
-      assertTrue(client.isConnected());
-
-      assertTrue(client.disconnect());
-      assertFalse(client.isConnected());
-      assertFalse(client.disconnect());
-   }
-
-   public void testConnectionFailure() throws Exception
-   {
-      Client client = new Client(new NIOConnectorAdapter()
-      {
-         @Override
-         public NIOSession connect(String host, int port,
-               TransportType transport) throws IOException
-         {
-            throw new IOException("connection exception");
-         }
-      });
-
-      try
-      {
-         client.connect("localhost", PORT, TCP);
-         fail("connection must fail");
-      } catch (IOException e)
-      {
-      }
-   }
-
-   public void testSessionID() throws Exception
-   {
-      Client client = new Client(new NIOConnectorAdapter()
-      {
-         @Override
-         public NIOSession connect(String host, int port,
-               TransportType transport) throws IOException
-         {
-            return new NIOSessionAdapter()
-            {
-               @Override
-               public long getID()
-               {
-                  return System.currentTimeMillis();
-               }
-
-               @Override
-               public boolean isConnected()
-               {
-                  return true;
-               }
-            };
-         }
-      });
-      assertNull(client.getSessionID());
-      client.connect("localhost", PORT, TCP);
-      assertNotNull(client.getSessionID());
-      client.disconnect();
-      assertNull(client.getSessionID());
-   }
-
-   public void testURI() throws Exception
-   {
-      Client client = new Client(new NIOConnectorAdapter()
-      {
-         private boolean connected = false;
-
-         @Override
-         public NIOSession connect(String host, int port,
-               TransportType transport) throws IOException
-         {
-            connected = true;
-            return super.connect(host, port, transport);
-         }
-
-         @Override
-         public boolean disconnect()
-         {
-            connected = false;
-            return true;
-         }
-
-         @Override
-         public String getServerURI()
-         {
-            if (!connected)
-               return null;
-            else
-               return "tcp://localhost:" + PORT;
-         }
-      });
-      assertNull(client.getURI());
-      client.connect("localhost", PORT, TCP);
-      assertNotNull(client.getURI());
-      client.disconnect();
-      assertNull(client.getURI());
-   }
-
-   public void testCanNotSendPacketIfNotConnected() throws Exception
-   {
-      Client client = new Client(new NIOConnectorAdapter()
-      {
-         @Override
-         public NIOSession connect(String host, int port,
-               TransportType transport) throws IOException
-         {
-            return null;
-         }
-      });
-
-      try
-      {
-         client.sendOneWay(new NullPacket());
-         fail("can not send a packet if the dispatcher is not connected");
-      } catch (IllegalStateException e)
-      {
-
-      }
-   }
-}

Deleted: trunk/tests/src/org/jboss/test/messaging/core/remoting/NIOConnectorAdapter.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/remoting/NIOConnectorAdapter.java	2007-12-12 09:31:27 UTC (rev 3479)
+++ trunk/tests/src/org/jboss/test/messaging/core/remoting/NIOConnectorAdapter.java	2007-12-12 09:34:48 UTC (rev 3480)
@@ -1,69 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- *
- * Distributable under LGPL license.
- * See terms of license at gnu.org.
- */
-package org.jboss.test.messaging.core.remoting;
-
-import java.io.IOException;
-
-import org.jboss.jms.client.remoting.ConsolidatedRemotingConnectionListener;
-import org.jboss.messaging.core.remoting.NIOConnector;
-import org.jboss.messaging.core.remoting.NIOSession;
-import org.jboss.messaging.core.remoting.TransportType;
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
- *
- * @version <tt>$Revision$</tt>
- *
- */
-public class NIOConnectorAdapter implements NIOConnector
-{
-   // Constants -----------------------------------------------------
-
-   // Attributes ----------------------------------------------------
-
-   // Static --------------------------------------------------------
-
-   // Constructors --------------------------------------------------
-
-   // Public --------------------------------------------------------
-
-   // NIOConnector implementation -----------------------------------
-   
-   public void addConnectionListener(
-         ConsolidatedRemotingConnectionListener listener)
-   {
-   }
-
-   public NIOSession connect(String host, int port, TransportType transport)
-         throws IOException
-   {
-      return null;
-   }
-
-   public boolean disconnect()
-   {
-      return false;
-   }
-
-   public String getServerURI()
-   {
-      return null;
-   }
-
-   public void removeConnectionListener(
-         ConsolidatedRemotingConnectionListener listener)
-   {
-   }
-
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   // Private -------------------------------------------------------
-
-   // Inner classes -------------------------------------------------
-}

Deleted: trunk/tests/src/org/jboss/test/messaging/core/remoting/NIOSessionAdapter.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/remoting/NIOSessionAdapter.java	2007-12-12 09:31:27 UTC (rev 3479)
+++ trunk/tests/src/org/jboss/test/messaging/core/remoting/NIOSessionAdapter.java	2007-12-12 09:34:48 UTC (rev 3480)
@@ -1,60 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- *
- * Distributable under LGPL license.
- * See terms of license at gnu.org.
- */
-package org.jboss.test.messaging.core.remoting;
-
-import java.util.concurrent.TimeUnit;
-
-import org.jboss.messaging.core.remoting.NIOSession;
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
- *
- * @version <tt>$Revision$</tt>
- *
- */
-public class NIOSessionAdapter implements NIOSession
-{    
-   // Constants -----------------------------------------------------
-
-   // Attributes ----------------------------------------------------
-
-   // Static --------------------------------------------------------
-
-   // Constructors --------------------------------------------------
-
-   // Public --------------------------------------------------------
-
-   // NIOSession implementation -------------------------------------
- 
-   public long getID()
-   {
-      return 0;
-   }
-
-   public boolean isConnected()
-   {
-      return false;
-   }
-
-   public void write(Object object)
-   {
-   }
-   
-   public Object writeAndBlock(long requestID, Object object, long timeout,
-         TimeUnit timeUnit) throws Throwable
-   {
-      return null;
-   }
-
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   // Private -------------------------------------------------------
-
-   // Inner classes -------------------------------------------------
-}

Deleted: trunk/tests/src/org/jboss/test/messaging/core/remoting/TestPacketHandler.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/remoting/TestPacketHandler.java	2007-12-12 09:31:27 UTC (rev 3479)
+++ trunk/tests/src/org/jboss/test/messaging/core/remoting/TestPacketHandler.java	2007-12-12 09:34:48 UTC (rev 3480)
@@ -1,67 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- *
- * Distributable under LGPL license.
- * See terms of license at gnu.org.
- */
-package org.jboss.test.messaging.core.remoting;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.UUID;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
-
-import org.jboss.messaging.core.remoting.PacketHandler;
-import org.jboss.messaging.core.remoting.PacketSender;
-import org.jboss.messaging.core.remoting.wireformat.AbstractPacket;
-import org.jboss.messaging.core.remoting.wireformat.TextPacket;
-
-public class TestPacketHandler implements PacketHandler
-{
-   private final String id;
-   private final List<TextPacket> packets;
-   private CountDownLatch latch;
-   
-   public TestPacketHandler()
-   {
-      this.id = UUID.randomUUID().toString();
-      packets = new ArrayList<TextPacket>();
-   }
-
-   public String getID()
-   {
-      return id;
-   }
-   
-   public boolean await(long time, TimeUnit timeUnit) throws InterruptedException
-   {
-     if (latch == null)
-        return false;
-     return latch.await(time, timeUnit);
-   }
-
-   public void expectMessage(int count)
-   {
-      this.latch = new CountDownLatch(count);
-   }
-
-   public void handle(AbstractPacket packet, PacketSender sender)
-   {
-      packets.add((TextPacket) packet);
-      
-      doHandle(packet, sender);
-
-      if (latch != null)
-         latch.countDown();
-   }
-   
-   protected void doHandle(AbstractPacket packet, PacketSender sender)
-   {
-   }
-
-   public List<TextPacket> getPackets()
-   {
-      return packets;
-   }
-}
\ No newline at end of file




More information about the jboss-cvs-commits mailing list