[jboss-cvs] JBoss Messaging SVN: r4471 - in trunk: src/main/org/jboss/messaging/core/remoting and 7 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Sat Jun 14 04:35:15 EDT 2008
Author: ataylor
Date: 2008-06-14 04:35:15 -0400 (Sat, 14 Jun 2008)
New Revision: 4471
Added:
trunk/src/main/org/jboss/messaging/core/remoting/MessagingCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/MessagingCodecImpl.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaProtocolCodecFilter.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/CodecAssert.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/MessagingCodecImplTest.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/mina/MinaProtocolCodecFilterTest.java
Removed:
trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MessagingCodec.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/wireformat/CodecAssert.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/wireformat/PacketTypeTest.java
Modified:
trunk/messaging.iml
trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/FilterChainSupport.java
trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/mina/MessagingBufferTestBase.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/util/TypedPropertiesTest.java
Log:
made MessagingCodec generic and added tests
Modified: trunk/messaging.iml
===================================================================
--- trunk/messaging.iml 2008-06-13 20:59:02 UTC (rev 4470)
+++ trunk/messaging.iml 2008-06-14 08:35:15 UTC (rev 4471)
@@ -33,6 +33,7 @@
<excludeFolder url="file://$MODULE_DIR$/build/jars" />
<excludeFolder url="file://$MODULE_DIR$/build/messaging-2.0.0.alpha1" />
<excludeFolder url="file://$MODULE_DIR$/classes" />
+ <excludeFolder url="file://$MODULE_DIR$/data" />
<excludeFolder url="file://$MODULE_DIR$/docs/examples/bridge/output" />
<excludeFolder url="file://$MODULE_DIR$/docs/examples/common/output" />
<excludeFolder url="file://$MODULE_DIR$/docs/examples/distributed-queue/output" />
Added: trunk/src/main/org/jboss/messaging/core/remoting/MessagingCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/MessagingCodec.java (rev 0)
+++ trunk/src/main/org/jboss/messaging/core/remoting/MessagingCodec.java 2008-06-14 08:35:15 UTC (rev 4471)
@@ -0,0 +1,14 @@
+package org.jboss.messaging.core.remoting;
+
+import org.jboss.messaging.util.MessagingBuffer;
+
+/**
+ * Used to encode/decode messages.
+ * @author <a href="ataylor at redhat.com">Andy Taylor</a>
+ */
+public interface MessagingCodec
+{
+ void encode(MessagingBuffer buffer, Object message) throws Exception;
+
+ Packet decode(MessagingBuffer in) throws Exception;
+}
Copied: trunk/src/main/org/jboss/messaging/core/remoting/impl/MessagingCodecImpl.java (from rev 4459, trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MessagingCodec.java)
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/MessagingCodecImpl.java (rev 0)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/MessagingCodecImpl.java 2008-06-14 08:35:15 UTC (rev 4471)
@@ -0,0 +1,343 @@
+/*
+ * JBoss, Home of Professional Open Source
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package org.jboss.messaging.core.remoting.impl;
+
+import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.remoting.MessagingCodec;
+import org.jboss.messaging.core.remoting.Packet;
+import org.jboss.messaging.core.remoting.impl.wireformat.*;
+import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.*;
+import static org.jboss.messaging.util.DataConstants.SIZE_INT;
+import org.jboss.messaging.util.MessagingBuffer;
+
+/**
+ * A MessagingCodec
+ *
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ * @author <a href="mailto:ataylor at redhat.com">Andy Taylor</a>
+ */
+public class MessagingCodecImpl implements MessagingCodec
+{
+ private static final Logger log = Logger.getLogger(MessagingCodecImpl.class);
+
+ // MessagingCodec implementation ------------------------------------------
+
+ public void encode(final MessagingBuffer buffer, Object message) throws Exception
+ {
+ Packet packet = (Packet) message;
+ packet.encode(buffer);
+ }
+
+
+ public Packet decode(final MessagingBuffer in) throws Exception
+ {
+ int start = in.position();
+
+ if (in.remaining() <= SIZE_INT)
+ {
+ return null;
+ }
+
+ int length = in.getInt();
+
+ if (in.remaining() < length)
+ {
+ in.position(start);
+
+ return null;
+ }
+
+ byte packetType = in.getByte();
+
+ Packet packet;
+
+
+ switch (packetType)
+ {
+ case NULL:
+ {
+ packet = new EmptyPacket(EmptyPacket.NULL);
+ break;
+ }
+ case PING:
+ {
+ packet = new Ping();
+ break;
+ }
+ case PONG:
+ {
+ packet = new Pong();
+ break;
+ }
+ case EXCEPTION:
+ {
+ packet = new MessagingExceptionMessage();
+ break;
+ }
+ case CLOSE:
+ {
+ packet = new EmptyPacket(EmptyPacket.CLOSE);
+ break;
+ }
+ case CREATECONNECTION:
+ {
+ packet = new CreateConnectionRequest();
+ break;
+ }
+ case CREATECONNECTION_RESP:
+ {
+ packet = new CreateConnectionResponse();
+ break;
+ }
+ case EmptyPacket.CONN_CREATESESSION:
+ {
+ packet = new ConnectionCreateSessionMessage();
+ break;
+ }
+ case EmptyPacket.CONN_CREATESESSION_RESP:
+ {
+ packet = new ConnectionCreateSessionResponseMessage();
+ break;
+ }
+ case EmptyPacket.CONN_START:
+ {
+ packet = new EmptyPacket(EmptyPacket.CONN_START);
+ break;
+ }
+ case EmptyPacket.CONN_STOP:
+ {
+ packet = new EmptyPacket(EmptyPacket.CONN_STOP);
+ break;
+ }
+ case EmptyPacket.SESS_CREATECONSUMER:
+ {
+ packet = new SessionCreateConsumerMessage();
+ break;
+ }
+ case EmptyPacket.SESS_CREATECONSUMER_RESP:
+ {
+ packet = new SessionCreateConsumerResponseMessage();
+ break;
+ }
+ case EmptyPacket.SESS_CREATEPRODUCER:
+ {
+ packet = new SessionCreateProducerMessage();
+ break;
+ }
+ case EmptyPacket.SESS_CREATEPRODUCER_RESP:
+ {
+ packet = new SessionCreateProducerResponseMessage();
+ break;
+ }
+ case EmptyPacket.SESS_CREATEBROWSER:
+ {
+ packet = new SessionCreateBrowserMessage();
+ break;
+ }
+ case EmptyPacket.SESS_CREATEBROWSER_RESP:
+ {
+ packet = new SessionCreateBrowserResponseMessage();
+ break;
+ }
+ case EmptyPacket.SESS_ACKNOWLEDGE:
+ {
+ packet = new SessionAcknowledgeMessage();
+ break;
+ }
+ case EmptyPacket.SESS_RECOVER:
+ {
+ packet = new EmptyPacket(EmptyPacket.SESS_RECOVER);
+ break;
+ }
+ case EmptyPacket.SESS_COMMIT:
+ {
+ packet = new EmptyPacket(EmptyPacket.SESS_COMMIT);
+ break;
+ }
+ case EmptyPacket.SESS_ROLLBACK:
+ {
+ packet = new EmptyPacket(EmptyPacket.SESS_ROLLBACK);
+ break;
+ }
+ case EmptyPacket.SESS_CANCEL:
+ {
+ packet = new SessionCancelMessage();
+ break;
+ }
+ case EmptyPacket.SESS_QUEUEQUERY:
+ {
+ packet = new SessionQueueQueryMessage();
+ break;
+ }
+ case EmptyPacket.SESS_QUEUEQUERY_RESP:
+ {
+ packet = new SessionQueueQueryResponseMessage();
+ break;
+ }
+ case EmptyPacket.SESS_CREATEQUEUE:
+ {
+ packet = new SessionCreateQueueMessage();
+ break;
+ }
+ case EmptyPacket.SESS_DELETE_QUEUE:
+ {
+ packet = new SessionDeleteQueueMessage();
+ break;
+ }
+ case EmptyPacket.SESS_ADD_DESTINATION:
+ {
+ packet = new SessionAddDestinationMessage();
+ break;
+ }
+ case EmptyPacket.SESS_REMOVE_DESTINATION:
+ {
+ packet = new SessionRemoveDestinationMessage();
+ break;
+ }
+ case EmptyPacket.SESS_BINDINGQUERY:
+ {
+ packet = new SessionBindingQueryMessage();
+ break;
+ }
+ case EmptyPacket.SESS_BINDINGQUERY_RESP:
+ {
+ packet = new SessionBindingQueryResponseMessage();
+ break;
+ }
+ case EmptyPacket.SESS_BROWSER_RESET:
+ {
+ packet = new EmptyPacket(EmptyPacket.SESS_BROWSER_RESET);
+ break;
+ }
+ case EmptyPacket.SESS_BROWSER_HASNEXTMESSAGE:
+ {
+ packet = new EmptyPacket(EmptyPacket.SESS_BROWSER_HASNEXTMESSAGE);
+ break;
+ }
+ case EmptyPacket.SESS_BROWSER_HASNEXTMESSAGE_RESP:
+ {
+ packet = new SessionBrowserHasNextMessageResponseMessage();
+ break;
+ }
+ case EmptyPacket.SESS_BROWSER_NEXTMESSAGE:
+ {
+ packet = new EmptyPacket(EmptyPacket.SESS_BROWSER_NEXTMESSAGE);
+ break;
+ }
+ case EmptyPacket.SESS_XA_START:
+ {
+ packet = new SessionXAStartMessage();
+ break;
+ }
+ case EmptyPacket.SESS_XA_END:
+ {
+ packet = new SessionXAEndMessage();
+ break;
+ }
+ case EmptyPacket.SESS_XA_COMMIT:
+ {
+ packet = new SessionXACommitMessage();
+ break;
+ }
+ case EmptyPacket.SESS_XA_PREPARE:
+ {
+ packet = new SessionXAPrepareMessage();
+ break;
+ }
+ case EmptyPacket.SESS_XA_RESP:
+ {
+ packet = new SessionXAResponseMessage();
+ break;
+ }
+ case EmptyPacket.SESS_XA_ROLLBACK:
+ {
+ packet = new SessionXARollbackMessage();
+ break;
+ }
+ case EmptyPacket.SESS_XA_JOIN:
+ {
+ packet = new SessionXAJoinMessage();
+ break;
+ }
+ case EmptyPacket.SESS_XA_SUSPEND:
+ {
+ packet = new EmptyPacket(EmptyPacket.SESS_XA_SUSPEND);
+ break;
+ }
+ case EmptyPacket.SESS_XA_RESUME:
+ {
+ packet = new SessionXAResumeMessage();
+ break;
+ }
+ case EmptyPacket.SESS_XA_FORGET:
+ {
+ packet = new SessionXAForgetMessage();
+ break;
+ }
+ case EmptyPacket.SESS_XA_INDOUBT_XIDS:
+ {
+ packet = new EmptyPacket(EmptyPacket.SESS_XA_INDOUBT_XIDS);
+ break;
+ }
+ case EmptyPacket.SESS_XA_INDOUBT_XIDS_RESP:
+ {
+ packet = new SessionXAGetInDoubtXidsResponseMessage();
+ break;
+ }
+ case EmptyPacket.SESS_XA_SET_TIMEOUT:
+ {
+ packet = new SessionXASetTimeoutMessage();
+ break;
+ }
+ case EmptyPacket.SESS_XA_SET_TIMEOUT_RESP:
+ {
+ packet = new SessionXASetTimeoutResponseMessage();
+ break;
+ }
+ case EmptyPacket.SESS_XA_GET_TIMEOUT:
+ {
+ packet = new EmptyPacket(EmptyPacket.SESS_XA_GET_TIMEOUT);
+ break;
+ }
+ case EmptyPacket.SESS_XA_GET_TIMEOUT_RESP:
+ {
+ packet = new SessionXAGetTimeoutResponseMessage();
+ break;
+ }
+ case EmptyPacket.CONS_FLOWTOKEN:
+ {
+ packet = new ConsumerFlowCreditMessage();
+ break;
+ }
+ case EmptyPacket.PROD_SEND:
+ {
+ packet = new ProducerSendMessage();
+ break;
+ }
+ case EmptyPacket.PROD_RECEIVETOKENS:
+ {
+ packet = new ProducerFlowCreditMessage();
+ break;
+ }
+ case EmptyPacket.RECEIVE_MSG:
+ {
+ packet = new ReceiveMessage();
+ break;
+ }
+ default:
+ {
+ throw new IllegalArgumentException("Invalid type: " + packetType);
+ }
+ }
+
+ packet.decode(in);
+
+ return packet;
+
+ }
+
+}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/FilterChainSupport.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/FilterChainSupport.java 2008-06-13 20:59:02 UTC (rev 4470)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/FilterChainSupport.java 2008-06-14 08:35:15 UTC (rev 4471)
@@ -6,14 +6,14 @@
*/
package org.jboss.messaging.core.remoting.impl.mina;
-import javax.net.ssl.SSLContext;
-
import org.apache.mina.common.DefaultIoFilterChainBuilder;
import org.apache.mina.filter.codec.ProtocolCodecFilter;
import org.apache.mina.filter.ssl.SslFilter;
import org.jboss.messaging.core.logging.Logger;
import org.jboss.messaging.core.remoting.impl.ssl.SSLSupport;
+import javax.net.ssl.SSLContext;
+
/**
* @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
* @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
@@ -39,7 +39,7 @@
{
assert filterChain != null;
- filterChain.addLast("codec", new ProtocolCodecFilter(new MessagingCodec()));
+ filterChain.addLast("codec", new ProtocolCodecFilter(new MinaProtocolCodecFilter()));
}
public static void addSSLFilter(
Deleted: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MessagingCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MessagingCodec.java 2008-06-13 20:59:02 UTC (rev 4470)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MessagingCodec.java 2008-06-14 08:35:15 UTC (rev 4471)
@@ -1,443 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- *
- * Distributable under LGPL license.
- * See terms of license at gnu.org.
- */
-package org.jboss.messaging.core.remoting.impl.mina;
-
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.CLOSE;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.CREATECONNECTION;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.CREATECONNECTION_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.EXCEPTION;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.NULL;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.PING;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.PONG;
-import static org.jboss.messaging.util.DataConstants.SIZE_INT;
-
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.common.IoSession;
-import org.apache.mina.filter.codec.CumulativeProtocolDecoder;
-import org.apache.mina.filter.codec.ProtocolCodecFactory;
-import org.apache.mina.filter.codec.ProtocolDecoder;
-import org.apache.mina.filter.codec.ProtocolDecoderOutput;
-import org.apache.mina.filter.codec.ProtocolEncoder;
-import org.apache.mina.filter.codec.ProtocolEncoderOutput;
-import org.jboss.messaging.core.logging.Logger;
-import org.jboss.messaging.core.remoting.Packet;
-import org.jboss.messaging.core.remoting.impl.wireformat.ConnectionCreateSessionMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.ConnectionCreateSessionResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.ConsumerFlowCreditMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.CreateConnectionRequest;
-import org.jboss.messaging.core.remoting.impl.wireformat.CreateConnectionResponse;
-import org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket;
-import org.jboss.messaging.core.remoting.impl.wireformat.MessagingExceptionMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.Ping;
-import org.jboss.messaging.core.remoting.impl.wireformat.Pong;
-import org.jboss.messaging.core.remoting.impl.wireformat.ProducerFlowCreditMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.ProducerSendMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.ReceiveMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionAcknowledgeMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionAddDestinationMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionBindingQueryMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionBindingQueryResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionBrowserHasNextMessageResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionCancelMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateBrowserMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateBrowserResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateConsumerMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateConsumerResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateProducerMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateProducerResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateQueueMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionDeleteQueueMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionQueueQueryMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionQueueQueryResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionRemoveDestinationMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXACommitMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAEndMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAForgetMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAGetInDoubtXidsResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAGetTimeoutResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAJoinMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAPrepareMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAResumeMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXARollbackMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXASetTimeoutMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXASetTimeoutResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAStartMessage;
-import org.jboss.messaging.util.MessagingBuffer;
-
-/**
- *
- * A MessagingCodec
- *
- * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
- *
- */
-public class MessagingCodec extends CumulativeProtocolDecoder
- implements ProtocolEncoder, ProtocolCodecFactory
-{
- private static final Logger log = Logger.getLogger(MessagingCodec.class);
-
- // ProtocolCodecFactory implementation
- // -----------------------------------------------------------------------------------
-
- public ProtocolDecoder getDecoder(final IoSession session)
- {
- return this;
- }
-
- public ProtocolEncoder getEncoder(final IoSession session)
- {
- return this;
- }
-
-
- // ProtocolEncoder implementation ------------------------------------------
-
- public void dispose(final IoSession session) throws Exception
- {
- }
-
- public void encode(final IoSession session, final Object message,
- final ProtocolEncoderOutput out) throws Exception
- {
- Packet packet = (Packet) message;
-
- IoBuffer iobuf = IoBuffer.allocate(1024, false);
-
- iobuf.setAutoExpand(true);
-
- MessagingBuffer buffer = new IoBufferWrapper(iobuf);
-
- packet.encode(buffer);
-
- out.write(iobuf);
- }
-
- // CumulativeProtocolDecoder overrides
- // -------------------------------------------------------------------------------------
-
- public boolean doDecode(final IoSession session, final IoBuffer in, final ProtocolDecoderOutput out) throws Exception
- {
- int start = in.position();
-
- if (in.remaining() <= SIZE_INT)
- {
- return false;
- }
-
- int length = in.getInt();
-
- if (in.remaining() < length)
- {
- in.position(start);
-
- return false;
- }
-
- int limit = in.limit();
- in.limit(in.position() + length);
-
- byte packetType = in.get();
-
- Packet packet;
-
- try
- {
- switch (packetType)
- {
- case NULL:
- {
- packet = new EmptyPacket(EmptyPacket.NULL);
- break;
- }
- case PING:
- {
- packet = new Ping();
- break;
- }
- case PONG:
- {
- packet = new Pong();
- break;
- }
- case EXCEPTION:
- {
- packet = new MessagingExceptionMessage();
- break;
- }
- case CLOSE:
- {
- packet = new EmptyPacket(EmptyPacket.CLOSE);
- break;
- }
- case CREATECONNECTION:
- {
- packet = new CreateConnectionRequest();
- break;
- }
- case CREATECONNECTION_RESP:
- {
- packet = new CreateConnectionResponse();
- break;
- }
- case EmptyPacket.CONN_CREATESESSION:
- {
- packet = new ConnectionCreateSessionMessage();
- break;
- }
- case EmptyPacket.CONN_CREATESESSION_RESP:
- {
- packet = new ConnectionCreateSessionResponseMessage();
- break;
- }
- case EmptyPacket.CONN_START:
- {
- packet = new EmptyPacket(EmptyPacket.CONN_START);
- break;
- }
- case EmptyPacket.CONN_STOP:
- {
- packet = new EmptyPacket(EmptyPacket.CONN_STOP);
- break;
- }
- case EmptyPacket.SESS_CREATECONSUMER:
- {
- packet = new SessionCreateConsumerMessage();
- break;
- }
- case EmptyPacket.SESS_CREATECONSUMER_RESP:
- {
- packet = new SessionCreateConsumerResponseMessage();
- break;
- }
- case EmptyPacket.SESS_CREATEPRODUCER:
- {
- packet = new SessionCreateProducerMessage();
- break;
- }
- case EmptyPacket.SESS_CREATEPRODUCER_RESP:
- {
- packet = new SessionCreateProducerResponseMessage();
- break;
- }
- case EmptyPacket.SESS_CREATEBROWSER:
- {
- packet = new SessionCreateBrowserMessage();
- break;
- }
- case EmptyPacket.SESS_CREATEBROWSER_RESP:
- {
- packet = new SessionCreateBrowserResponseMessage();
- break;
- }
- case EmptyPacket.SESS_ACKNOWLEDGE:
- {
- packet = new SessionAcknowledgeMessage();
- break;
- }
- case EmptyPacket.SESS_RECOVER:
- {
- packet = new EmptyPacket(EmptyPacket.SESS_RECOVER);
- break;
- }
- case EmptyPacket.SESS_COMMIT:
- {
- packet = new EmptyPacket(EmptyPacket.SESS_COMMIT);
- break;
- }
- case EmptyPacket.SESS_ROLLBACK:
- {
- packet = new EmptyPacket(EmptyPacket.SESS_ROLLBACK);
- break;
- }
- case EmptyPacket.SESS_CANCEL:
- {
- packet = new SessionCancelMessage();
- break;
- }
- case EmptyPacket.SESS_QUEUEQUERY:
- {
- packet = new SessionQueueQueryMessage();
- break;
- }
- case EmptyPacket.SESS_QUEUEQUERY_RESP:
- {
- packet = new SessionQueueQueryResponseMessage();
- break;
- }
- case EmptyPacket.SESS_CREATEQUEUE:
- {
- packet = new SessionCreateQueueMessage();
- break;
- }
- case EmptyPacket.SESS_DELETE_QUEUE:
- {
- packet = new SessionDeleteQueueMessage();
- break;
- }
- case EmptyPacket.SESS_ADD_DESTINATION:
- {
- packet = new SessionAddDestinationMessage();
- break;
- }
- case EmptyPacket.SESS_REMOVE_DESTINATION:
- {
- packet = new SessionRemoveDestinationMessage();
- break;
- }
- case EmptyPacket.SESS_BINDINGQUERY:
- {
- packet = new SessionBindingQueryMessage();
- break;
- }
- case EmptyPacket.SESS_BINDINGQUERY_RESP:
- {
- packet = new SessionBindingQueryResponseMessage();
- break;
- }
- case EmptyPacket.SESS_BROWSER_RESET:
- {
- packet = new EmptyPacket(EmptyPacket.SESS_BROWSER_RESET);
- break;
- }
- case EmptyPacket.SESS_BROWSER_HASNEXTMESSAGE:
- {
- packet = new EmptyPacket(EmptyPacket.SESS_BROWSER_HASNEXTMESSAGE);
- break;
- }
- case EmptyPacket.SESS_BROWSER_HASNEXTMESSAGE_RESP:
- {
- packet = new SessionBrowserHasNextMessageResponseMessage();
- break;
- }
- case EmptyPacket.SESS_BROWSER_NEXTMESSAGE:
- {
- packet = new EmptyPacket(EmptyPacket.SESS_BROWSER_NEXTMESSAGE);
- break;
- }
- case EmptyPacket.SESS_XA_START:
- {
- packet = new SessionXAStartMessage();
- break;
- }
- case EmptyPacket.SESS_XA_END:
- {
- packet = new SessionXAEndMessage();
- break;
- }
- case EmptyPacket.SESS_XA_COMMIT:
- {
- packet = new SessionXACommitMessage();
- break;
- }
- case EmptyPacket.SESS_XA_PREPARE:
- {
- packet = new SessionXAPrepareMessage();
- break;
- }
- case EmptyPacket.SESS_XA_RESP:
- {
- packet = new SessionXAResponseMessage();
- break;
- }
- case EmptyPacket.SESS_XA_ROLLBACK:
- {
- packet = new SessionXARollbackMessage();
- break;
- }
- case EmptyPacket.SESS_XA_JOIN:
- {
- packet = new SessionXAJoinMessage();
- break;
- }
- case EmptyPacket.SESS_XA_SUSPEND:
- {
- packet = new EmptyPacket(EmptyPacket.SESS_XA_SUSPEND);
- break;
- }
- case EmptyPacket.SESS_XA_RESUME:
- {
- packet = new SessionXAResumeMessage();
- break;
- }
- case EmptyPacket.SESS_XA_FORGET:
- {
- packet = new SessionXAForgetMessage();
- break;
- }
- case EmptyPacket.SESS_XA_INDOUBT_XIDS:
- {
- packet = new EmptyPacket(EmptyPacket.SESS_XA_INDOUBT_XIDS);
- break;
- }
- case EmptyPacket.SESS_XA_INDOUBT_XIDS_RESP:
- {
- packet = new SessionXAGetInDoubtXidsResponseMessage();
- break;
- }
- case EmptyPacket.SESS_XA_SET_TIMEOUT:
- {
- packet = new SessionXASetTimeoutMessage();
- break;
- }
- case EmptyPacket.SESS_XA_SET_TIMEOUT_RESP:
- {
- packet = new SessionXASetTimeoutResponseMessage();
- break;
- }
- case EmptyPacket.SESS_XA_GET_TIMEOUT:
- {
- packet = new EmptyPacket(EmptyPacket.SESS_XA_GET_TIMEOUT);
- break;
- }
- case EmptyPacket.SESS_XA_GET_TIMEOUT_RESP:
- {
- packet = new SessionXAGetTimeoutResponseMessage();
- break;
- }
- case EmptyPacket.CONS_FLOWTOKEN:
- {
- packet = new ConsumerFlowCreditMessage();
- break;
- }
- case EmptyPacket.PROD_SEND:
- {
- packet = new ProducerSendMessage();
- break;
- }
- case EmptyPacket.PROD_RECEIVETOKENS:
- {
- packet = new ProducerFlowCreditMessage();
- break;
- }
- case EmptyPacket.RECEIVE_MSG:
- {
- packet = new ReceiveMessage();
- break;
- }
- default:
- {
- throw new IllegalArgumentException("Invalid type: " + packetType);
- }
- }
-
- MessagingBuffer buff = new IoBufferWrapper(in.slice());
-
- packet.decode(buff);
-
- out.write(packet);
-
- return true;
- }
- finally
- {
- in.position(in.limit());
-
- in.limit(limit);
- }
- }
-}
Added: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaProtocolCodecFilter.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaProtocolCodecFilter.java (rev 0)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaProtocolCodecFilter.java 2008-06-14 08:35:15 UTC (rev 4471)
@@ -0,0 +1,94 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.messaging.core.remoting.impl.mina;
+
+import org.apache.mina.common.IoBuffer;
+import org.apache.mina.common.IoSession;
+import org.apache.mina.filter.codec.*;
+import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.remoting.MessagingCodec;
+import org.jboss.messaging.core.remoting.Packet;
+import org.jboss.messaging.core.remoting.impl.MessagingCodecImpl;
+import org.jboss.messaging.util.MessagingBuffer;
+
+/**
+ * A Mina ProtocolEncoder used to encode/decode messages.
+ *
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ * @author <a href="ataylor at redhat.com">Andy Taylor</a>
+ */
+public class MinaProtocolCodecFilter extends CumulativeProtocolDecoder
+ implements ProtocolEncoder, ProtocolCodecFactory
+{
+ private static final Logger log = Logger.getLogger(MessagingCodecImpl.class);
+
+ // ProtocolCodecFactory implementation
+ // -----------------------------------------------------------------------------------
+ private MessagingCodec messagingCodec = new MessagingCodecImpl();
+
+ public ProtocolDecoder getDecoder(final IoSession session)
+ {
+ return this;
+ }
+
+ public ProtocolEncoder getEncoder(final IoSession session)
+ {
+ return this;
+ }
+
+ // ProtocolEncoder implementation ------------------------------------------
+
+ public void dispose(final IoSession session) throws Exception
+ {
+ }
+
+ public void encode(final IoSession session, final Object message,
+ final ProtocolEncoderOutput out) throws Exception
+ {
+
+ IoBuffer iobuf = IoBuffer.allocate(1024, false);
+
+ iobuf.setAutoExpand(true);
+
+ MessagingBuffer buffer = new IoBufferWrapper(iobuf);
+
+ messagingCodec.encode(buffer, message);
+
+ out.write(iobuf);
+ }
+
+ // CumulativeProtocolDecoder overrides
+ // -------------------------------------------------------------------------------------
+
+ public boolean doDecode(final IoSession session, final IoBuffer in, final ProtocolDecoderOutput out) throws Exception
+ {
+ MessagingBuffer buff = new IoBufferWrapper(in);
+
+ Packet packet = messagingCodec.decode(buff);
+ if(packet != null)
+ {
+ out.write(packet);
+ }
+ return packet != null;
+ }
+}
+
Modified: trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/mina/MessagingBufferTestBase.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/mina/MessagingBufferTestBase.java 2008-06-13 20:59:02 UTC (rev 4470)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/mina/MessagingBufferTestBase.java 2008-06-14 08:35:15 UTC (rev 4471)
@@ -6,17 +6,10 @@
*/
package org.jboss.messaging.tests.integration.core.remoting.mina;
-import static org.jboss.messaging.tests.unit.core.remoting.impl.wireformat.CodecAssert.assertEqualsByteArrays;
-import static org.jboss.messaging.tests.util.RandomUtil.randomByte;
-import static org.jboss.messaging.tests.util.RandomUtil.randomBytes;
-import static org.jboss.messaging.tests.util.RandomUtil.randomDouble;
-import static org.jboss.messaging.tests.util.RandomUtil.randomFloat;
-import static org.jboss.messaging.tests.util.RandomUtil.randomInt;
-import static org.jboss.messaging.tests.util.RandomUtil.randomLong;
-import static org.jboss.messaging.tests.util.RandomUtil.randomString;
import junit.framework.TestCase;
-
+import static org.jboss.messaging.tests.unit.core.remoting.impl.CodecAssert.assertEqualsByteArrays;
import org.jboss.messaging.tests.util.RandomUtil;
+import static org.jboss.messaging.tests.util.RandomUtil.*;
import org.jboss.messaging.util.MessagingBuffer;
import org.jboss.messaging.util.SimpleString;
Copied: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/CodecAssert.java (from rev 4459, trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/wireformat/CodecAssert.java)
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/CodecAssert.java (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/CodecAssert.java 2008-06-14 08:35:15 UTC (rev 4471)
@@ -0,0 +1,79 @@
+/*
+ * JBoss, Home of Professional Open Source
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package org.jboss.messaging.tests.unit.core.remoting.impl;
+
+import junit.framework.Assert;
+
+import javax.transaction.xa.Xid;
+import java.util.List;
+
+/**
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ *
+ * @version <tt>$Revision$</tt>
+ *
+ */
+public class CodecAssert extends Assert
+{
+ // Constants -----------------------------------------------------
+
+ // Attributes ----------------------------------------------------
+
+ // Static --------------------------------------------------------
+
+ public static void assertSameXids(List<Xid> expected, List<Xid> actual)
+ {
+ assertNotNull(expected);
+ assertNotNull(actual);
+ assertEquals(expected.size(), actual.size());
+
+ for (int i = 0; i < expected.size(); i++)
+ {
+ Xid expectedXid = expected.get(i);
+ Xid actualXid = actual.get(i);
+ assertEqualsByteArrays(expectedXid.getBranchQualifier(), actualXid
+ .getBranchQualifier());
+ assertEquals(expectedXid.getFormatId(), actualXid.getFormatId());
+ assertEqualsByteArrays(expectedXid.getGlobalTransactionId(), actualXid
+ .getGlobalTransactionId());
+ }
+ }
+
+ public static void assertEqualsByteArrays(byte[] expected, byte[] actual)
+ {
+ assertEquals(expected.length, actual.length);
+ for (int i = 0; i < expected.length; i++)
+ {
+ assertEquals("byte at index " + i, expected[i], actual[i]);
+ }
+ }
+
+ public static void assertEqualsByteArrays(int length, byte[] expected, byte[] actual)
+ {
+ // we check only for the given length (the arrays might be
+ // larger)
+ assertTrue(expected.length >= length);
+ assertTrue(actual.length >= length);
+ for (int i = 0; i < length; i++)
+ {
+ assertEquals("byte at index " + i, expected[i], actual[i]);
+ }
+ }
+
+
+ // Constructors --------------------------------------------------
+
+ // Public --------------------------------------------------------
+
+ // Package protected ---------------------------------------------
+
+ // Protected -----------------------------------------------------
+
+ // Private -------------------------------------------------------
+
+ // Inner classes -------------------------------------------------
+}
Added: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/MessagingCodecImplTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/MessagingCodecImplTest.java (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/MessagingCodecImplTest.java 2008-06-14 08:35:15 UTC (rev 4471)
@@ -0,0 +1,601 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.messaging.tests.unit.core.remoting.impl;
+
+import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.core.remoting.MessagingCodec;
+import org.jboss.messaging.core.remoting.impl.MessagingCodecImpl;
+import org.jboss.messaging.core.remoting.impl.wireformat.*;
+import org.jboss.messaging.core.transaction.impl.XidImpl;
+import org.jboss.messaging.core.version.impl.VersionImpl;
+import org.jboss.messaging.tests.util.RandomUtil;
+import org.jboss.messaging.tests.util.UnitTestCase;
+import org.jboss.messaging.util.ByteBufferWrapper;
+import org.jboss.messaging.util.MessagingBuffer;
+import org.jboss.messaging.util.SimpleString;
+
+import javax.transaction.xa.Xid;
+import java.nio.ByteBuffer;
+import java.util.ArrayList;
+
+/**
+ * @author <a href="ataylor at redhat.com">Andy Taylor</a>
+ */
+public class MessagingCodecImplTest extends UnitTestCase
+{
+ MessagingCodec codec = null;
+ private MessagingBuffer buff;
+
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+ codec = new MessagingCodecImpl();
+ buff = new ByteBufferWrapper(ByteBuffer.allocateDirect(1024));
+ }
+
+ protected void tearDown() throws Exception
+ {
+ super.tearDown();
+ codec = null;
+ buff = null;
+ }
+ public void testEmptyPacket() throws Exception
+ {
+ EmptyPacket message = new EmptyPacket(EmptyPacket.NULL);
+ setHeaders(message);
+ codec.encode(buff, message);
+ buff.rewind();
+ EmptyPacket copy = (EmptyPacket) codec.decode(buff);
+ checkHeaders(message, copy);
+ }
+
+ public void testConnectionCreateSessionPacket() throws Exception
+ {
+ ConnectionCreateSessionMessage message = new ConnectionCreateSessionMessage(true, true, true);
+ setHeaders(message);
+ codec.encode(buff, message);
+ buff.rewind();
+ ConnectionCreateSessionMessage copy = (ConnectionCreateSessionMessage) codec.decode(buff);
+ checkHeaders(message, copy);
+ assertEquals(message.isAutoCommitAcks(), copy.isAutoCommitAcks());
+ assertEquals(message.isAutoCommitSends(), copy.isAutoCommitSends());
+ assertEquals(message.isXA(), copy.isXA());
+ }
+
+ public void testCreateConnectionRequestPacket() throws Exception
+ {
+ CreateConnectionRequest message = new CreateConnectionRequest(RandomUtil.randomInt(), RandomUtil.randomLong(), RandomUtil.randomString(), RandomUtil.randomString());
+ setHeaders(message);
+ codec.encode(buff, message);
+ buff.rewind();
+ CreateConnectionRequest copy = (CreateConnectionRequest) codec.decode(buff);
+ checkHeaders(message, copy);
+ assertEquals(message.getUsername(), copy.getUsername());
+ assertEquals(message.getVersion(), copy.getVersion());
+ assertEquals(message.getPassword(), copy.getPassword());
+ assertEquals(message.getRemotingSessionID(), copy.getRemotingSessionID());
+ }
+
+ public void testConsumerFlowCreditMessagePacket() throws Exception
+ {
+ ConsumerFlowCreditMessage message = new ConsumerFlowCreditMessage(RandomUtil.randomInt());
+ setHeaders(message);
+ codec.encode(buff, message);
+ buff.rewind();
+ ConsumerFlowCreditMessage copy = (ConsumerFlowCreditMessage) codec.decode(buff);
+ checkHeaders(message, copy);
+ assertEquals(message.getTokens(), copy.getTokens());
+ }
+
+ public void testConnectionCreateSessionResponseMessagePacket() throws Exception
+ {
+ ConnectionCreateSessionResponseMessage message = new ConnectionCreateSessionResponseMessage(RandomUtil.randomLong());
+ setHeaders(message);
+ codec.encode(buff, message);
+ buff.rewind();
+ ConnectionCreateSessionResponseMessage copy = (ConnectionCreateSessionResponseMessage) codec.decode(buff);
+ checkHeaders(message, copy);
+ assertEquals(message.getSessionID(), copy.getSessionID());
+ }
+
+ public void testCreateConnectionResponsePacket() throws Exception
+ {
+ CreateConnectionResponse message = new CreateConnectionResponse(RandomUtil.randomLong(), new VersionImpl(
+ RandomUtil.randomString(),
+ RandomUtil.randomInt(),
+ RandomUtil.randomInt(),
+ RandomUtil.randomInt(),RandomUtil.randomInt(),RandomUtil.randomString()));
+ setHeaders(message);
+ codec.encode(buff, message);
+ buff.rewind();
+ CreateConnectionResponse copy = (CreateConnectionResponse) codec.decode(buff);
+ checkHeaders(message, copy);
+ assertEquals(message.getConnectionTargetID(), copy.getConnectionTargetID());
+ assertEquals(message.getServerVersion().getFullVersion(), copy.getServerVersion().getFullVersion());
+ }
+
+ public void testMessagingExceptionMessagePacket() throws Exception
+ {
+ MessagingExceptionMessage message = new MessagingExceptionMessage(new MessagingException(RandomUtil.randomInt()));
+ setHeaders(message);
+ codec.encode(buff, message);
+ buff.rewind();
+ MessagingExceptionMessage copy = (MessagingExceptionMessage) codec.decode(buff);
+ checkHeaders(message, copy);
+ assertEquals(message.getException().getCode(), copy.getException().getCode());
+ }
+
+ public void testPingPacket() throws Exception
+ {
+ Ping message = new Ping(RandomUtil.randomLong());
+ setHeaders(message);
+ codec.encode(buff, message);
+ buff.rewind();
+ Ping copy = (Ping) codec.decode(buff);
+ checkHeaders(message, copy);
+ assertEquals(message.getSessionID(), copy.getSessionID());
+ }
+
+ public void testPongPacket() throws Exception
+ {
+ Pong message = new Pong(RandomUtil.randomLong(), RandomUtil.randomBoolean());
+ setHeaders(message);
+ codec.encode(buff, message);
+ buff.rewind();
+ Pong copy = (Pong) codec.decode(buff);
+ checkHeaders(message, copy);
+ assertEquals(message.getSessionID(), copy.getSessionID());
+ assertEquals(message.isSessionFailed(), copy.isSessionFailed());
+ }
+
+ public void testProducerFlowCreditMessagePacket() throws Exception
+ {
+ ProducerFlowCreditMessage message = new ProducerFlowCreditMessage(RandomUtil.randomInt());
+ setHeaders(message);
+ codec.encode(buff, message);
+ buff.rewind();
+ ProducerFlowCreditMessage copy = (ProducerFlowCreditMessage) codec.decode(buff);
+ checkHeaders(message, copy);
+ assertEquals(message.getTokens(), copy.getTokens());
+ }
+
+ public void testSessionAcknowledgeMessagePacket() throws Exception
+ {
+ SessionAcknowledgeMessage message = new SessionAcknowledgeMessage(RandomUtil.randomLong(), RandomUtil.randomBoolean());
+ setHeaders(message);
+ codec.encode(buff, message);
+ buff.rewind();
+ SessionAcknowledgeMessage copy = (SessionAcknowledgeMessage) codec.decode(buff);
+ checkHeaders(message, copy);
+ assertEquals(message.getDeliveryID(), copy.getDeliveryID());
+ assertEquals(message.isAllUpTo(), copy.isAllUpTo());
+ }
+
+ public void testSessionAddDestinationMessagePacket() throws Exception
+ {
+ SessionAddDestinationMessage message = new SessionAddDestinationMessage(RandomUtil.randomSimpleString(), RandomUtil.randomBoolean());
+ setHeaders(message);
+ codec.encode(buff, message);
+ buff.rewind();
+ SessionAddDestinationMessage copy = (SessionAddDestinationMessage) codec.decode(buff);
+ checkHeaders(message, copy);
+ assertEquals(message.getAddress(), copy.getAddress());
+ assertEquals(message.isTemporary(), copy.isTemporary());
+ }
+
+ public void testSessionBindingQueryMessagePacket() throws Exception
+ {
+ SessionBindingQueryMessage message = new SessionBindingQueryMessage(RandomUtil.randomSimpleString());
+ setHeaders(message);
+ codec.encode(buff, message);
+ buff.rewind();
+ SessionBindingQueryMessage copy = (SessionBindingQueryMessage) codec.decode(buff);
+ checkHeaders(message, copy);
+ assertEquals(message.getAddress(), copy.getAddress());
+ }
+
+ public void testSessionBindingQueryResponseMessagePacket() throws Exception
+ {
+
+ ArrayList<SimpleString> list = new ArrayList<SimpleString>();
+ list.add(RandomUtil.randomSimpleString());
+ SessionBindingQueryResponseMessage message = new SessionBindingQueryResponseMessage(RandomUtil.randomBoolean(), list);
+ setHeaders(message);
+ codec.encode(buff, message);
+ buff.rewind();
+ SessionBindingQueryResponseMessage copy = (SessionBindingQueryResponseMessage) codec.decode(buff);
+ checkHeaders(message, copy);
+ assertEquals(message.isExists(), copy.isExists());
+ assertEquals(message.getQueueNames().get(0), copy.getQueueNames().get(0));
+ assertEquals(1, message.getQueueNames().size());
+
+ }
+
+ public void testSessionBrowserHasNextMessageResponseMessagePacket() throws Exception
+ {
+ SessionBrowserHasNextMessageResponseMessage message = new SessionBrowserHasNextMessageResponseMessage(RandomUtil.randomBoolean());
+ setHeaders(message);
+ codec.encode(buff, message);
+ buff.rewind();
+ SessionBrowserHasNextMessageResponseMessage copy = (SessionBrowserHasNextMessageResponseMessage) codec.decode(buff);
+ checkHeaders(message, copy);
+ assertEquals(message.hasNext(), copy.hasNext());
+
+ }
+
+ public void testSessionCancelMessagePacket() throws Exception
+ {
+ SessionCancelMessage message = new SessionCancelMessage(RandomUtil.randomLong(), RandomUtil.randomBoolean());
+ setHeaders(message);
+ codec.encode(buff, message);
+ buff.rewind();
+ SessionCancelMessage copy = (SessionCancelMessage) codec.decode(buff);
+ checkHeaders(message, copy);
+ assertEquals(message.getDeliveryID(), copy.getDeliveryID());
+ assertEquals(message.isExpired(), copy.isExpired());
+
+ }
+
+ public void testSessionCreateBrowserMessagePacket() throws Exception
+ {
+ SessionCreateBrowserMessage message = new SessionCreateBrowserMessage(RandomUtil.randomSimpleString(), RandomUtil.randomSimpleString());
+ setHeaders(message);
+ codec.encode(buff, message);
+ buff.rewind();
+ SessionCreateBrowserMessage copy = (SessionCreateBrowserMessage) codec.decode(buff);
+ checkHeaders(message, copy);
+ assertEquals(message.getFilterString(), copy.getFilterString());
+ assertEquals(message.getQueueName(), copy.getQueueName());
+
+ }
+
+ public void testSessionCreateBrowserResponseMessagePacket() throws Exception
+ {
+ SessionCreateBrowserResponseMessage message = new SessionCreateBrowserResponseMessage(RandomUtil.randomLong());
+ setHeaders(message);
+ codec.encode(buff, message);
+ buff.rewind();
+ SessionCreateBrowserResponseMessage copy = (SessionCreateBrowserResponseMessage) codec.decode(buff);
+ checkHeaders(message, copy);
+ assertEquals(message.getBrowserTargetID(), copy.getBrowserTargetID());
+
+ }
+
+ public void testSessionCreateConsumerMessagePacket() throws Exception
+ {
+ SessionCreateConsumerMessage message = new SessionCreateConsumerMessage(RandomUtil.randomLong(),
+ RandomUtil.randomSimpleString(), RandomUtil.randomSimpleString(), RandomUtil.randomBoolean(), RandomUtil.randomBoolean(),
+ RandomUtil.randomInt(), RandomUtil.randomInt());
+ setHeaders(message);
+ codec.encode(buff, message);
+ buff.rewind();
+ SessionCreateConsumerMessage copy = (SessionCreateConsumerMessage) codec.decode(buff);
+ checkHeaders(message, copy);
+ assertEquals(message.getClientTargetID(), copy.getClientTargetID());
+ assertEquals(message.getFilterString(), copy.getFilterString());
+ assertEquals(message.getMaxRate(), copy.getMaxRate());
+ assertEquals(message.getQueueName(), copy.getQueueName());
+ assertEquals(message.getWindowSize(), copy.getWindowSize());
+ assertEquals(message.isAutoDeleteQueue(), copy.isAutoDeleteQueue());
+ assertEquals(message.isNoLocal(), copy.isNoLocal());
+
+ }
+
+ public void testSessionCreateConsumerResponseMessagePacket() throws Exception
+ {
+ SessionCreateConsumerResponseMessage message = new SessionCreateConsumerResponseMessage(RandomUtil.randomLong(), RandomUtil.randomInt());
+ setHeaders(message);
+ codec.encode(buff, message);
+ buff.rewind();
+ SessionCreateConsumerResponseMessage copy = (SessionCreateConsumerResponseMessage) codec.decode(buff);
+ checkHeaders(message, copy);
+ assertEquals(message.getConsumerTargetID(), copy.getConsumerTargetID());
+ assertEquals(message.getWindowSize(), copy.getWindowSize());
+
+ }
+
+ public void testSessionCreateProducerMessagePacket() throws Exception
+ {
+ SessionCreateProducerMessage message = new SessionCreateProducerMessage(RandomUtil.randomLong(),
+ RandomUtil.randomSimpleString(), RandomUtil.randomInt(), RandomUtil.randomInt());
+ setHeaders(message);
+ codec.encode(buff, message);
+ buff.rewind();
+ SessionCreateProducerMessage copy = (SessionCreateProducerMessage) codec.decode(buff);
+ checkHeaders(message, copy);
+ assertEquals(message.getAddress(), copy.getAddress());
+ assertEquals(message.getWindowSize(), copy.getWindowSize());
+ assertEquals(message.getClientTargetID(), copy.getClientTargetID());
+ assertEquals(message.getMaxRate(), copy.getMaxRate());
+
+ }
+
+ public void testSessionCreateProducerResponseMessagePacket() throws Exception
+ {
+ SessionCreateProducerResponseMessage message = new SessionCreateProducerResponseMessage(RandomUtil.randomLong(), RandomUtil.randomInt(),
+ RandomUtil.randomInt());
+ setHeaders(message);
+ codec.encode(buff, message);
+ buff.rewind();
+ SessionCreateProducerResponseMessage copy = (SessionCreateProducerResponseMessage) codec.decode(buff);
+ checkHeaders(message, copy);
+ assertEquals(message.getInitialCredits(), copy.getInitialCredits());
+ assertEquals(message.getProducerTargetID(), copy.getProducerTargetID());
+ assertEquals(message.getMaxRate(), copy.getMaxRate());
+
+ }
+
+ public void testSessionCreateQueueMessagePacket() throws Exception
+ {
+ SessionCreateQueueMessage message = new SessionCreateQueueMessage(RandomUtil.randomSimpleString(),
+ RandomUtil.randomSimpleString(),RandomUtil.randomSimpleString(), RandomUtil.randomBoolean(),RandomUtil.randomBoolean());
+ setHeaders(message);
+ codec.encode(buff, message);
+ buff.rewind();
+ SessionCreateQueueMessage copy = (SessionCreateQueueMessage) codec.decode(buff);
+ checkHeaders(message, copy);
+ assertEquals(message.getAddress(), copy.getAddress());
+ assertEquals(message.getFilterString(), copy.getFilterString());
+ assertEquals(message.getQueueName(), copy.getQueueName());
+ assertEquals(message.isDurable(), copy.isDurable());
+ assertEquals(message.isTemporary(), copy.isTemporary());
+ }
+
+ public void testSessionDeleteQueueMessagePacket() throws Exception
+ {
+ SessionDeleteQueueMessage message = new SessionDeleteQueueMessage(RandomUtil.randomSimpleString());
+ setHeaders(message);
+ codec.encode(buff, message);
+ buff.rewind();
+ SessionDeleteQueueMessage copy = (SessionDeleteQueueMessage) codec.decode(buff);
+ checkHeaders(message, copy);
+ assertEquals(message.getQueueName(), copy.getQueueName());
+ }
+
+ public void testSessionQueueQueryMessagePacket() throws Exception
+ {
+ SessionQueueQueryMessage message = new SessionQueueQueryMessage(RandomUtil.randomSimpleString());
+ setHeaders(message);
+ codec.encode(buff, message);
+ buff.rewind();
+ SessionQueueQueryMessage copy = (SessionQueueQueryMessage) codec.decode(buff);
+ checkHeaders(message, copy);
+ assertEquals(message.getQueueName(), copy.getQueueName());
+ }
+
+ public void testSessionQueueQueryResponseMessagePacket() throws Exception
+ {
+ SessionQueueQueryResponseMessage message = new SessionQueueQueryResponseMessage(RandomUtil.randomBoolean(),
+ RandomUtil.randomBoolean(), RandomUtil.randomInt(), RandomUtil.randomInt(), RandomUtil.randomInt(),
+ RandomUtil.randomSimpleString(),RandomUtil.randomSimpleString());
+ setHeaders(message);
+ codec.encode(buff, message);
+ buff.rewind();
+ SessionQueueQueryResponseMessage copy = (SessionQueueQueryResponseMessage) codec.decode(buff);
+ checkHeaders(message, copy);
+ assertEquals(message.getAddress(), copy.getAddress());
+ assertEquals(message.getConsumerCount(), copy.getConsumerCount());
+ assertEquals(message.getFilterString(), copy.getFilterString());
+ assertEquals(message.getMaxSize(), copy.getMaxSize());
+ assertEquals(message.getMessageCount(), copy.getMessageCount());
+ assertEquals(message.isDurable(), copy.isDurable());
+ assertEquals(message.isExists(), copy.isExists());
+ assertEquals(message.isTemporary(), copy.isTemporary());
+ }
+
+ public void testSessionRemoveDestinationMessagePacket() throws Exception
+ {
+ SessionRemoveDestinationMessage message = new SessionRemoveDestinationMessage(RandomUtil.randomSimpleString(), RandomUtil.randomBoolean());
+ setHeaders(message);
+ codec.encode(buff, message);
+ buff.rewind();
+ SessionRemoveDestinationMessage copy = (SessionRemoveDestinationMessage) codec.decode(buff);
+ checkHeaders(message, copy);
+ assertEquals(message.getAddress(), copy.getAddress());
+ assertEquals(message.isTemporary(), copy.isTemporary());
+ }
+
+ public void testSessionXACommitMessagePacket() throws Exception
+ {
+ SessionXACommitMessage message = new SessionXACommitMessage(new XidImpl(RandomUtil.randomBytes(), RandomUtil.randomInt(), RandomUtil.randomBytes()),
+ RandomUtil.randomBoolean());
+ setHeaders(message);
+ codec.encode(buff, message);
+ buff.rewind();
+ SessionXACommitMessage copy = (SessionXACommitMessage) codec.decode(buff);
+ checkHeaders(message, copy);
+ assertEquals(message.isOnePhase(), copy.isOnePhase());
+ assertByteArraysEquivalent(message.getXid().getBranchQualifier(), copy.getXid().getBranchQualifier());
+ assertEquals(message.getXid().getFormatId(), copy.getXid().getFormatId());
+ assertByteArraysEquivalent(message.getXid().getGlobalTransactionId(), copy.getXid().getGlobalTransactionId());
+ }
+
+ public void testSessionXAEndMessagePacket() throws Exception
+ {
+ SessionXAEndMessage message = new SessionXAEndMessage(new XidImpl(RandomUtil.randomBytes(), RandomUtil.randomInt(), RandomUtil.randomBytes()),
+ RandomUtil.randomBoolean());
+ setHeaders(message);
+ codec.encode(buff, message);
+ buff.rewind();
+ SessionXAEndMessage copy = (SessionXAEndMessage) codec.decode(buff);
+ checkHeaders(message, copy);
+ assertEquals(message.isFailed(), copy.isFailed());
+ assertByteArraysEquivalent(message.getXid().getBranchQualifier(), copy.getXid().getBranchQualifier());
+ assertEquals(message.getXid().getFormatId(), copy.getXid().getFormatId());
+ assertByteArraysEquivalent(message.getXid().getGlobalTransactionId(), copy.getXid().getGlobalTransactionId());
+ }
+
+ public void testSessionXAForgetMessagePacket() throws Exception
+ {
+ SessionXAForgetMessage message = new SessionXAForgetMessage(new XidImpl(RandomUtil.randomBytes(), RandomUtil.randomInt(), RandomUtil.randomBytes()));
+ setHeaders(message);
+ codec.encode(buff, message);
+ buff.rewind();
+ SessionXAForgetMessage copy = (SessionXAForgetMessage) codec.decode(buff);
+ checkHeaders(message, copy);
+ assertByteArraysEquivalent(message.getXid().getBranchQualifier(), copy.getXid().getBranchQualifier());
+ assertEquals(message.getXid().getFormatId(), copy.getXid().getFormatId());
+ assertByteArraysEquivalent(message.getXid().getGlobalTransactionId(), copy.getXid().getGlobalTransactionId());
+ }
+
+ public void testSessionXAGetInDoubtXidsResponseMessagePacket() throws Exception
+ {
+ XidImpl xids = new XidImpl(RandomUtil.randomBytes(), RandomUtil.randomInt(), RandomUtil.randomBytes());
+ ArrayList<Xid> list = new ArrayList<Xid>();
+ SessionXAGetInDoubtXidsResponseMessage message = new SessionXAGetInDoubtXidsResponseMessage(list);
+ list.add(xids);
+ setHeaders(message);
+ codec.encode(buff, message);
+ buff.rewind();
+ SessionXAGetInDoubtXidsResponseMessage copy = (SessionXAGetInDoubtXidsResponseMessage) codec.decode(buff);
+ checkHeaders(message, copy);
+ assertByteArraysEquivalent(message.getXids().get(0).getBranchQualifier(), copy.getXids().get(0).getBranchQualifier());
+ assertEquals(message.getXids().get(0).getFormatId(), copy.getXids().get(0).getFormatId());
+ assertByteArraysEquivalent(message.getXids().get(0).getGlobalTransactionId(), copy.getXids().get(0).getGlobalTransactionId());
+ assertEquals(1, message.getXids().size());
+ }
+
+ public void testSessionXAGetTimeoutResponseMessagePacket() throws Exception
+ {
+ SessionXAGetTimeoutResponseMessage message = new SessionXAGetTimeoutResponseMessage(RandomUtil.randomInt());
+ setHeaders(message);
+ codec.encode(buff, message);
+ buff.rewind();
+ SessionXAGetTimeoutResponseMessage copy = (SessionXAGetTimeoutResponseMessage) codec.decode(buff);
+ checkHeaders(message, copy);
+ assertEquals(message.getTimeoutSeconds(), copy.getTimeoutSeconds());
+ }
+
+ public void testSessionXAJoinMessagePacket() throws Exception
+ {
+ SessionXAJoinMessage message = new SessionXAJoinMessage(new XidImpl(RandomUtil.randomBytes(), RandomUtil.randomInt(), RandomUtil.randomBytes()));
+ setHeaders(message);
+ codec.encode(buff, message);
+ buff.rewind();
+ SessionXAJoinMessage copy = (SessionXAJoinMessage) codec.decode(buff);
+ checkHeaders(message, copy);
+ assertByteArraysEquivalent(message.getXid().getBranchQualifier(), copy.getXid().getBranchQualifier());
+ assertEquals(message.getXid().getFormatId(), copy.getXid().getFormatId());
+ assertByteArraysEquivalent(message.getXid().getGlobalTransactionId(), copy.getXid().getGlobalTransactionId());
+ }
+
+ public void testSessionXAPrepareMessagePacket() throws Exception
+ {
+ SessionXAPrepareMessage message = new SessionXAPrepareMessage(new XidImpl(RandomUtil.randomBytes(), RandomUtil.randomInt(), RandomUtil.randomBytes()));
+ setHeaders(message);
+ codec.encode(buff, message);
+ buff.rewind();
+ SessionXAPrepareMessage copy = (SessionXAPrepareMessage) codec.decode(buff);
+ checkHeaders(message, copy);
+ assertByteArraysEquivalent(message.getXid().getBranchQualifier(), copy.getXid().getBranchQualifier());
+ assertEquals(message.getXid().getFormatId(), copy.getXid().getFormatId());
+ assertByteArraysEquivalent(message.getXid().getGlobalTransactionId(), copy.getXid().getGlobalTransactionId());
+ }
+
+ public void testSessionXAResponseMessagePacket() throws Exception
+ {
+ SessionXAResponseMessage message = new SessionXAResponseMessage(RandomUtil.randomBoolean(), RandomUtil.randomInt(), RandomUtil.randomString());
+ setHeaders(message);
+ codec.encode(buff, message);
+ buff.rewind();
+ SessionXAResponseMessage copy = (SessionXAResponseMessage) codec.decode(buff);
+ checkHeaders(message, copy);
+ assertEquals(message.getMessage(), copy.getMessage());
+ assertEquals(message.getResponseCode(), copy.getResponseCode());
+ assertEquals(message.isError(), copy.isError());
+ }
+
+ public void testSessionXAResumeMessagePacket() throws Exception
+ {
+ SessionXAResumeMessage message = new SessionXAResumeMessage(new XidImpl(RandomUtil.randomBytes(), RandomUtil.randomInt(), RandomUtil.randomBytes()));
+ setHeaders(message);
+ codec.encode(buff, message);
+ buff.rewind();
+ SessionXAResumeMessage copy = (SessionXAResumeMessage) codec.decode(buff);
+ checkHeaders(message, copy);
+ assertByteArraysEquivalent(message.getXid().getBranchQualifier(), copy.getXid().getBranchQualifier());
+ assertEquals(message.getXid().getFormatId(), copy.getXid().getFormatId());
+ assertByteArraysEquivalent(message.getXid().getGlobalTransactionId(), copy.getXid().getGlobalTransactionId());
+ }
+
+ public void testSessionXARollbackMessagePacket() throws Exception
+ {
+ SessionXARollbackMessage message = new SessionXARollbackMessage(new XidImpl(RandomUtil.randomBytes(), RandomUtil.randomInt(), RandomUtil.randomBytes()));
+ setHeaders(message);
+ codec.encode(buff, message);
+ buff.rewind();
+ SessionXARollbackMessage copy = (SessionXARollbackMessage) codec.decode(buff);
+ checkHeaders(message, copy);
+ assertByteArraysEquivalent(message.getXid().getBranchQualifier(), copy.getXid().getBranchQualifier());
+ assertEquals(message.getXid().getFormatId(), copy.getXid().getFormatId());
+ assertByteArraysEquivalent(message.getXid().getGlobalTransactionId(), copy.getXid().getGlobalTransactionId());
+ }
+
+ public void testSessionXASetTimeoutMessagePacket() throws Exception
+ {
+ SessionXASetTimeoutMessage message = new SessionXASetTimeoutMessage(RandomUtil.randomInt());
+ setHeaders(message);
+ codec.encode(buff, message);
+ buff.rewind();
+ SessionXASetTimeoutMessage copy = (SessionXASetTimeoutMessage) codec.decode(buff);
+ checkHeaders(message, copy);
+ assertEquals(message.getTimeoutSeconds(), copy.getTimeoutSeconds());
+ }
+
+ public void testSessionXASetTimeoutResponseMessagePacket() throws Exception
+ {
+ SessionXASetTimeoutResponseMessage message = new SessionXASetTimeoutResponseMessage(RandomUtil.randomBoolean());
+ setHeaders(message);
+ codec.encode(buff, message);
+ buff.rewind();
+ SessionXASetTimeoutResponseMessage copy = (SessionXASetTimeoutResponseMessage) codec.decode(buff);
+ checkHeaders(message, copy);
+ assertEquals(message.isOK(), copy.isOK());
+ }
+
+ public void testSessionXAStartMessagePacket() throws Exception
+ {
+ SessionXAStartMessage message = new SessionXAStartMessage(new XidImpl(RandomUtil.randomBytes(), RandomUtil.randomInt(), RandomUtil.randomBytes()));
+ setHeaders(message);
+ codec.encode(buff, message);
+ buff.rewind();
+ SessionXAStartMessage copy = (SessionXAStartMessage) codec.decode(buff);
+ checkHeaders(message, copy);
+ assertByteArraysEquivalent(message.getXid().getBranchQualifier(), copy.getXid().getBranchQualifier());
+ assertEquals(message.getXid().getFormatId(), copy.getXid().getFormatId());
+ assertByteArraysEquivalent(message.getXid().getGlobalTransactionId(), copy.getXid().getGlobalTransactionId());
+ }
+
+ private void setHeaders(EmptyPacket packet)
+ {
+ packet.setExecutorID(RandomUtil.randomLong());
+ packet.setResponseTargetID(RandomUtil.randomLong());
+ packet.setTargetID(RandomUtil.randomLong());
+ }
+
+ private void checkHeaders(EmptyPacket emptyPacket, EmptyPacket emptyPacket2)
+ {
+ assertEquals(emptyPacket.getExecutorID(), emptyPacket2.getExecutorID());
+ assertEquals(emptyPacket.getResponseTargetID(), emptyPacket2.getResponseTargetID());
+ assertEquals(emptyPacket.getTargetID(), emptyPacket2.getTargetID());
+ }
+}
Copied: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/mina/MinaProtocolCodecFilterTest.java (from rev 4459, trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/wireformat/PacketTypeTest.java)
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/mina/MinaProtocolCodecFilterTest.java (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/mina/MinaProtocolCodecFilterTest.java 2008-06-14 08:35:15 UTC (rev 4471)
@@ -0,0 +1,1042 @@
+/*
+ * JBoss, Home of Professional Open Source
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package org.jboss.messaging.tests.unit.core.remoting.impl.mina;
+
+import org.apache.mina.common.IoBuffer;
+import org.apache.mina.filter.codec.ProtocolDecoderOutput;
+import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.remoting.Packet;
+import org.jboss.messaging.core.remoting.impl.mina.IoBufferWrapper;
+import org.jboss.messaging.core.remoting.impl.mina.MinaProtocolCodecFilter;
+import org.jboss.messaging.core.remoting.impl.wireformat.*;
+import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.*;
+import org.jboss.messaging.core.version.impl.VersionImpl;
+import org.jboss.messaging.tests.unit.core.remoting.impl.CodecAssert;
+import static org.jboss.messaging.tests.unit.core.remoting.impl.CodecAssert.assertSameXids;
+import static org.jboss.messaging.tests.util.RandomUtil.*;
+import org.jboss.messaging.tests.util.UnitTestCase;
+import static org.jboss.messaging.util.DataConstants.SIZE_BYTE;
+import static org.jboss.messaging.util.DataConstants.SIZE_LONG;
+import org.jboss.messaging.util.MessagingBuffer;
+import org.jboss.messaging.util.SimpleString;
+
+import javax.transaction.xa.Xid;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ *
+ * FIXME - tidy up tests so test names match the actual packets
+ *
+ * @version <tt>$Revision$</tt>
+ */
+public class MinaProtocolCodecFilterTest extends UnitTestCase
+{
+
+ // Constants -----------------------------------------------------
+
+ private static final Logger log = Logger.getLogger(MinaProtocolCodecFilterTest.class);
+
+ // Attributes ----------------------------------------------------
+
+ // Static --------------------------------------------------------
+
+ private static MessagingBuffer encode(int length, Object... args)
+ throws Exception
+ {
+ IoBufferWrapper buffer = new IoBufferWrapper(length);
+ for (Object arg : args)
+ {
+ if (arg instanceof Byte)
+ buffer.putByte(((Byte) arg).byteValue());
+ else if (arg instanceof Boolean)
+ {
+ Boolean bool = (Boolean) arg;
+ buffer.putBoolean(bool);
+ } else if (arg instanceof Integer)
+ buffer.putInt(((Integer) arg).intValue());
+ else if (arg instanceof Long)
+ buffer.putLong(((Long) arg).longValue());
+ else if (arg instanceof Float)
+ buffer.putFloat(((Float) arg).floatValue());
+ else if (arg instanceof String)
+ buffer.putNullableString((String) arg);
+ else if (arg instanceof SimpleString)
+ buffer.putSimpleString((SimpleString) arg);
+ else if (arg instanceof NullableStringHolder)
+ buffer.putNullableSimpleString(((NullableStringHolder) arg).str);
+ else if (arg == null)
+ buffer.putNullableString(null);
+ else if (arg instanceof byte[])
+ {
+ byte[] b = (byte[]) arg;
+ buffer.putInt(b.length);
+ buffer.putBytes(b);
+ } else if (arg instanceof long[])
+ {
+ long[] longs = (long[]) arg;
+ for (long l : longs)
+ {
+ buffer.putLong(l);
+ }
+ } else if (arg instanceof List)
+ {
+ List argsInList = (List) arg;
+ buffer.putInt(argsInList.size());
+ for (Object argInList : argsInList)
+ {
+ if (argInList instanceof SimpleString)
+ buffer.putSimpleString((SimpleString) argInList);
+ else if (argInList instanceof Xid)
+ XidCodecSupport.encodeXid((Xid) argInList, buffer);
+ else
+ fail("no encoding defined for " + arg + " in List");
+ }
+ } else if (arg instanceof Xid)
+ {
+ Xid xid = (Xid) arg;
+ XidCodecSupport.encodeXid(xid, buffer);
+ } else if (arg instanceof MessagingException)
+ {
+ MessagingException exception = (MessagingException) arg;
+ buffer.putInt(exception.getCode());
+ buffer.putNullableString(exception.getMessage());
+ } else
+ {
+ fail("no encoding defined for " + arg);
+ }
+ }
+ buffer.flip();
+ return buffer;
+ }
+
+ private static void checkHeader(final MessagingBuffer buffer,
+ final Packet packet) throws Exception
+ {
+ assertEquals(buffer.getByte(), packet.getType());
+
+ long responseTargetID = buffer.getLong();
+ long targetID = buffer.getLong();
+ long executorID = buffer.getLong();
+
+ assertEquals(packet.getResponseTargetID(), responseTargetID);
+ assertEquals(packet.getTargetID(), targetID);
+ assertEquals(packet.getExecutorID(), executorID);
+ }
+
+ private static void checkBody(MessagingBuffer buffer, int bodyLength,
+ Object... bodyObjects) throws Exception
+ {
+ byte[] actualBody = new byte[bodyLength];
+ buffer.getBytes(actualBody);
+ MessagingBuffer expectedBody = encode(actualBody.length, bodyObjects);
+ CodecAssert.assertEqualsByteArrays(bodyLength, expectedBody.array(), actualBody);
+ // check the buffer has been wholly read
+ assertEquals(0, buffer.remaining());
+ }
+
+ private static Packet encodeAndCheckBytesAndDecode(Packet packet,
+ Object... bodyObjects) throws Exception
+ {
+ MessagingBuffer buffer = encode(packet);
+ int packetLength = buffer.getInt();
+ checkHeader(buffer, packet);
+ int bodyLength = packetLength - (SIZE_BYTE + 3 * SIZE_LONG);
+ checkBody(buffer, bodyLength, bodyObjects);
+ buffer.rewind();
+
+ SimpleProtocolDecoderOutput out = new SimpleProtocolDecoderOutput();
+ MinaProtocolCodecFilter codec = new MinaProtocolCodecFilter();
+ codec.doDecode(null, IoBuffer.wrap(buffer.array()), out);
+ Object message = out.getMessage();
+ assertTrue(message instanceof Packet);
+
+ log.info("encoded and decoded " + packet);
+
+ return (Packet) message;
+ }
+
+ private static MessagingBuffer encode(final Packet packet) throws Exception
+ {
+ MessagingBuffer buffer = new IoBufferWrapper(512);
+ packet.encode(buffer);
+
+ assertNotNull(buffer);
+
+ return buffer;
+ }
+
+ // Constructors --------------------------------------------------
+
+ // Public --------------------------------------------------------
+
+ public void testNullPacket() throws Exception
+ {
+ Packet packet = new EmptyPacket(NULL);
+ packet.setResponseTargetID(randomLong());
+ packet.setTargetID(randomLong());
+ packet.setExecutorID(randomLong());
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(packet);
+
+ assertTrue(decodedPacket instanceof EmptyPacket);
+ assertEquals(NULL, decodedPacket.getType());
+ assertEquals(packet.getResponseTargetID(), decodedPacket
+ .getResponseTargetID());
+ assertEquals(packet.getTargetID(), decodedPacket.getTargetID());
+ assertEquals(packet.getExecutorID(), decodedPacket.getExecutorID());
+ }
+
+ public void testPing() throws Exception
+ {
+ Ping ping = new Ping(randomLong());
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(ping, ping
+ .getSessionID());
+
+ assertTrue(decodedPacket instanceof Ping);
+ Ping decodedPing = (Ping) decodedPacket;
+ assertEquals(PING, decodedPing.getType());
+ assertEquals(ping.getResponseTargetID(), decodedPacket
+ .getResponseTargetID());
+ assertEquals(ping.getTargetID(), decodedPacket.getTargetID());
+ assertEquals(ping.getExecutorID(), decodedPacket.getExecutorID());
+ }
+
+ public void testPong() throws Exception
+ {
+ Pong pong = new Pong(randomLong(), true);
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(pong, pong
+ .getSessionID(), pong.isSessionFailed());
+
+ assertTrue(decodedPacket instanceof Pong);
+ Pong decodedPong = (Pong) decodedPacket;
+ assertEquals(PONG, decodedPong.getType());
+ assertEquals(pong.getSessionID(), decodedPong.getSessionID());
+ assertEquals(pong.isSessionFailed(), decodedPong.isSessionFailed());
+ }
+
+ public void testMessagingExceptionMessage() throws Exception
+ {
+ MessagingExceptionMessage message = new MessagingExceptionMessage(new MessagingException(MessagingException.ILLEGAL_STATE));
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, message.getException());
+
+ assertTrue(decodedPacket instanceof MessagingExceptionMessage);
+ MessagingExceptionMessage decodedMessage = (MessagingExceptionMessage) decodedPacket;
+ assertEquals(EXCEPTION, decodedMessage.getType());
+ assertEquals(message.getException().getCode(), decodedMessage.getException().getCode());
+ }
+
+ public void testCreateConnectionRequest() throws Exception
+ {
+ int version = randomInt();
+ long remotingSessionID = randomLong();
+ String username = null;
+ String password = null;
+ CreateConnectionRequest request = new CreateConnectionRequest(version,
+ remotingSessionID, username, password);
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(request, version,
+ remotingSessionID, username, password);
+
+ assertTrue(decodedPacket instanceof CreateConnectionRequest);
+ CreateConnectionRequest decodedRequest = (CreateConnectionRequest) decodedPacket;
+
+ assertEquals(CREATECONNECTION, decodedPacket.getType());
+ assertEquals(request.getVersion(), decodedRequest.getVersion());
+ assertEquals(request.getRemotingSessionID(), decodedRequest
+ .getRemotingSessionID());
+ assertEquals(request.getUsername(), decodedRequest.getUsername());
+ assertEquals(request.getPassword(), decodedRequest.getPassword());
+ }
+
+ public void testCreateConnectionResponse() throws Exception
+ {
+ CreateConnectionResponse response = new CreateConnectionResponse(
+ randomLong(), new VersionImpl("test", 1, 2, 3, 4, "xxx"));
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(response, response
+ .getConnectionTargetID(), response.getServerVersion()
+ .getVersionName(), response.getServerVersion().getMajorVersion(),
+ response.getServerVersion().getMinorVersion(), response
+ .getServerVersion().getMicroVersion(), response
+ .getServerVersion().getIncrementingVersion(), response
+ .getServerVersion().getVersionSuffix());
+
+ assertTrue(decodedPacket instanceof CreateConnectionResponse);
+ CreateConnectionResponse decodedResponse = (CreateConnectionResponse) decodedPacket;
+ assertEquals(CREATECONNECTION_RESP, decodedResponse.getType());
+ assertEquals(response.getConnectionTargetID(), decodedResponse
+ .getConnectionTargetID());
+ assertEquals(response.getServerVersion().getFullVersion(),
+ decodedResponse.getServerVersion().getFullVersion());
+ }
+
+ public void testConnectionCreateSessionMessage() throws Exception
+ {
+ ConnectionCreateSessionMessage request = new ConnectionCreateSessionMessage(
+ randomBoolean(), randomBoolean(), randomBoolean());
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(request, request
+ .isXA(), request.isAutoCommitSends(), request.isAutoCommitAcks());
+
+ assertTrue(decodedPacket instanceof ConnectionCreateSessionMessage);
+ ConnectionCreateSessionMessage decodedRequest = (ConnectionCreateSessionMessage) decodedPacket;
+ assertEquals(CONN_CREATESESSION, decodedRequest.getType());
+ assertEquals(request.isXA(), decodedRequest.isXA());
+ assertEquals(request.isAutoCommitSends(), decodedRequest
+ .isAutoCommitSends());
+ assertEquals(request.isAutoCommitAcks(), decodedRequest
+ .isAutoCommitAcks());
+ }
+
+ public void testConnectionCreateSessionResponseMessage() throws Exception
+ {
+ ConnectionCreateSessionResponseMessage response = new ConnectionCreateSessionResponseMessage(
+ randomLong());
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(response, response
+ .getSessionID());
+
+ assertTrue(decodedPacket instanceof ConnectionCreateSessionResponseMessage);
+ ConnectionCreateSessionResponseMessage decodedResponse = (ConnectionCreateSessionResponseMessage) decodedPacket;
+ assertEquals(CONN_CREATESESSION_RESP, decodedResponse.getType());
+ assertEquals(response.getSessionID(), decodedResponse.getSessionID());
+ }
+
+ /*
+ * public void testProducerSendMessage() throws Exception { Message msg = new
+ * MessageImpl((byte)1, false, 1212212L, 761276712L, (byte)1);
+ * msg.setDestination(new SimpleString("blah")); ProducerSendMessage packet =
+ * new ProducerSendMessage(msg); MessagingBuffer buff =
+ * packet.getMessage().encode();
+ *
+ * Message msg2 = new MessageImpl(); msg2.decode(buff);
+ *
+ *
+ * byte[] messageBytes = buff.array(); byte[] data = new byte[buff.limit()];
+ * System.arraycopy(messageBytes, 0, data, 0, buff.limit());
+ * AbstractPacketCodec codec = new ProducerSendMessageCodec();
+ *
+ * Packet decodedPacket = encodeAndCheckBytesAndDecode(packet, data);
+ *
+ * assertTrue(decodedPacket instanceof ProducerSendMessage);
+ * ProducerSendMessage decodedMessage = (ProducerSendMessage) decodedPacket;
+ * assertEquals(PacketType.PROD_SEND, decodedPacket.getType());
+ * assertEquals(packet.getMessage().getMessageID(), decodedMessage
+ * .getMessage().getMessageID()); }
+ */
+
+ public void testSessionCreateConsumerMessage() throws Exception
+ {
+ SimpleString destination = new SimpleString(
+ "queue.SessionCreateConsumerMessage");
+ SessionCreateConsumerMessage request = new SessionCreateConsumerMessage(
+ randomLong(), destination, new SimpleString("color = 'red'"),
+ false, false, randomInt(), randomInt());
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(request, request
+ .getClientTargetID(), request.getQueueName(),
+ new NullableStringHolder(request.getFilterString()), request
+ .isNoLocal(), request.isAutoDeleteQueue(), request
+ .getWindowSize(), request.getMaxRate());
+
+ assertTrue(decodedPacket instanceof SessionCreateConsumerMessage);
+ SessionCreateConsumerMessage decodedRequest = (SessionCreateConsumerMessage) decodedPacket;
+ assertEquals(SESS_CREATECONSUMER, decodedRequest.getType());
+ assertEquals(request.getClientTargetID(), decodedRequest
+ .getClientTargetID());
+ assertEquals(request.getQueueName(), decodedRequest.getQueueName());
+ assertEquals(request.getFilterString(), decodedRequest.getFilterString());
+ assertEquals(request.isNoLocal(), decodedRequest.isNoLocal());
+ assertEquals(request.isAutoDeleteQueue(), decodedRequest
+ .isAutoDeleteQueue());
+ assertEquals(request.getWindowSize(), decodedRequest.getWindowSize());
+ assertEquals(request.getMaxRate(), decodedRequest.getMaxRate());
+ }
+
+ public void testSessionCreateConsumerResponseMessage() throws Exception
+ {
+ SessionCreateConsumerResponseMessage response = new SessionCreateConsumerResponseMessage(
+ randomLong(), randomInt());
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(response, response
+ .getConsumerTargetID(), response.getWindowSize());
+
+ assertTrue(decodedPacket instanceof SessionCreateConsumerResponseMessage);
+ SessionCreateConsumerResponseMessage decodedResponse = (SessionCreateConsumerResponseMessage) decodedPacket;
+ assertEquals(SESS_CREATECONSUMER_RESP, decodedResponse.getType());
+
+ assertEquals(response.getConsumerTargetID(), decodedResponse
+ .getConsumerTargetID());
+ assertEquals(response.getWindowSize(), decodedResponse.getWindowSize());
+ }
+
+ public void testSessionCreateProducerMessage() throws Exception
+ {
+ SimpleString destination = new SimpleString(
+ "queue.testSessionCreateProducerMessage");
+ int windowSize = randomInt();
+ int maxRate = randomInt();
+ SessionCreateProducerMessage request = new SessionCreateProducerMessage(
+ randomLong(), destination, windowSize, maxRate);
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(request, request
+ .getClientTargetID(),
+ new NullableStringHolder(request.getAddress()), request
+ .getWindowSize(), request.getMaxRate());
+
+ assertTrue(decodedPacket instanceof SessionCreateProducerMessage);
+ SessionCreateProducerMessage decodedRequest = (SessionCreateProducerMessage) decodedPacket;
+ assertEquals(SESS_CREATEPRODUCER, decodedRequest.getType());
+ assertEquals(request.getClientTargetID(), decodedRequest
+ .getClientTargetID());
+ assertEquals(request.getAddress(), decodedRequest.getAddress());
+ assertEquals(request.getWindowSize(), decodedRequest.getWindowSize());
+ assertEquals(request.getMaxRate(), decodedRequest.getMaxRate());
+ }
+
+ public void testSessionCreateProducerResponseMessage() throws Exception
+ {
+ SessionCreateProducerResponseMessage response = new SessionCreateProducerResponseMessage(
+ randomLong(), randomInt(), randomInt());
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(response, response
+ .getProducerTargetID(), response.getInitialCredits(), response
+ .getMaxRate());
+
+ assertTrue(decodedPacket instanceof SessionCreateProducerResponseMessage);
+ SessionCreateProducerResponseMessage decodedResponse = (SessionCreateProducerResponseMessage) decodedPacket;
+ assertEquals(SESS_CREATEPRODUCER_RESP, decodedResponse.getType());
+ assertEquals(response.getProducerTargetID(), decodedResponse
+ .getProducerTargetID());
+ assertEquals(response.getInitialCredits(), decodedResponse.getInitialCredits());
+ assertEquals(response.getMaxRate(), decodedResponse.getMaxRate());
+ }
+
+ public void testStartConnectionMessage() throws Exception
+ {
+ Packet packet = new EmptyPacket(CONN_START);
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(packet);
+
+ assertEquals(CONN_START, decodedPacket.getType());
+ }
+
+ public void testStopConnectionMessage() throws Exception
+ {
+ Packet packet = new EmptyPacket(CONN_STOP);
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(packet);
+
+ assertEquals(CONN_STOP, decodedPacket.getType());
+ }
+
+ public void testConsumerFlowCreditMessage() throws Exception
+ {
+ ConsumerFlowCreditMessage message = new ConsumerFlowCreditMessage(
+ randomInt());
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, message
+ .getTokens());
+
+ assertTrue(decodedPacket instanceof ConsumerFlowCreditMessage);
+ ConsumerFlowCreditMessage decodedMessage = (ConsumerFlowCreditMessage) decodedPacket;
+ assertEquals(CONS_FLOWTOKEN, decodedMessage.getType());
+ assertEquals(message.getTokens(), decodedMessage.getTokens());
+ }
+
+ public void testProducerReceiveTokensMessage() throws Exception
+ {
+ ProducerFlowCreditMessage message = new ProducerFlowCreditMessage(
+ randomInt());
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, message
+ .getTokens());
+
+ assertTrue(decodedPacket instanceof ProducerFlowCreditMessage);
+ ProducerFlowCreditMessage decodedMessage = (ProducerFlowCreditMessage) decodedPacket;
+ assertEquals(PROD_RECEIVETOKENS, decodedMessage.getType());
+ assertEquals(message.getTokens(), decodedMessage.getTokens());
+ }
+
+ /*
+ * public void testReceiveMessage() throws Exception { Message msg = new
+ * MessageImpl(); ReceiveMessage message = new ReceiveMessage(msg);
+ * AbstractPacketCodec codec = new ReceiveMessageCodec();
+ *
+ * byte[] messageBytes = message.getMessage().encode().array();
+ *
+ * Packet decodedPacket = encodeAndCheckBytesAndDecode(message,
+ * messageBytes);
+ *
+ * assertTrue(decodedPacket instanceof ReceiveMessage); ReceiveMessage
+ * decodedMessage = (ReceiveMessage) decodedPacket; assertEquals(RECEIVE_MSG,
+ * decodedMessage.getType());
+ * assertEquals(message.getMessage().getMessageID(), decodedMessage
+ * .getMessage().getMessageID()); }
+ */
+
+ public void testSessionAcknowledgeMessage() throws Exception
+ {
+ SessionAcknowledgeMessage message = new SessionAcknowledgeMessage(
+ randomLong(), randomBoolean());
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, message
+ .getDeliveryID(), message.isAllUpTo());
+
+ assertTrue(decodedPacket instanceof SessionAcknowledgeMessage);
+ SessionAcknowledgeMessage decodedMessage = (SessionAcknowledgeMessage) decodedPacket;
+ assertEquals(SESS_ACKNOWLEDGE, decodedMessage.getType());
+ assertEquals(message.getDeliveryID(), decodedMessage.getDeliveryID());
+ assertEquals(message.isAllUpTo(), decodedMessage.isAllUpTo());
+ }
+
+ public void testSessionCancelMessage() throws Exception
+ {
+ SessionCancelMessage message = new SessionCancelMessage(randomLong(),
+ randomBoolean());
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, message
+ .getDeliveryID(), message.isExpired());
+
+ assertTrue(decodedPacket instanceof SessionCancelMessage);
+ SessionCancelMessage decodedMessage = (SessionCancelMessage) decodedPacket;
+ assertEquals(SESS_CANCEL, decodedMessage.getType());
+ assertEquals(message.getDeliveryID(), decodedMessage.getDeliveryID());
+ assertEquals(message.isExpired(), decodedMessage.isExpired());
+ }
+
+ public void testSessionCommitMessage() throws Exception
+ {
+ Packet message = new EmptyPacket(SESS_COMMIT);
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message);
+
+ assertEquals(SESS_COMMIT, decodedPacket.getType());
+ }
+
+ public void testSessionRollbackMessage() throws Exception
+ {
+ Packet message = new EmptyPacket(SESS_ROLLBACK);
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message);
+
+ assertEquals(SESS_ROLLBACK, decodedPacket.getType());
+ }
+
+ public void testSessionRecoverMessage() throws Exception
+ {
+ Packet message = new EmptyPacket(SESS_RECOVER);
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message);
+
+ assertEquals(SESS_RECOVER, decodedPacket.getType());
+ }
+
+ public void testCloseMessage() throws Exception
+ {
+ Packet message = new EmptyPacket(CLOSE);
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message);
+
+ assertEquals(CLOSE, decodedPacket.getType());
+ }
+
+ public void testSessionCreateBrowserMessage() throws Exception
+ {
+ SimpleString destination = new SimpleString(
+ "queue.testCreateBrowserRequest");
+ SessionCreateBrowserMessage request = new SessionCreateBrowserMessage(
+ destination, new SimpleString("color = 'red'"));
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(request, request
+ .getQueueName(),
+ new NullableStringHolder(request.getFilterString()));
+
+ assertTrue(decodedPacket instanceof SessionCreateBrowserMessage);
+ SessionCreateBrowserMessage decodedRequest = (SessionCreateBrowserMessage) decodedPacket;
+ assertEquals(SESS_CREATEBROWSER, decodedRequest.getType());
+ assertEquals(request.getQueueName(), decodedRequest.getQueueName());
+ assertEquals(request.getFilterString(), decodedRequest.getFilterString());
+ }
+
+ public void testSessionCreateBrowserResponseMessage() throws Exception
+ {
+ SessionCreateBrowserResponseMessage response = new SessionCreateBrowserResponseMessage(
+ randomLong());
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(response, response
+ .getBrowserTargetID());
+
+ assertTrue(decodedPacket instanceof SessionCreateBrowserResponseMessage);
+ SessionCreateBrowserResponseMessage decodedResponse = (SessionCreateBrowserResponseMessage) decodedPacket;
+ assertEquals(SESS_CREATEBROWSER_RESP, decodedResponse.getType());
+ assertEquals(response.getBrowserTargetID(), decodedResponse
+ .getBrowserTargetID());
+ }
+
+ public void testBrowserResetMessage() throws Exception
+ {
+ Packet message = new EmptyPacket(SESS_BROWSER_RESET);
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message);
+
+ assertEquals(SESS_BROWSER_RESET, decodedPacket.getType());
+ }
+
+ public void testBrowserHasNextMessageRequest() throws Exception
+ {
+ Packet request = new EmptyPacket(SESS_BROWSER_HASNEXTMESSAGE);
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(request);
+
+ assertEquals(SESS_BROWSER_HASNEXTMESSAGE, decodedPacket.getType());
+ }
+
+ public void testSessionBrowserHasNextMessageResponseMessage()
+ throws Exception
+ {
+ SessionBrowserHasNextMessageResponseMessage response = new SessionBrowserHasNextMessageResponseMessage(
+ randomBoolean());
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(response, response
+ .hasNext());
+
+ assertTrue(decodedPacket instanceof SessionBrowserHasNextMessageResponseMessage);
+ SessionBrowserHasNextMessageResponseMessage decodedResponse = (SessionBrowserHasNextMessageResponseMessage) decodedPacket;
+ assertEquals(SESS_BROWSER_HASNEXTMESSAGE_RESP, decodedResponse.getType());
+ assertEquals(response.hasNext(), decodedResponse.hasNext());
+ }
+
+ public void testBrowserNextMessageRequest() throws Exception
+ {
+ Packet request = new EmptyPacket(SESS_BROWSER_NEXTMESSAGE);
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(request);
+
+ assertEquals(SESS_BROWSER_NEXTMESSAGE, decodedPacket.getType());
+ }
+
+ public void testSessionXACommitMessage() throws Exception
+ {
+ SessionXACommitMessage message = new SessionXACommitMessage(randomXid(),
+ randomBoolean());
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, message
+ .getXid(), message.isOnePhase());
+
+ assertTrue(decodedPacket instanceof SessionXACommitMessage);
+ SessionXACommitMessage decodedMessage = (SessionXACommitMessage) decodedPacket;
+ assertEquals(SESS_XA_COMMIT, decodedMessage.getType());
+ assertEquals(message.getXid(), decodedMessage.getXid());
+ assertEquals(message.isOnePhase(), decodedMessage.isOnePhase());
+ }
+
+ public void testSessionXAEndMessage() throws Exception
+ {
+ SessionXAEndMessage message = new SessionXAEndMessage(randomXid(),
+ randomBoolean());
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, message
+ .getXid(), message.isFailed());
+
+ assertTrue(decodedPacket instanceof SessionXAEndMessage);
+ SessionXAEndMessage decodedMessage = (SessionXAEndMessage) decodedPacket;
+ assertEquals(SESS_XA_END, decodedMessage.getType());
+ assertEquals(message.getXid(), decodedMessage.getXid());
+ assertEquals(message.isFailed(), decodedMessage.isFailed());
+ }
+
+ public void testSessionXAForgetMessage() throws Exception
+ {
+ SessionXAForgetMessage message = new SessionXAForgetMessage(randomXid());
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, message
+ .getXid());
+
+ assertTrue(decodedPacket instanceof SessionXAForgetMessage);
+ SessionXAForgetMessage decodedMessage = (SessionXAForgetMessage) decodedPacket;
+ assertEquals(SESS_XA_FORGET, decodedMessage.getType());
+ assertEquals(message.getXid(), decodedMessage.getXid());
+ }
+
+ public void testSessionXAGetInDoubtXidsMessage() throws Exception
+ {
+ Packet request = new EmptyPacket(SESS_XA_INDOUBT_XIDS);
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(request);
+
+ assertEquals(SESS_XA_INDOUBT_XIDS, decodedPacket.getType());
+ }
+
+ public void testSessionXAGetInDoubtXidsResponseMessage() throws Exception
+ {
+ final int numXids = 10;
+ List<Xid> xids = new ArrayList<Xid>();
+ for (int i = 0; i < numXids; i++)
+ {
+ xids.add(randomXid());
+ }
+ SessionXAGetInDoubtXidsResponseMessage message = new SessionXAGetInDoubtXidsResponseMessage(
+ xids);
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, xids);
+
+ assertTrue(decodedPacket instanceof SessionXAGetInDoubtXidsResponseMessage);
+ SessionXAGetInDoubtXidsResponseMessage decodedMessage = (SessionXAGetInDoubtXidsResponseMessage) decodedPacket;
+ assertEquals(SESS_XA_INDOUBT_XIDS_RESP, decodedMessage.getType());
+
+ assertSameXids(message.getXids(), decodedMessage.getXids());
+ }
+
+ public void testSessionXAGetTimeoutMessage() throws Exception
+ {
+ Packet message = new EmptyPacket(SESS_XA_GET_TIMEOUT);
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message);
+
+ assertEquals(SESS_XA_GET_TIMEOUT, decodedPacket.getType());
+ }
+
+ public void testSessionXAGetTimeoutResponseMessage() throws Exception
+ {
+ SessionXAGetTimeoutResponseMessage message = new SessionXAGetTimeoutResponseMessage(
+ randomInt());
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, message
+ .getTimeoutSeconds());
+
+ assertTrue(decodedPacket instanceof SessionXAGetTimeoutResponseMessage);
+ SessionXAGetTimeoutResponseMessage decodedMessage = (SessionXAGetTimeoutResponseMessage) decodedPacket;
+ assertEquals(SESS_XA_GET_TIMEOUT_RESP, decodedMessage.getType());
+ assertEquals(message.getTimeoutSeconds(), decodedMessage
+ .getTimeoutSeconds());
+ }
+
+ public void testSessionXAJoinMessage() throws Exception
+ {
+ SessionXAJoinMessage message = new SessionXAJoinMessage(randomXid());
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, message
+ .getXid());
+
+ assertTrue(decodedPacket instanceof SessionXAJoinMessage);
+ SessionXAJoinMessage decodedMessage = (SessionXAJoinMessage) decodedPacket;
+ assertEquals(SESS_XA_JOIN, decodedMessage.getType());
+ assertEquals(message.getXid(), decodedMessage.getXid());
+ }
+
+ public void testSessionXAPrepareMessage() throws Exception
+ {
+ SessionXAPrepareMessage message = new SessionXAPrepareMessage(randomXid());
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, message
+ .getXid());
+
+ assertTrue(decodedPacket instanceof SessionXAPrepareMessage);
+ SessionXAPrepareMessage decodedMessage = (SessionXAPrepareMessage) decodedPacket;
+ assertEquals(SESS_XA_PREPARE, decodedMessage.getType());
+ assertEquals(message.getXid(), decodedMessage.getXid());
+ }
+
+ public void testSessionXAResponseMessage() throws Exception
+ {
+ SessionXAResponseMessage message = new SessionXAResponseMessage(
+ randomBoolean(), randomInt(), randomString());
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, message
+ .isError(), message.getResponseCode(), message.getMessage());
+
+ assertTrue(decodedPacket instanceof SessionXAResponseMessage);
+ SessionXAResponseMessage decodedMessage = (SessionXAResponseMessage) decodedPacket;
+ assertEquals(SESS_XA_RESP, decodedMessage.getType());
+ assertEquals(message.isError(), decodedMessage.isError());
+ assertEquals(message.getResponseCode(), decodedMessage.getResponseCode());
+ assertEquals(message.getMessage(), decodedMessage.getMessage());
+ }
+
+ public void testSessionXAResumeMessage() throws Exception
+ {
+ SessionXAResumeMessage message = new SessionXAResumeMessage(randomXid());
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, message
+ .getXid());
+
+ assertTrue(decodedPacket instanceof SessionXAResumeMessage);
+ SessionXAResumeMessage decodedMessage = (SessionXAResumeMessage) decodedPacket;
+ assertEquals(SESS_XA_RESUME, decodedMessage.getType());
+ assertEquals(message.getXid(), decodedMessage.getXid());
+ }
+
+ public void testSessionXARollbackMessage() throws Exception
+ {
+ SessionXARollbackMessage message = new SessionXARollbackMessage(
+ randomXid());
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, message
+ .getXid());
+
+ assertTrue(decodedPacket instanceof SessionXARollbackMessage);
+ SessionXARollbackMessage decodedMessage = (SessionXARollbackMessage) decodedPacket;
+ assertEquals(SESS_XA_ROLLBACK, decodedMessage.getType());
+ assertEquals(message.getXid(), decodedMessage.getXid());
+ }
+
+ public void testSessionXASetTimeoutMessage() throws Exception
+ {
+ SessionXASetTimeoutMessage message = new SessionXASetTimeoutMessage(
+ randomInt());
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, message
+ .getTimeoutSeconds());
+
+ assertTrue(decodedPacket instanceof SessionXASetTimeoutMessage);
+ SessionXASetTimeoutMessage decodedMessage = (SessionXASetTimeoutMessage) decodedPacket;
+ assertEquals(SESS_XA_SET_TIMEOUT, decodedMessage.getType());
+ assertEquals(message.getTimeoutSeconds(), decodedMessage
+ .getTimeoutSeconds());
+ }
+
+ public void testSessionXASetTimeoutResponseMessage() throws Exception
+ {
+ SessionXASetTimeoutResponseMessage message = new SessionXASetTimeoutResponseMessage(
+ randomBoolean());
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, message
+ .isOK());
+
+ assertTrue(decodedPacket instanceof SessionXASetTimeoutResponseMessage);
+ SessionXASetTimeoutResponseMessage decodedMessage = (SessionXASetTimeoutResponseMessage) decodedPacket;
+ assertEquals(SESS_XA_SET_TIMEOUT_RESP, decodedMessage.getType());
+ assertEquals(message.isOK(), decodedMessage.isOK());
+ }
+
+ public void testSessionXAStartMessage() throws Exception
+ {
+ SessionXAStartMessage message = new SessionXAStartMessage(randomXid());
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, message
+ .getXid());
+
+ assertTrue(decodedPacket instanceof SessionXAStartMessage);
+ SessionXAStartMessage decodedMessage = (SessionXAStartMessage) decodedPacket;
+ assertEquals(SESS_XA_START, decodedMessage.getType());
+ assertEquals(message.getXid(), decodedMessage.getXid());
+ }
+
+ public void testSessionXASuspendMessage() throws Exception
+ {
+ Packet message = new EmptyPacket(SESS_XA_SUSPEND);
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message);
+
+ assertEquals(SESS_XA_SUSPEND, decodedPacket.getType());
+ }
+
+ public void testSessionRemoveDestinationMessage() throws Exception
+ {
+ SessionRemoveDestinationMessage message = new SessionRemoveDestinationMessage(
+ new SimpleString(randomString()), randomBoolean());
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, message
+ .getAddress(), message.isTemporary());
+
+ assertTrue(decodedPacket instanceof SessionRemoveDestinationMessage);
+ SessionRemoveDestinationMessage decodedMessage = (SessionRemoveDestinationMessage) decodedPacket;
+ assertEquals(SESS_REMOVE_DESTINATION, decodedMessage.getType());
+ assertEquals(message.getAddress(), decodedMessage.getAddress());
+ assertEquals(message.isTemporary(), decodedMessage.isTemporary());
+ }
+
+ public void testSessionCreateQueueMessage() throws Exception
+ {
+ SessionCreateQueueMessage message = new SessionCreateQueueMessage(
+ new SimpleString(randomString()), new SimpleString(randomString()),
+ new SimpleString(randomString()), randomBoolean(),
+ randomBoolean());
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message,
+ message.getAddress(), message.getQueueName(), new
+ NullableStringHolder(message.getFilterString()), message.isDurable(),
+ message
+ .isTemporary());
+
+ assertTrue(decodedPacket instanceof SessionCreateQueueMessage);
+ SessionCreateQueueMessage decodedMessage = (SessionCreateQueueMessage)
+ decodedPacket;
+ assertEquals(SESS_CREATEQUEUE, decodedMessage.getType());
+
+ assertEquals(message.getAddress(), decodedMessage.getAddress());
+ assertEquals(message.getQueueName(), decodedMessage.getQueueName());
+ assertEquals(message.getFilterString(), decodedMessage.getFilterString());
+ assertEquals(message.isDurable(), decodedMessage.isDurable());
+ assertEquals(message.isTemporary(), decodedMessage.isTemporary());
+
+ }
+
+ public void testSessionQueueQueryMessage() throws Exception
+ {
+ SessionQueueQueryMessage message = new SessionQueueQueryMessage(
+ new SimpleString(randomString()));
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message,
+ message.getQueueName());
+
+ assertTrue(decodedPacket instanceof SessionQueueQueryMessage);
+ SessionQueueQueryMessage decodedMessage = (SessionQueueQueryMessage)
+ decodedPacket;
+ assertEquals(SESS_QUEUEQUERY, decodedMessage.getType());
+ assertEquals(message.getQueueName(), decodedMessage.getQueueName());
+ }
+
+ public void testSessionQueueQueryResponseMessage() throws Exception
+ {
+ SessionQueueQueryResponseMessage message = new
+ SessionQueueQueryResponseMessage(
+ randomBoolean(), randomBoolean(), randomInt(), randomInt(),
+ randomInt(), new SimpleString(randomString()), new
+ SimpleString(randomString()));
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message,
+ message.isExists(), message.isDurable(), message.isTemporary(),
+ message.getMaxSize(), message.getConsumerCount(), message
+ .getMessageCount(), new NullableStringHolder(message.getFilterString()),
+ new NullableStringHolder(message.getAddress()));
+
+ assertTrue(decodedPacket instanceof SessionQueueQueryResponseMessage);
+ SessionQueueQueryResponseMessage decodedMessage =
+ (SessionQueueQueryResponseMessage) decodedPacket;
+ assertEquals(SESS_QUEUEQUERY_RESP, decodedMessage.getType());
+
+ assertEquals(message.isExists(), decodedMessage.isExists());
+ assertEquals(message.isDurable(), decodedMessage.isDurable());
+ assertEquals(message.isTemporary(), decodedMessage.isTemporary());
+ assertEquals(message.getConsumerCount(), decodedMessage
+ .getConsumerCount());
+ assertEquals(message.getMessageCount(), decodedMessage.getMessageCount());
+ assertEquals(message.getFilterString(), decodedMessage.getFilterString());
+ assertEquals(message.getAddress(), decodedMessage.getAddress());
+ }
+
+ public void testSessionAddAddressMessage() throws Exception
+ {
+ SessionAddDestinationMessage message = new SessionAddDestinationMessage(
+ new SimpleString(randomString()), randomBoolean());
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message,
+ message.getAddress(), message.isTemporary());
+
+ assertTrue(decodedPacket instanceof SessionAddDestinationMessage);
+ SessionAddDestinationMessage decodedMessage =
+ (SessionAddDestinationMessage) decodedPacket;
+ assertEquals(SESS_ADD_DESTINATION, decodedMessage.getType());
+ assertEquals(message.getAddress(), decodedMessage.getAddress());
+ assertEquals(message.isTemporary(), decodedMessage.isTemporary());
+ }
+
+ public void testSessionBindingQueryMessage() throws Exception
+ {
+ SessionBindingQueryMessage message = new SessionBindingQueryMessage(
+ new SimpleString(randomString()));
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message,
+ message.getAddress());
+
+ assertTrue(decodedPacket instanceof SessionBindingQueryMessage);
+ SessionBindingQueryMessage decodedMessage = (SessionBindingQueryMessage)
+ decodedPacket;
+ assertEquals(SESS_BINDINGQUERY, decodedMessage.getType());
+
+ assertEquals(message.getAddress(), decodedMessage.getAddress());
+ }
+
+ public void testSessionBindingQueryResponseMessage() throws Exception
+ {
+ boolean exists = true;
+ List<SimpleString> queueNames = new ArrayList<SimpleString>();
+ queueNames.add(new SimpleString(randomString()));
+ queueNames.add(new SimpleString(randomString()));
+ queueNames.add(new SimpleString(randomString()));
+ SessionBindingQueryResponseMessage message = new
+ SessionBindingQueryResponseMessage(
+ exists, queueNames);
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message,
+ message.isExists(), message.getQueueNames());
+
+ assertTrue(decodedPacket instanceof SessionBindingQueryResponseMessage);
+ SessionBindingQueryResponseMessage decodedMessage =
+ (SessionBindingQueryResponseMessage) decodedPacket;
+ assertEquals(SESS_BINDINGQUERY_RESP, decodedMessage.getType());
+ assertEquals(message.isExists(), decodedMessage.isExists());
+
+ List<SimpleString> decodedNames = decodedMessage.getQueueNames();
+ assertEquals(queueNames.size(), decodedNames.size());
+ for (int i = 0; i < queueNames.size(); i++)
+ {
+ assertEquals(queueNames.get(i), decodedNames.get(i));
+ }
+ }
+
+ public void testDeleteQueueRequest() throws Exception
+ {
+ SessionDeleteQueueMessage message = new SessionDeleteQueueMessage(
+ new SimpleString(randomString()));
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message,
+ message.getQueueName());
+
+ assertTrue(decodedPacket instanceof SessionDeleteQueueMessage);
+ SessionDeleteQueueMessage decodedMessage = (SessionDeleteQueueMessage)
+ decodedPacket;
+ assertEquals(SESS_DELETE_QUEUE, decodedMessage.getType());
+ assertEquals(message.getQueueName(), decodedMessage.getQueueName());
+ }
+
+ // Package protected ---------------------------------------------
+
+ // Protected -----------------------------------------------------
+
+ // Private -------------------------------------------------------
+
+ private static class SimpleProtocolDecoderOutput implements
+ ProtocolDecoderOutput
+ {
+ private Object message;
+
+ public void flush()
+ {
+ }
+
+ public void write(Object message)
+ {
+ this.message = message;
+ }
+
+ public Object getMessage()
+ {
+ return message;
+ }
+
+ }
+
+ private class NullableStringHolder
+ {
+ public SimpleString str;
+
+ NullableStringHolder(SimpleString str)
+ {
+ this.str = str;
+ }
+ }
+}
Deleted: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/wireformat/CodecAssert.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/wireformat/CodecAssert.java 2008-06-13 20:59:02 UTC (rev 4470)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/wireformat/CodecAssert.java 2008-06-14 08:35:15 UTC (rev 4471)
@@ -1,80 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- *
- * Distributable under LGPL license.
- * See terms of license at gnu.org.
- */
-package org.jboss.messaging.tests.unit.core.remoting.impl.wireformat;
-
-import java.util.List;
-
-import javax.transaction.xa.Xid;
-
-import junit.framework.Assert;
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
- *
- * @version <tt>$Revision$</tt>
- *
- */
-public class CodecAssert extends Assert
-{
- // Constants -----------------------------------------------------
-
- // Attributes ----------------------------------------------------
-
- // Static --------------------------------------------------------
-
- static void assertSameXids(List<Xid> expected, List<Xid> actual)
- {
- assertNotNull(expected);
- assertNotNull(actual);
- assertEquals(expected.size(), actual.size());
-
- for (int i = 0; i < expected.size(); i++)
- {
- Xid expectedXid = expected.get(i);
- Xid actualXid = actual.get(i);
- assertEqualsByteArrays(expectedXid.getBranchQualifier(), actualXid
- .getBranchQualifier());
- assertEquals(expectedXid.getFormatId(), actualXid.getFormatId());
- assertEqualsByteArrays(expectedXid.getGlobalTransactionId(), actualXid
- .getGlobalTransactionId());
- }
- }
-
- public static void assertEqualsByteArrays(byte[] expected, byte[] actual)
- {
- assertEquals(expected.length, actual.length);
- for (int i = 0; i < expected.length; i++)
- {
- assertEquals("byte at index " + i, expected[i], actual[i]);
- }
- }
-
- static void assertEqualsByteArrays(int length, byte[] expected, byte[] actual)
- {
- // we check only for the given length (the arrays might be
- // larger)
- assertTrue(expected.length >= length);
- assertTrue(actual.length >= length);
- for (int i = 0; i < length; i++)
- {
- assertEquals("byte at index " + i, expected[i], actual[i]);
- }
- }
-
-
- // Constructors --------------------------------------------------
-
- // Public --------------------------------------------------------
-
- // Package protected ---------------------------------------------
-
- // Protected -----------------------------------------------------
-
- // Private -------------------------------------------------------
-
- // Inner classes -------------------------------------------------
-}
Deleted: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/wireformat/PacketTypeTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/wireformat/PacketTypeTest.java 2008-06-13 20:59:02 UTC (rev 4470)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/wireformat/PacketTypeTest.java 2008-06-14 08:35:15 UTC (rev 4471)
@@ -1,1139 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- *
- * Distributable under LGPL license.
- * See terms of license at gnu.org.
- */
-package org.jboss.messaging.tests.unit.core.remoting.impl.wireformat;
-
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.CLOSE;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.CONN_CREATESESSION;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.CONN_CREATESESSION_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.CONN_START;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.CONN_STOP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.CONS_FLOWTOKEN;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.CREATECONNECTION;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.CREATECONNECTION_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.EXCEPTION;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.NULL;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.PING;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.PONG;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.PROD_RECEIVETOKENS;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.SESS_ACKNOWLEDGE;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.SESS_ADD_DESTINATION;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.SESS_BINDINGQUERY;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.SESS_BINDINGQUERY_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.SESS_BROWSER_HASNEXTMESSAGE;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.SESS_BROWSER_HASNEXTMESSAGE_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.SESS_BROWSER_NEXTMESSAGE;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.SESS_BROWSER_RESET;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.SESS_CANCEL;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.SESS_COMMIT;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.SESS_CREATEBROWSER;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.SESS_CREATEBROWSER_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.SESS_CREATECONSUMER;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.SESS_CREATECONSUMER_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.SESS_CREATEPRODUCER;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.SESS_CREATEPRODUCER_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.SESS_CREATEQUEUE;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.SESS_DELETE_QUEUE;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.SESS_QUEUEQUERY;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.SESS_QUEUEQUERY_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.SESS_RECOVER;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.SESS_REMOVE_DESTINATION;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.SESS_ROLLBACK;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.SESS_XA_COMMIT;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.SESS_XA_END;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.SESS_XA_FORGET;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.SESS_XA_GET_TIMEOUT;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.SESS_XA_GET_TIMEOUT_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.SESS_XA_INDOUBT_XIDS;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.SESS_XA_INDOUBT_XIDS_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.SESS_XA_JOIN;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.SESS_XA_PREPARE;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.SESS_XA_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.SESS_XA_RESUME;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.SESS_XA_ROLLBACK;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.SESS_XA_SET_TIMEOUT;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.SESS_XA_SET_TIMEOUT_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.SESS_XA_START;
-import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.SESS_XA_SUSPEND;
-import static org.jboss.messaging.tests.unit.core.remoting.impl.wireformat.CodecAssert.assertEqualsByteArrays;
-import static org.jboss.messaging.tests.unit.core.remoting.impl.wireformat.CodecAssert.assertSameXids;
-import static org.jboss.messaging.tests.util.RandomUtil.randomBoolean;
-import static org.jboss.messaging.tests.util.RandomUtil.randomInt;
-import static org.jboss.messaging.tests.util.RandomUtil.randomLong;
-import static org.jboss.messaging.tests.util.RandomUtil.randomString;
-import static org.jboss.messaging.tests.util.RandomUtil.randomXid;
-import static org.jboss.messaging.util.DataConstants.SIZE_BYTE;
-import static org.jboss.messaging.util.DataConstants.SIZE_LONG;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.transaction.xa.Xid;
-
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.filter.codec.ProtocolDecoderOutput;
-import org.jboss.messaging.core.exception.MessagingException;
-import org.jboss.messaging.core.logging.Logger;
-import org.jboss.messaging.core.remoting.Packet;
-import org.jboss.messaging.core.remoting.impl.mina.IoBufferWrapper;
-import org.jboss.messaging.core.remoting.impl.mina.MessagingCodec;
-import org.jboss.messaging.core.remoting.impl.wireformat.ConnectionCreateSessionMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.ConnectionCreateSessionResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.ConsumerFlowCreditMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.CreateConnectionRequest;
-import org.jboss.messaging.core.remoting.impl.wireformat.CreateConnectionResponse;
-import org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket;
-import org.jboss.messaging.core.remoting.impl.wireformat.MessagingExceptionMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.Ping;
-import org.jboss.messaging.core.remoting.impl.wireformat.Pong;
-import org.jboss.messaging.core.remoting.impl.wireformat.ProducerFlowCreditMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionAcknowledgeMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionAddDestinationMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionBindingQueryMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionBindingQueryResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionBrowserHasNextMessageResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionCancelMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateBrowserMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateBrowserResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateConsumerMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateConsumerResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateProducerMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateProducerResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateQueueMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionDeleteQueueMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionQueueQueryMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionQueueQueryResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionRemoveDestinationMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXACommitMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAEndMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAForgetMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAGetInDoubtXidsResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAGetTimeoutResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAJoinMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAPrepareMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAResumeMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXARollbackMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXASetTimeoutMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXASetTimeoutResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAStartMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.XidCodecSupport;
-import org.jboss.messaging.core.version.impl.VersionImpl;
-import org.jboss.messaging.tests.util.UnitTestCase;
-import org.jboss.messaging.util.MessagingBuffer;
-import org.jboss.messaging.util.SimpleString;
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
- * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
- *
- * FIXME - tidy up tests so test names match the actual packets
- *
- * @version <tt>$Revision$</tt>
- */
-public class PacketTypeTest extends UnitTestCase
-{
-
- // Constants -----------------------------------------------------
-
- private static final Logger log = Logger.getLogger(PacketTypeTest.class);
-
- // Attributes ----------------------------------------------------
-
- // Static --------------------------------------------------------
-
- private static MessagingBuffer encode(int length, Object... args)
- throws Exception
- {
- IoBufferWrapper buffer = new IoBufferWrapper(length);
- for (Object arg : args)
- {
- if (arg instanceof Byte)
- buffer.putByte(((Byte) arg).byteValue());
- else if (arg instanceof Boolean)
- {
- Boolean bool = (Boolean) arg;
- buffer.putBoolean(bool);
- } else if (arg instanceof Integer)
- buffer.putInt(((Integer) arg).intValue());
- else if (arg instanceof Long)
- buffer.putLong(((Long) arg).longValue());
- else if (arg instanceof Float)
- buffer.putFloat(((Float) arg).floatValue());
- else if (arg instanceof String)
- buffer.putNullableString((String) arg);
- else if (arg instanceof SimpleString)
- buffer.putSimpleString((SimpleString) arg);
- else if (arg instanceof NullableStringHolder)
- buffer.putNullableSimpleString(((NullableStringHolder) arg).str);
- else if (arg == null)
- buffer.putNullableString(null);
- else if (arg instanceof byte[])
- {
- byte[] b = (byte[]) arg;
- buffer.putInt(b.length);
- buffer.putBytes(b);
- } else if (arg instanceof long[])
- {
- long[] longs = (long[]) arg;
- for (long l : longs)
- {
- buffer.putLong(l);
- }
- } else if (arg instanceof List)
- {
- List argsInList = (List) arg;
- buffer.putInt(argsInList.size());
- for (Object argInList : argsInList)
- {
- if (argInList instanceof SimpleString)
- buffer.putSimpleString((SimpleString) argInList);
- else if (argInList instanceof Xid)
- XidCodecSupport.encodeXid((Xid) argInList, buffer);
- else
- fail("no encoding defined for " + arg + " in List");
- }
- } else if (arg instanceof Xid)
- {
- Xid xid = (Xid) arg;
- XidCodecSupport.encodeXid(xid, buffer);
- } else if (arg instanceof MessagingException)
- {
- MessagingException exception = (MessagingException) arg;
- buffer.putInt(exception.getCode());
- buffer.putNullableString(exception.getMessage());
- } else
- {
- fail("no encoding defined for " + arg);
- }
- }
- buffer.flip();
- return buffer;
- }
-
- private static void checkHeader(final MessagingBuffer buffer,
- final Packet packet) throws Exception
- {
- assertEquals(buffer.getByte(), packet.getType());
-
- long responseTargetID = buffer.getLong();
- long targetID = buffer.getLong();
- long executorID = buffer.getLong();
-
- assertEquals(packet.getResponseTargetID(), responseTargetID);
- assertEquals(packet.getTargetID(), targetID);
- assertEquals(packet.getExecutorID(), executorID);
- }
-
- private static void checkBody(MessagingBuffer buffer, int bodyLength,
- Object... bodyObjects) throws Exception
- {
- byte[] actualBody = new byte[bodyLength];
- buffer.getBytes(actualBody);
- MessagingBuffer expectedBody = encode(actualBody.length, bodyObjects);
- assertEqualsByteArrays(bodyLength, expectedBody.array(), actualBody);
- // check the buffer has been wholly read
- assertEquals(0, buffer.remaining());
- }
-
- private static Packet encodeAndCheckBytesAndDecode(Packet packet,
- Object... bodyObjects) throws Exception
- {
- MessagingBuffer buffer = encode(packet);
- int packetLength = buffer.getInt();
- checkHeader(buffer, packet);
- int bodyLength = packetLength - (SIZE_BYTE + 3 * SIZE_LONG);
- checkBody(buffer, bodyLength, bodyObjects);
- buffer.rewind();
-
- SimpleProtocolDecoderOutput out = new SimpleProtocolDecoderOutput();
- MessagingCodec codec = new MessagingCodec();
- codec.doDecode(null, IoBuffer.wrap(buffer.array()), out);
- Object message = out.getMessage();
- assertTrue(message instanceof Packet);
-
- log.info("encoded and decoded " + packet);
-
- return (Packet) message;
- }
-
- private static MessagingBuffer encode(final Packet packet) throws Exception
- {
- MessagingBuffer buffer = new IoBufferWrapper(512);
- packet.encode(buffer);
-
- assertNotNull(buffer);
-
- return buffer;
- }
-
- // Constructors --------------------------------------------------
-
- // Public --------------------------------------------------------
-
- public void testNullPacket() throws Exception
- {
- Packet packet = new EmptyPacket(NULL);
- packet.setResponseTargetID(randomLong());
- packet.setTargetID(randomLong());
- packet.setExecutorID(randomLong());
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(packet);
-
- assertTrue(decodedPacket instanceof EmptyPacket);
- assertEquals(NULL, decodedPacket.getType());
- assertEquals(packet.getResponseTargetID(), decodedPacket
- .getResponseTargetID());
- assertEquals(packet.getTargetID(), decodedPacket.getTargetID());
- assertEquals(packet.getExecutorID(), decodedPacket.getExecutorID());
- }
-
- public void testPing() throws Exception
- {
- Ping ping = new Ping(randomLong());
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(ping, ping
- .getSessionID());
-
- assertTrue(decodedPacket instanceof Ping);
- Ping decodedPing = (Ping) decodedPacket;
- assertEquals(PING, decodedPing.getType());
- assertEquals(ping.getResponseTargetID(), decodedPacket
- .getResponseTargetID());
- assertEquals(ping.getTargetID(), decodedPacket.getTargetID());
- assertEquals(ping.getExecutorID(), decodedPacket.getExecutorID());
- }
-
- public void testPong() throws Exception
- {
- Pong pong = new Pong(randomLong(), true);
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(pong, pong
- .getSessionID(), pong.isSessionFailed());
-
- assertTrue(decodedPacket instanceof Pong);
- Pong decodedPong = (Pong) decodedPacket;
- assertEquals(PONG, decodedPong.getType());
- assertEquals(pong.getSessionID(), decodedPong.getSessionID());
- assertEquals(pong.isSessionFailed(), decodedPong.isSessionFailed());
- }
-
- public void testMessagingExceptionMessage() throws Exception
- {
- MessagingExceptionMessage message = new MessagingExceptionMessage(new MessagingException(MessagingException.ILLEGAL_STATE));
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(message, message.getException());
-
- assertTrue(decodedPacket instanceof MessagingExceptionMessage);
- MessagingExceptionMessage decodedMessage = (MessagingExceptionMessage) decodedPacket;
- assertEquals(EXCEPTION, decodedMessage.getType());
- assertEquals(message.getException().getCode(), decodedMessage.getException().getCode());
- }
-
- public void testCreateConnectionRequest() throws Exception
- {
- int version = randomInt();
- long remotingSessionID = randomLong();
- String username = null;
- String password = null;
- CreateConnectionRequest request = new CreateConnectionRequest(version,
- remotingSessionID, username, password);
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(request, version,
- remotingSessionID, username, password);
-
- assertTrue(decodedPacket instanceof CreateConnectionRequest);
- CreateConnectionRequest decodedRequest = (CreateConnectionRequest) decodedPacket;
-
- assertEquals(CREATECONNECTION, decodedPacket.getType());
- assertEquals(request.getVersion(), decodedRequest.getVersion());
- assertEquals(request.getRemotingSessionID(), decodedRequest
- .getRemotingSessionID());
- assertEquals(request.getUsername(), decodedRequest.getUsername());
- assertEquals(request.getPassword(), decodedRequest.getPassword());
- }
-
- public void testCreateConnectionResponse() throws Exception
- {
- CreateConnectionResponse response = new CreateConnectionResponse(
- randomLong(), new VersionImpl("test", 1, 2, 3, 4, "xxx"));
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(response, response
- .getConnectionTargetID(), response.getServerVersion()
- .getVersionName(), response.getServerVersion().getMajorVersion(),
- response.getServerVersion().getMinorVersion(), response
- .getServerVersion().getMicroVersion(), response
- .getServerVersion().getIncrementingVersion(), response
- .getServerVersion().getVersionSuffix());
-
- assertTrue(decodedPacket instanceof CreateConnectionResponse);
- CreateConnectionResponse decodedResponse = (CreateConnectionResponse) decodedPacket;
- assertEquals(CREATECONNECTION_RESP, decodedResponse.getType());
- assertEquals(response.getConnectionTargetID(), decodedResponse
- .getConnectionTargetID());
- assertEquals(response.getServerVersion().getFullVersion(),
- decodedResponse.getServerVersion().getFullVersion());
- }
-
- public void testConnectionCreateSessionMessage() throws Exception
- {
- ConnectionCreateSessionMessage request = new ConnectionCreateSessionMessage(
- randomBoolean(), randomBoolean(), randomBoolean());
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(request, request
- .isXA(), request.isAutoCommitSends(), request.isAutoCommitAcks());
-
- assertTrue(decodedPacket instanceof ConnectionCreateSessionMessage);
- ConnectionCreateSessionMessage decodedRequest = (ConnectionCreateSessionMessage) decodedPacket;
- assertEquals(CONN_CREATESESSION, decodedRequest.getType());
- assertEquals(request.isXA(), decodedRequest.isXA());
- assertEquals(request.isAutoCommitSends(), decodedRequest
- .isAutoCommitSends());
- assertEquals(request.isAutoCommitAcks(), decodedRequest
- .isAutoCommitAcks());
- }
-
- public void testConnectionCreateSessionResponseMessage() throws Exception
- {
- ConnectionCreateSessionResponseMessage response = new ConnectionCreateSessionResponseMessage(
- randomLong());
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(response, response
- .getSessionID());
-
- assertTrue(decodedPacket instanceof ConnectionCreateSessionResponseMessage);
- ConnectionCreateSessionResponseMessage decodedResponse = (ConnectionCreateSessionResponseMessage) decodedPacket;
- assertEquals(CONN_CREATESESSION_RESP, decodedResponse.getType());
- assertEquals(response.getSessionID(), decodedResponse.getSessionID());
- }
-
- /*
- * public void testProducerSendMessage() throws Exception { Message msg = new
- * MessageImpl((byte)1, false, 1212212L, 761276712L, (byte)1);
- * msg.setDestination(new SimpleString("blah")); ProducerSendMessage packet =
- * new ProducerSendMessage(msg); MessagingBuffer buff =
- * packet.getMessage().encode();
- *
- * Message msg2 = new MessageImpl(); msg2.decode(buff);
- *
- *
- * byte[] messageBytes = buff.array(); byte[] data = new byte[buff.limit()];
- * System.arraycopy(messageBytes, 0, data, 0, buff.limit());
- * AbstractPacketCodec codec = new ProducerSendMessageCodec();
- *
- * Packet decodedPacket = encodeAndCheckBytesAndDecode(packet, data);
- *
- * assertTrue(decodedPacket instanceof ProducerSendMessage);
- * ProducerSendMessage decodedMessage = (ProducerSendMessage) decodedPacket;
- * assertEquals(PacketType.PROD_SEND, decodedPacket.getType());
- * assertEquals(packet.getMessage().getMessageID(), decodedMessage
- * .getMessage().getMessageID()); }
- */
-
- public void testSessionCreateConsumerMessage() throws Exception
- {
- SimpleString destination = new SimpleString(
- "queue.SessionCreateConsumerMessage");
- SessionCreateConsumerMessage request = new SessionCreateConsumerMessage(
- randomLong(), destination, new SimpleString("color = 'red'"),
- false, false, randomInt(), randomInt());
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(request, request
- .getClientTargetID(), request.getQueueName(),
- new NullableStringHolder(request.getFilterString()), request
- .isNoLocal(), request.isAutoDeleteQueue(), request
- .getWindowSize(), request.getMaxRate());
-
- assertTrue(decodedPacket instanceof SessionCreateConsumerMessage);
- SessionCreateConsumerMessage decodedRequest = (SessionCreateConsumerMessage) decodedPacket;
- assertEquals(SESS_CREATECONSUMER, decodedRequest.getType());
- assertEquals(request.getClientTargetID(), decodedRequest
- .getClientTargetID());
- assertEquals(request.getQueueName(), decodedRequest.getQueueName());
- assertEquals(request.getFilterString(), decodedRequest.getFilterString());
- assertEquals(request.isNoLocal(), decodedRequest.isNoLocal());
- assertEquals(request.isAutoDeleteQueue(), decodedRequest
- .isAutoDeleteQueue());
- assertEquals(request.getWindowSize(), decodedRequest.getWindowSize());
- assertEquals(request.getMaxRate(), decodedRequest.getMaxRate());
- }
-
- public void testSessionCreateConsumerResponseMessage() throws Exception
- {
- SessionCreateConsumerResponseMessage response = new SessionCreateConsumerResponseMessage(
- randomLong(), randomInt());
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(response, response
- .getConsumerTargetID(), response.getWindowSize());
-
- assertTrue(decodedPacket instanceof SessionCreateConsumerResponseMessage);
- SessionCreateConsumerResponseMessage decodedResponse = (SessionCreateConsumerResponseMessage) decodedPacket;
- assertEquals(SESS_CREATECONSUMER_RESP, decodedResponse.getType());
-
- assertEquals(response.getConsumerTargetID(), decodedResponse
- .getConsumerTargetID());
- assertEquals(response.getWindowSize(), decodedResponse.getWindowSize());
- }
-
- public void testSessionCreateProducerMessage() throws Exception
- {
- SimpleString destination = new SimpleString(
- "queue.testSessionCreateProducerMessage");
- int windowSize = randomInt();
- int maxRate = randomInt();
- SessionCreateProducerMessage request = new SessionCreateProducerMessage(
- randomLong(), destination, windowSize, maxRate);
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(request, request
- .getClientTargetID(),
- new NullableStringHolder(request.getAddress()), request
- .getWindowSize(), request.getMaxRate());
-
- assertTrue(decodedPacket instanceof SessionCreateProducerMessage);
- SessionCreateProducerMessage decodedRequest = (SessionCreateProducerMessage) decodedPacket;
- assertEquals(SESS_CREATEPRODUCER, decodedRequest.getType());
- assertEquals(request.getClientTargetID(), decodedRequest
- .getClientTargetID());
- assertEquals(request.getAddress(), decodedRequest.getAddress());
- assertEquals(request.getWindowSize(), decodedRequest.getWindowSize());
- assertEquals(request.getMaxRate(), decodedRequest.getMaxRate());
- }
-
- public void testSessionCreateProducerResponseMessage() throws Exception
- {
- SessionCreateProducerResponseMessage response = new SessionCreateProducerResponseMessage(
- randomLong(), randomInt(), randomInt());
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(response, response
- .getProducerTargetID(), response.getInitialCredits(), response
- .getMaxRate());
-
- assertTrue(decodedPacket instanceof SessionCreateProducerResponseMessage);
- SessionCreateProducerResponseMessage decodedResponse = (SessionCreateProducerResponseMessage) decodedPacket;
- assertEquals(SESS_CREATEPRODUCER_RESP, decodedResponse.getType());
- assertEquals(response.getProducerTargetID(), decodedResponse
- .getProducerTargetID());
- assertEquals(response.getInitialCredits(), decodedResponse.getInitialCredits());
- assertEquals(response.getMaxRate(), decodedResponse.getMaxRate());
- }
-
- public void testStartConnectionMessage() throws Exception
- {
- Packet packet = new EmptyPacket(CONN_START);
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(packet);
-
- assertEquals(CONN_START, decodedPacket.getType());
- }
-
- public void testStopConnectionMessage() throws Exception
- {
- Packet packet = new EmptyPacket(CONN_STOP);
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(packet);
-
- assertEquals(CONN_STOP, decodedPacket.getType());
- }
-
- public void testConsumerFlowCreditMessage() throws Exception
- {
- ConsumerFlowCreditMessage message = new ConsumerFlowCreditMessage(
- randomInt());
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(message, message
- .getTokens());
-
- assertTrue(decodedPacket instanceof ConsumerFlowCreditMessage);
- ConsumerFlowCreditMessage decodedMessage = (ConsumerFlowCreditMessage) decodedPacket;
- assertEquals(CONS_FLOWTOKEN, decodedMessage.getType());
- assertEquals(message.getTokens(), decodedMessage.getTokens());
- }
-
- public void testProducerReceiveTokensMessage() throws Exception
- {
- ProducerFlowCreditMessage message = new ProducerFlowCreditMessage(
- randomInt());
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(message, message
- .getTokens());
-
- assertTrue(decodedPacket instanceof ProducerFlowCreditMessage);
- ProducerFlowCreditMessage decodedMessage = (ProducerFlowCreditMessage) decodedPacket;
- assertEquals(PROD_RECEIVETOKENS, decodedMessage.getType());
- assertEquals(message.getTokens(), decodedMessage.getTokens());
- }
-
- /*
- * public void testReceiveMessage() throws Exception { Message msg = new
- * MessageImpl(); ReceiveMessage message = new ReceiveMessage(msg);
- * AbstractPacketCodec codec = new ReceiveMessageCodec();
- *
- * byte[] messageBytes = message.getMessage().encode().array();
- *
- * Packet decodedPacket = encodeAndCheckBytesAndDecode(message,
- * messageBytes);
- *
- * assertTrue(decodedPacket instanceof ReceiveMessage); ReceiveMessage
- * decodedMessage = (ReceiveMessage) decodedPacket; assertEquals(RECEIVE_MSG,
- * decodedMessage.getType());
- * assertEquals(message.getMessage().getMessageID(), decodedMessage
- * .getMessage().getMessageID()); }
- */
-
- public void testSessionAcknowledgeMessage() throws Exception
- {
- SessionAcknowledgeMessage message = new SessionAcknowledgeMessage(
- randomLong(), randomBoolean());
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(message, message
- .getDeliveryID(), message.isAllUpTo());
-
- assertTrue(decodedPacket instanceof SessionAcknowledgeMessage);
- SessionAcknowledgeMessage decodedMessage = (SessionAcknowledgeMessage) decodedPacket;
- assertEquals(SESS_ACKNOWLEDGE, decodedMessage.getType());
- assertEquals(message.getDeliveryID(), decodedMessage.getDeliveryID());
- assertEquals(message.isAllUpTo(), decodedMessage.isAllUpTo());
- }
-
- public void testSessionCancelMessage() throws Exception
- {
- SessionCancelMessage message = new SessionCancelMessage(randomLong(),
- randomBoolean());
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(message, message
- .getDeliveryID(), message.isExpired());
-
- assertTrue(decodedPacket instanceof SessionCancelMessage);
- SessionCancelMessage decodedMessage = (SessionCancelMessage) decodedPacket;
- assertEquals(SESS_CANCEL, decodedMessage.getType());
- assertEquals(message.getDeliveryID(), decodedMessage.getDeliveryID());
- assertEquals(message.isExpired(), decodedMessage.isExpired());
- }
-
- public void testSessionCommitMessage() throws Exception
- {
- Packet message = new EmptyPacket(SESS_COMMIT);
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(message);
-
- assertEquals(SESS_COMMIT, decodedPacket.getType());
- }
-
- public void testSessionRollbackMessage() throws Exception
- {
- Packet message = new EmptyPacket(SESS_ROLLBACK);
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(message);
-
- assertEquals(SESS_ROLLBACK, decodedPacket.getType());
- }
-
- public void testSessionRecoverMessage() throws Exception
- {
- Packet message = new EmptyPacket(SESS_RECOVER);
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(message);
-
- assertEquals(SESS_RECOVER, decodedPacket.getType());
- }
-
- public void testCloseMessage() throws Exception
- {
- Packet message = new EmptyPacket(CLOSE);
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(message);
-
- assertEquals(CLOSE, decodedPacket.getType());
- }
-
- public void testSessionCreateBrowserMessage() throws Exception
- {
- SimpleString destination = new SimpleString(
- "queue.testCreateBrowserRequest");
- SessionCreateBrowserMessage request = new SessionCreateBrowserMessage(
- destination, new SimpleString("color = 'red'"));
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(request, request
- .getQueueName(),
- new NullableStringHolder(request.getFilterString()));
-
- assertTrue(decodedPacket instanceof SessionCreateBrowserMessage);
- SessionCreateBrowserMessage decodedRequest = (SessionCreateBrowserMessage) decodedPacket;
- assertEquals(SESS_CREATEBROWSER, decodedRequest.getType());
- assertEquals(request.getQueueName(), decodedRequest.getQueueName());
- assertEquals(request.getFilterString(), decodedRequest.getFilterString());
- }
-
- public void testSessionCreateBrowserResponseMessage() throws Exception
- {
- SessionCreateBrowserResponseMessage response = new SessionCreateBrowserResponseMessage(
- randomLong());
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(response, response
- .getBrowserTargetID());
-
- assertTrue(decodedPacket instanceof SessionCreateBrowserResponseMessage);
- SessionCreateBrowserResponseMessage decodedResponse = (SessionCreateBrowserResponseMessage) decodedPacket;
- assertEquals(SESS_CREATEBROWSER_RESP, decodedResponse.getType());
- assertEquals(response.getBrowserTargetID(), decodedResponse
- .getBrowserTargetID());
- }
-
- public void testBrowserResetMessage() throws Exception
- {
- Packet message = new EmptyPacket(SESS_BROWSER_RESET);
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(message);
-
- assertEquals(SESS_BROWSER_RESET, decodedPacket.getType());
- }
-
- public void testBrowserHasNextMessageRequest() throws Exception
- {
- Packet request = new EmptyPacket(SESS_BROWSER_HASNEXTMESSAGE);
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(request);
-
- assertEquals(SESS_BROWSER_HASNEXTMESSAGE, decodedPacket.getType());
- }
-
- public void testSessionBrowserHasNextMessageResponseMessage()
- throws Exception
- {
- SessionBrowserHasNextMessageResponseMessage response = new SessionBrowserHasNextMessageResponseMessage(
- randomBoolean());
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(response, response
- .hasNext());
-
- assertTrue(decodedPacket instanceof SessionBrowserHasNextMessageResponseMessage);
- SessionBrowserHasNextMessageResponseMessage decodedResponse = (SessionBrowserHasNextMessageResponseMessage) decodedPacket;
- assertEquals(SESS_BROWSER_HASNEXTMESSAGE_RESP, decodedResponse.getType());
- assertEquals(response.hasNext(), decodedResponse.hasNext());
- }
-
- public void testBrowserNextMessageRequest() throws Exception
- {
- Packet request = new EmptyPacket(SESS_BROWSER_NEXTMESSAGE);
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(request);
-
- assertEquals(SESS_BROWSER_NEXTMESSAGE, decodedPacket.getType());
- }
-
- public void testSessionXACommitMessage() throws Exception
- {
- SessionXACommitMessage message = new SessionXACommitMessage(randomXid(),
- randomBoolean());
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(message, message
- .getXid(), message.isOnePhase());
-
- assertTrue(decodedPacket instanceof SessionXACommitMessage);
- SessionXACommitMessage decodedMessage = (SessionXACommitMessage) decodedPacket;
- assertEquals(SESS_XA_COMMIT, decodedMessage.getType());
- assertEquals(message.getXid(), decodedMessage.getXid());
- assertEquals(message.isOnePhase(), decodedMessage.isOnePhase());
- }
-
- public void testSessionXAEndMessage() throws Exception
- {
- SessionXAEndMessage message = new SessionXAEndMessage(randomXid(),
- randomBoolean());
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(message, message
- .getXid(), message.isFailed());
-
- assertTrue(decodedPacket instanceof SessionXAEndMessage);
- SessionXAEndMessage decodedMessage = (SessionXAEndMessage) decodedPacket;
- assertEquals(SESS_XA_END, decodedMessage.getType());
- assertEquals(message.getXid(), decodedMessage.getXid());
- assertEquals(message.isFailed(), decodedMessage.isFailed());
- }
-
- public void testSessionXAForgetMessage() throws Exception
- {
- SessionXAForgetMessage message = new SessionXAForgetMessage(randomXid());
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(message, message
- .getXid());
-
- assertTrue(decodedPacket instanceof SessionXAForgetMessage);
- SessionXAForgetMessage decodedMessage = (SessionXAForgetMessage) decodedPacket;
- assertEquals(SESS_XA_FORGET, decodedMessage.getType());
- assertEquals(message.getXid(), decodedMessage.getXid());
- }
-
- public void testSessionXAGetInDoubtXidsMessage() throws Exception
- {
- Packet request = new EmptyPacket(SESS_XA_INDOUBT_XIDS);
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(request);
-
- assertEquals(SESS_XA_INDOUBT_XIDS, decodedPacket.getType());
- }
-
- public void testSessionXAGetInDoubtXidsResponseMessage() throws Exception
- {
- final int numXids = 10;
- List<Xid> xids = new ArrayList<Xid>();
- for (int i = 0; i < numXids; i++)
- {
- xids.add(randomXid());
- }
- SessionXAGetInDoubtXidsResponseMessage message = new SessionXAGetInDoubtXidsResponseMessage(
- xids);
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(message, xids);
-
- assertTrue(decodedPacket instanceof SessionXAGetInDoubtXidsResponseMessage);
- SessionXAGetInDoubtXidsResponseMessage decodedMessage = (SessionXAGetInDoubtXidsResponseMessage) decodedPacket;
- assertEquals(SESS_XA_INDOUBT_XIDS_RESP, decodedMessage.getType());
-
- assertSameXids(message.getXids(), decodedMessage.getXids());
- }
-
- public void testSessionXAGetTimeoutMessage() throws Exception
- {
- Packet message = new EmptyPacket(SESS_XA_GET_TIMEOUT);
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(message);
-
- assertEquals(SESS_XA_GET_TIMEOUT, decodedPacket.getType());
- }
-
- public void testSessionXAGetTimeoutResponseMessage() throws Exception
- {
- SessionXAGetTimeoutResponseMessage message = new SessionXAGetTimeoutResponseMessage(
- randomInt());
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(message, message
- .getTimeoutSeconds());
-
- assertTrue(decodedPacket instanceof SessionXAGetTimeoutResponseMessage);
- SessionXAGetTimeoutResponseMessage decodedMessage = (SessionXAGetTimeoutResponseMessage) decodedPacket;
- assertEquals(SESS_XA_GET_TIMEOUT_RESP, decodedMessage.getType());
- assertEquals(message.getTimeoutSeconds(), decodedMessage
- .getTimeoutSeconds());
- }
-
- public void testSessionXAJoinMessage() throws Exception
- {
- SessionXAJoinMessage message = new SessionXAJoinMessage(randomXid());
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(message, message
- .getXid());
-
- assertTrue(decodedPacket instanceof SessionXAJoinMessage);
- SessionXAJoinMessage decodedMessage = (SessionXAJoinMessage) decodedPacket;
- assertEquals(SESS_XA_JOIN, decodedMessage.getType());
- assertEquals(message.getXid(), decodedMessage.getXid());
- }
-
- public void testSessionXAPrepareMessage() throws Exception
- {
- SessionXAPrepareMessage message = new SessionXAPrepareMessage(randomXid());
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(message, message
- .getXid());
-
- assertTrue(decodedPacket instanceof SessionXAPrepareMessage);
- SessionXAPrepareMessage decodedMessage = (SessionXAPrepareMessage) decodedPacket;
- assertEquals(SESS_XA_PREPARE, decodedMessage.getType());
- assertEquals(message.getXid(), decodedMessage.getXid());
- }
-
- public void testSessionXAResponseMessage() throws Exception
- {
- SessionXAResponseMessage message = new SessionXAResponseMessage(
- randomBoolean(), randomInt(), randomString());
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(message, message
- .isError(), message.getResponseCode(), message.getMessage());
-
- assertTrue(decodedPacket instanceof SessionXAResponseMessage);
- SessionXAResponseMessage decodedMessage = (SessionXAResponseMessage) decodedPacket;
- assertEquals(SESS_XA_RESP, decodedMessage.getType());
- assertEquals(message.isError(), decodedMessage.isError());
- assertEquals(message.getResponseCode(), decodedMessage.getResponseCode());
- assertEquals(message.getMessage(), decodedMessage.getMessage());
- }
-
- public void testSessionXAResumeMessage() throws Exception
- {
- SessionXAResumeMessage message = new SessionXAResumeMessage(randomXid());
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(message, message
- .getXid());
-
- assertTrue(decodedPacket instanceof SessionXAResumeMessage);
- SessionXAResumeMessage decodedMessage = (SessionXAResumeMessage) decodedPacket;
- assertEquals(SESS_XA_RESUME, decodedMessage.getType());
- assertEquals(message.getXid(), decodedMessage.getXid());
- }
-
- public void testSessionXARollbackMessage() throws Exception
- {
- SessionXARollbackMessage message = new SessionXARollbackMessage(
- randomXid());
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(message, message
- .getXid());
-
- assertTrue(decodedPacket instanceof SessionXARollbackMessage);
- SessionXARollbackMessage decodedMessage = (SessionXARollbackMessage) decodedPacket;
- assertEquals(SESS_XA_ROLLBACK, decodedMessage.getType());
- assertEquals(message.getXid(), decodedMessage.getXid());
- }
-
- public void testSessionXASetTimeoutMessage() throws Exception
- {
- SessionXASetTimeoutMessage message = new SessionXASetTimeoutMessage(
- randomInt());
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(message, message
- .getTimeoutSeconds());
-
- assertTrue(decodedPacket instanceof SessionXASetTimeoutMessage);
- SessionXASetTimeoutMessage decodedMessage = (SessionXASetTimeoutMessage) decodedPacket;
- assertEquals(SESS_XA_SET_TIMEOUT, decodedMessage.getType());
- assertEquals(message.getTimeoutSeconds(), decodedMessage
- .getTimeoutSeconds());
- }
-
- public void testSessionXASetTimeoutResponseMessage() throws Exception
- {
- SessionXASetTimeoutResponseMessage message = new SessionXASetTimeoutResponseMessage(
- randomBoolean());
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(message, message
- .isOK());
-
- assertTrue(decodedPacket instanceof SessionXASetTimeoutResponseMessage);
- SessionXASetTimeoutResponseMessage decodedMessage = (SessionXASetTimeoutResponseMessage) decodedPacket;
- assertEquals(SESS_XA_SET_TIMEOUT_RESP, decodedMessage.getType());
- assertEquals(message.isOK(), decodedMessage.isOK());
- }
-
- public void testSessionXAStartMessage() throws Exception
- {
- SessionXAStartMessage message = new SessionXAStartMessage(randomXid());
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(message, message
- .getXid());
-
- assertTrue(decodedPacket instanceof SessionXAStartMessage);
- SessionXAStartMessage decodedMessage = (SessionXAStartMessage) decodedPacket;
- assertEquals(SESS_XA_START, decodedMessage.getType());
- assertEquals(message.getXid(), decodedMessage.getXid());
- }
-
- public void testSessionXASuspendMessage() throws Exception
- {
- Packet message = new EmptyPacket(SESS_XA_SUSPEND);
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(message);
-
- assertEquals(SESS_XA_SUSPEND, decodedPacket.getType());
- }
-
- public void testSessionRemoveDestinationMessage() throws Exception
- {
- SessionRemoveDestinationMessage message = new SessionRemoveDestinationMessage(
- new SimpleString(randomString()), randomBoolean());
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(message, message
- .getAddress(), message.isTemporary());
-
- assertTrue(decodedPacket instanceof SessionRemoveDestinationMessage);
- SessionRemoveDestinationMessage decodedMessage = (SessionRemoveDestinationMessage) decodedPacket;
- assertEquals(SESS_REMOVE_DESTINATION, decodedMessage.getType());
- assertEquals(message.getAddress(), decodedMessage.getAddress());
- assertEquals(message.isTemporary(), decodedMessage.isTemporary());
- }
-
- public void testSessionCreateQueueMessage() throws Exception
- {
- SessionCreateQueueMessage message = new SessionCreateQueueMessage(
- new SimpleString(randomString()), new SimpleString(randomString()),
- new SimpleString(randomString()), randomBoolean(),
- randomBoolean());
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(message,
- message.getAddress(), message.getQueueName(), new
- NullableStringHolder(message.getFilterString()), message.isDurable(),
- message
- .isTemporary());
-
- assertTrue(decodedPacket instanceof SessionCreateQueueMessage);
- SessionCreateQueueMessage decodedMessage = (SessionCreateQueueMessage)
- decodedPacket;
- assertEquals(SESS_CREATEQUEUE, decodedMessage.getType());
-
- assertEquals(message.getAddress(), decodedMessage.getAddress());
- assertEquals(message.getQueueName(), decodedMessage.getQueueName());
- assertEquals(message.getFilterString(), decodedMessage.getFilterString());
- assertEquals(message.isDurable(), decodedMessage.isDurable());
- assertEquals(message.isTemporary(), decodedMessage.isTemporary());
-
- }
-
- public void testSessionQueueQueryMessage() throws Exception
- {
- SessionQueueQueryMessage message = new SessionQueueQueryMessage(
- new SimpleString(randomString()));
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(message,
- message.getQueueName());
-
- assertTrue(decodedPacket instanceof SessionQueueQueryMessage);
- SessionQueueQueryMessage decodedMessage = (SessionQueueQueryMessage)
- decodedPacket;
- assertEquals(SESS_QUEUEQUERY, decodedMessage.getType());
- assertEquals(message.getQueueName(), decodedMessage.getQueueName());
- }
-
- public void testSessionQueueQueryResponseMessage() throws Exception
- {
- SessionQueueQueryResponseMessage message = new
- SessionQueueQueryResponseMessage(
- randomBoolean(), randomBoolean(), randomInt(), randomInt(),
- randomInt(), new SimpleString(randomString()), new
- SimpleString(randomString()));
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(message,
- message.isExists(), message.isDurable(), message.isTemporary(),
- message.getMaxSize(), message.getConsumerCount(), message
- .getMessageCount(), new NullableStringHolder(message.getFilterString()),
- new NullableStringHolder(message.getAddress()));
-
- assertTrue(decodedPacket instanceof SessionQueueQueryResponseMessage);
- SessionQueueQueryResponseMessage decodedMessage =
- (SessionQueueQueryResponseMessage) decodedPacket;
- assertEquals(SESS_QUEUEQUERY_RESP, decodedMessage.getType());
-
- assertEquals(message.isExists(), decodedMessage.isExists());
- assertEquals(message.isDurable(), decodedMessage.isDurable());
- assertEquals(message.isTemporary(), decodedMessage.isTemporary());
- assertEquals(message.getConsumerCount(), decodedMessage
- .getConsumerCount());
- assertEquals(message.getMessageCount(), decodedMessage.getMessageCount());
- assertEquals(message.getFilterString(), decodedMessage.getFilterString());
- assertEquals(message.getAddress(), decodedMessage.getAddress());
- }
-
- public void testSessionAddAddressMessage() throws Exception
- {
- SessionAddDestinationMessage message = new SessionAddDestinationMessage(
- new SimpleString(randomString()), randomBoolean());
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(message,
- message.getAddress(), message.isTemporary());
-
- assertTrue(decodedPacket instanceof SessionAddDestinationMessage);
- SessionAddDestinationMessage decodedMessage =
- (SessionAddDestinationMessage) decodedPacket;
- assertEquals(SESS_ADD_DESTINATION, decodedMessage.getType());
- assertEquals(message.getAddress(), decodedMessage.getAddress());
- assertEquals(message.isTemporary(), decodedMessage.isTemporary());
- }
-
- public void testSessionBindingQueryMessage() throws Exception
- {
- SessionBindingQueryMessage message = new SessionBindingQueryMessage(
- new SimpleString(randomString()));
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(message,
- message.getAddress());
-
- assertTrue(decodedPacket instanceof SessionBindingQueryMessage);
- SessionBindingQueryMessage decodedMessage = (SessionBindingQueryMessage)
- decodedPacket;
- assertEquals(SESS_BINDINGQUERY, decodedMessage.getType());
-
- assertEquals(message.getAddress(), decodedMessage.getAddress());
- }
-
- public void testSessionBindingQueryResponseMessage() throws Exception
- {
- boolean exists = true;
- List<SimpleString> queueNames = new ArrayList<SimpleString>();
- queueNames.add(new SimpleString(randomString()));
- queueNames.add(new SimpleString(randomString()));
- queueNames.add(new SimpleString(randomString()));
- SessionBindingQueryResponseMessage message = new
- SessionBindingQueryResponseMessage(
- exists, queueNames);
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(message,
- message.isExists(), message.getQueueNames());
-
- assertTrue(decodedPacket instanceof SessionBindingQueryResponseMessage);
- SessionBindingQueryResponseMessage decodedMessage =
- (SessionBindingQueryResponseMessage) decodedPacket;
- assertEquals(SESS_BINDINGQUERY_RESP, decodedMessage.getType());
- assertEquals(message.isExists(), decodedMessage.isExists());
-
- List<SimpleString> decodedNames = decodedMessage.getQueueNames();
- assertEquals(queueNames.size(), decodedNames.size());
- for (int i = 0; i < queueNames.size(); i++)
- {
- assertEquals(queueNames.get(i), decodedNames.get(i));
- }
- }
-
- public void testDeleteQueueRequest() throws Exception
- {
- SessionDeleteQueueMessage message = new SessionDeleteQueueMessage(
- new SimpleString(randomString()));
-
- Packet decodedPacket = encodeAndCheckBytesAndDecode(message,
- message.getQueueName());
-
- assertTrue(decodedPacket instanceof SessionDeleteQueueMessage);
- SessionDeleteQueueMessage decodedMessage = (SessionDeleteQueueMessage)
- decodedPacket;
- assertEquals(SESS_DELETE_QUEUE, decodedMessage.getType());
- assertEquals(message.getQueueName(), decodedMessage.getQueueName());
- }
-
- // Package protected ---------------------------------------------
-
- // Protected -----------------------------------------------------
-
- // Private -------------------------------------------------------
-
- private static class SimpleProtocolDecoderOutput implements
- ProtocolDecoderOutput
- {
- private Object message;
-
- public void flush()
- {
- }
-
- public void write(Object message)
- {
- this.message = message;
- }
-
- public Object getMessage()
- {
- return message;
- }
-
- }
-
- private class NullableStringHolder
- {
- public SimpleString str;
-
- NullableStringHolder(SimpleString str)
- {
- this.str = str;
- }
- }
-}
Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/util/TypedPropertiesTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/util/TypedPropertiesTest.java 2008-06-13 20:59:02 UTC (rev 4470)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/util/TypedPropertiesTest.java 2008-06-14 08:35:15 UTC (rev 4471)
@@ -6,28 +6,17 @@
*/
package org.jboss.messaging.tests.unit.core.util;
-import static org.jboss.messaging.tests.unit.core.remoting.impl.wireformat.CodecAssert.assertEqualsByteArrays;
-import static org.jboss.messaging.tests.util.RandomUtil.randomBoolean;
-import static org.jboss.messaging.tests.util.RandomUtil.randomByte;
-import static org.jboss.messaging.tests.util.RandomUtil.randomBytes;
-import static org.jboss.messaging.tests.util.RandomUtil.randomChar;
-import static org.jboss.messaging.tests.util.RandomUtil.randomDouble;
-import static org.jboss.messaging.tests.util.RandomUtil.randomFloat;
-import static org.jboss.messaging.tests.util.RandomUtil.randomInt;
-import static org.jboss.messaging.tests.util.RandomUtil.randomLong;
-import static org.jboss.messaging.tests.util.RandomUtil.randomShort;
-import static org.jboss.messaging.tests.util.RandomUtil.randomSimpleString;
-
-import java.util.Iterator;
-
import junit.framework.TestCase;
-
import org.jboss.messaging.core.remoting.impl.mina.IoBufferWrapper;
+import static org.jboss.messaging.tests.unit.core.remoting.impl.CodecAssert.assertEqualsByteArrays;
import org.jboss.messaging.tests.util.RandomUtil;
+import static org.jboss.messaging.tests.util.RandomUtil.*;
import org.jboss.messaging.util.MessagingBuffer;
import org.jboss.messaging.util.SimpleString;
import org.jboss.messaging.util.TypedProperties;
+import java.util.Iterator;
+
/**
* @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
*
More information about the jboss-cvs-commits
mailing list