[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