[jboss-cvs] JBoss Messaging SVN: r4633 - in trunk: src/main/org/jboss/messaging/core/client/impl and 11 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Jul 4 07:43:35 EDT 2008


Author: timfox
Date: 2008-07-04 07:43:34 -0400 (Fri, 04 Jul 2008)
New Revision: 4633

Added:
   trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/RemotingConnectionTest.java
Removed:
   trunk/src/main/org/jboss/messaging/util/MessagingBufferFactory.java
   trunk/src/main/org/jboss/messaging/util/MessagingBufferFactoryImpl.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/RemotingConnectionTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/util/MessagingBufferFactoryTest.java
Modified:
   trunk/src/main/org/jboss/messaging/core/client/ClientSession.java
   trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java
   trunk/src/main/org/jboss/messaging/core/remoting/RemotingConnection.java
   trunk/src/main/org/jboss/messaging/core/remoting/RemotingConnector.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/RemotingConnectionImpl.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/INVMConnector.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaConnector.java
   trunk/src/main/org/jboss/messaging/core/transaction/impl/TransactionImpl.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/client/impl/ClientSessionImplTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/invm/INVMConnectorTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/mina/MinaConnectorTest.java
Log:
Completed some tests and removed messagingbufferfactory


Modified: trunk/src/main/org/jboss/messaging/core/client/ClientSession.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/ClientSession.java	2008-07-04 10:19:10 UTC (rev 4632)
+++ trunk/src/main/org/jboss/messaging/core/client/ClientSession.java	2008-07-04 11:43:34 UTC (rev 4633)
@@ -97,7 +97,7 @@
    boolean isXA();
 
    ClientMessage createClientMessage(final byte type, final boolean durable, final long expiration,
-                            final long timestamp, final byte priority);
+                                     final long timestamp, final byte priority);
 
    ClientMessage createClientMessage(final byte type, final boolean durable);
 

Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java	2008-07-04 10:19:10 UTC (rev 4632)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java	2008-07-04 11:43:34 UTC (rev 4633)
@@ -21,22 +21,63 @@
  */ 
 package org.jboss.messaging.core.client.impl;
 
-import org.jboss.messaging.core.client.*;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+import javax.transaction.xa.XAException;
+import javax.transaction.xa.XAResource;
+import javax.transaction.xa.Xid;
+
+import org.jboss.messaging.core.client.ClientBrowser;
+import org.jboss.messaging.core.client.ClientConnectionFactory;
+import org.jboss.messaging.core.client.ClientConsumer;
+import org.jboss.messaging.core.client.ClientMessage;
+import org.jboss.messaging.core.client.ClientProducer;
 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.PacketDispatcher;
 import org.jboss.messaging.core.remoting.RemotingConnection;
-import org.jboss.messaging.core.remoting.impl.wireformat.*;
-import org.jboss.messaging.util.*;
+import org.jboss.messaging.core.remoting.impl.wireformat.ConsumerFlowCreditMessage;
+import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
+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.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;
+import org.jboss.messaging.util.SimpleString;
+import org.jboss.messaging.util.TokenBucketLimiterImpl;
 
-import javax.transaction.xa.XAException;
-import javax.transaction.xa.XAResource;
-import javax.transaction.xa.Xid;
-import java.util.*;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-
 /**
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
  * @author <a href="mailto:ovidiu at feodorov.com">Ovidiu Feodorov</a>
@@ -55,6 +96,8 @@
    private static final Logger log = Logger.getLogger(ClientSessionImpl.class);
 
    private boolean trace = log.isTraceEnabled();
+   
+   public static final int INITIAL_MESSAGE_BODY_SIZE = 1024;
 
    // Attributes -----------------------------------------------------------------------------------
 
@@ -106,8 +149,6 @@
 
    private final boolean blockOnAcknowledge;
 
-   private MessagingBufferFactory messagingBufferFactory;
-
    //For testing only
    private boolean forceNotSameRM;
 
@@ -160,8 +201,6 @@
       this.autoCommitSends = autoCommitSends;
 
       this.blockOnAcknowledge = blockOnAcknowledge;
-
-      messagingBufferFactory = new MessagingBufferFactoryImpl();
    }
 
    // ClientSession implementation -----------------------------------------------------------------
@@ -492,39 +531,25 @@
 
    public ClientMessage createClientMessage(byte type, boolean durable, long expiration, long timestamp, byte priority)
    {
-      MessagingBuffer body = messagingBufferFactory.createMessagingBuffer(remotingConnection.getLocation().getTransport(), 1024);
+      MessagingBuffer body = remotingConnection.createBuffer(INITIAL_MESSAGE_BODY_SIZE);
+      
       return new ClientMessageImpl(type, durable, expiration, timestamp, priority, body);
    }
 
    public ClientMessage createClientMessage(byte type, boolean durable)
    {
-      MessagingBuffer body = messagingBufferFactory.createMessagingBuffer(remotingConnection.getLocation().getTransport(), 1024);
+      MessagingBuffer body = remotingConnection.createBuffer(INITIAL_MESSAGE_BODY_SIZE);
+      
       return new ClientMessageImpl(type, durable, body);
    }
 
    public ClientMessage createClientMessage(boolean durable)
    {
-      MessagingBuffer body = messagingBufferFactory.createMessagingBuffer(remotingConnection.getLocation().getTransport(), 1024);
+      MessagingBuffer body = remotingConnection.createBuffer(INITIAL_MESSAGE_BODY_SIZE);
+      
       return new ClientMessageImpl(durable, body);
    }
-
-   public synchronized void cleanUp() throws Exception
-   {
-      if (closed)
-      {
-         return;
-      }
       
-      try
-      {
-         cleanUpChildren();
-      }
-      finally
-      {
-         doCleanup();
-      }
-   }
-   
    public boolean isClosed()
    {
       return closed;
@@ -559,8 +584,10 @@
    {
       return xa;
    }
+   
+   
    // ClientSessionInternal implementation ------------------------------------------------------------
-
+      
    public long getServerTargetID()
    {
       return serverTargetID;
@@ -645,6 +672,23 @@
    {
       return executorService;
    }
+   
+   public synchronized void cleanUp() throws Exception
+   {
+      if (closed)
+      {
+         return;
+      }
+      
+      try
+      {
+         cleanUpChildren();
+      }
+      finally
+      {
+         doCleanup();
+      }
+   }
 
    // XAResource implementation --------------------------------------------------------------------
 

Modified: trunk/src/main/org/jboss/messaging/core/remoting/RemotingConnection.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/RemotingConnection.java	2008-07-04 10:19:10 UTC (rev 4632)
+++ trunk/src/main/org/jboss/messaging/core/remoting/RemotingConnection.java	2008-07-04 11:43:34 UTC (rev 4633)
@@ -25,6 +25,7 @@
 import org.jboss.messaging.core.client.Location;
 import org.jboss.messaging.core.client.RemotingSessionListener;
 import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.util.MessagingBuffer;
 
 /**
  * 
@@ -50,4 +51,6 @@
    PacketDispatcher getPacketDispatcher();
    
    public Location getLocation();
+   
+   public MessagingBuffer createBuffer(int size);
 }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/RemotingConnector.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/RemotingConnector.java	2008-07-04 10:19:10 UTC (rev 4632)
+++ trunk/src/main/org/jboss/messaging/core/remoting/RemotingConnector.java	2008-07-04 11:43:34 UTC (rev 4633)
@@ -27,6 +27,7 @@
 import org.jboss.messaging.core.client.ConnectionParams;
 import org.jboss.messaging.core.client.Location;
 import org.jboss.messaging.core.client.RemotingSessionListener;
+import org.jboss.messaging.util.MessagingBuffer;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -49,4 +50,6 @@
    Location getLocation();
    
    ConnectionParams getConnectionParams();
+   
+   MessagingBuffer createBuffer(int size);
 }
\ No newline at end of file

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/RemotingConnectionImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/RemotingConnectionImpl.java	2008-07-04 10:19:10 UTC (rev 4632)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/RemotingConnectionImpl.java	2008-07-04 11:43:34 UTC (rev 4633)
@@ -22,17 +22,23 @@
 
 package org.jboss.messaging.core.remoting.impl;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import org.jboss.messaging.core.client.ConnectionParams;
 import org.jboss.messaging.core.client.Location;
 import org.jboss.messaging.core.client.RemotingSessionListener;
 import org.jboss.messaging.core.exception.MessagingException;
 import org.jboss.messaging.core.logging.Logger;
-import org.jboss.messaging.core.remoting.*;
+import org.jboss.messaging.core.remoting.ConnectorRegistryFactory;
+import org.jboss.messaging.core.remoting.Packet;
+import org.jboss.messaging.core.remoting.PacketDispatcher;
+import org.jboss.messaging.core.remoting.RemotingConnection;
+import org.jboss.messaging.core.remoting.RemotingConnector;
+import org.jboss.messaging.core.remoting.RemotingSession;
 import org.jboss.messaging.core.remoting.impl.wireformat.MessagingExceptionMessage;
+import org.jboss.messaging.util.MessagingBuffer;
 
-import java.util.ArrayList;
-import java.util.List;
-
 /**
  * @author <a href="tim.fox at jboss.com">Tim Fox</a>
  * @author <a href="ovidiu at feodorov.com">Ovidiu Feodorov</a>
@@ -248,6 +254,11 @@
    {
       return location;
    }
+   
+   public MessagingBuffer createBuffer(final int size)
+   {
+      return connector.createBuffer(size);
+   }
 
    // Package protected ----------------------------------------------------------------------------
 

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/INVMConnector.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/INVMConnector.java	2008-07-04 10:19:10 UTC (rev 4632)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/INVMConnector.java	2008-07-04 11:43:34 UTC (rev 4633)
@@ -23,6 +23,7 @@
 package org.jboss.messaging.core.remoting.impl.invm;
 
 import java.io.IOException;
+import java.nio.ByteBuffer;
 
 import org.jboss.messaging.core.client.ConnectionParams;
 import org.jboss.messaging.core.client.Location;
@@ -30,6 +31,8 @@
 import org.jboss.messaging.core.remoting.PacketDispatcher;
 import org.jboss.messaging.core.remoting.RemotingConnector;
 import org.jboss.messaging.core.remoting.RemotingSession;
+import org.jboss.messaging.util.ByteBufferWrapper;
+import org.jboss.messaging.util.MessagingBuffer;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -69,7 +72,7 @@
 
    // Public --------------------------------------------------------
 
-   // NIOConnector implementation -----------------------------------
+   // RemotingConnector implementation -----------------------------------
 
    public RemotingSession connect()
          throws IOException
@@ -114,6 +117,11 @@
    public void removeSessionListener(RemotingSessionListener listener)
    {      
    }
+   
+   public MessagingBuffer createBuffer(int size)
+   {
+      return new ByteBufferWrapper(ByteBuffer.allocate(size));
+   }
 
    // Package protected ---------------------------------------------
 

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaConnector.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaConnector.java	2008-07-04 10:19:10 UTC (rev 4632)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaConnector.java	2008-07-04 11:43:34 UTC (rev 4633)
@@ -22,7 +22,23 @@
 
 package org.jboss.messaging.core.remoting.impl.mina;
 
-import org.apache.mina.common.*;
+import java.io.IOException;
+import java.net.InetSocketAddress;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.ScheduledThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+
+import org.apache.mina.common.CloseFuture;
+import org.apache.mina.common.ConnectFuture;
+import org.apache.mina.common.DefaultIoFilterChainBuilder;
+import org.apache.mina.common.IdleStatus;
+import org.apache.mina.common.IoService;
+import org.apache.mina.common.IoServiceListener;
+import org.apache.mina.common.IoSession;
 import org.apache.mina.filter.ssl.SslFilter;
 import org.apache.mina.transport.socket.SocketConnector;
 import org.apache.mina.transport.socket.SocketSessionConfig;
@@ -35,17 +51,20 @@
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.ping.Pinger;
 import org.jboss.messaging.core.ping.impl.PingerImpl;
-import org.jboss.messaging.core.remoting.*;
+import org.jboss.messaging.core.remoting.CleanUpNotifier;
+import org.jboss.messaging.core.remoting.Packet;
+import org.jboss.messaging.core.remoting.PacketDispatcher;
+import org.jboss.messaging.core.remoting.PacketHandler;
+import org.jboss.messaging.core.remoting.PacketReturner;
+import org.jboss.messaging.core.remoting.RemotingConnector;
+import org.jboss.messaging.core.remoting.RemotingSession;
+import org.jboss.messaging.core.remoting.ResponseHandler;
+import org.jboss.messaging.core.remoting.TransportType;
 import org.jboss.messaging.core.remoting.impl.ResponseHandlerImpl;
 import org.jboss.messaging.core.remoting.impl.wireformat.Ping;
 import org.jboss.messaging.core.remoting.impl.wireformat.Pong;
+import org.jboss.messaging.util.MessagingBuffer;
 
-import java.io.IOException;
-import java.net.InetSocketAddress;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.*;
-
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
  * @author <a href="mailto:ataylor at redhat.com">Andy Taylor</a>
@@ -175,7 +194,7 @@
       scheduledExecutor = new ScheduledThreadPoolExecutor(1);
    }
 
-   // NIOConnector implementation -----------------------------------
+   // RemotingConnector implementation -----------------------------------
 
    public RemotingSession connect() throws IOException
    {
@@ -317,6 +336,11 @@
    {
       return dispatcher;
    }
+   
+   public MessagingBuffer createBuffer(int size)
+   {
+      return new IoBufferWrapper(size);
+   }
 
    // FailureNotifier implementation -------------------------------
 

Modified: trunk/src/main/org/jboss/messaging/core/transaction/impl/TransactionImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/transaction/impl/TransactionImpl.java	2008-07-04 10:19:10 UTC (rev 4632)
+++ trunk/src/main/org/jboss/messaging/core/transaction/impl/TransactionImpl.java	2008-07-04 11:43:34 UTC (rev 4633)
@@ -121,6 +121,7 @@
       {
          throw new IllegalStateException("Transaction is in invalid state " + state);
       }
+      
       acknowledgements.add(acknowledgement);
 
       ServerMessage message = acknowledgement.getMessage();
@@ -157,7 +158,6 @@
             }
          }
       }
-
    }
 
    public void prepare() throws Exception
@@ -343,6 +343,7 @@
    public void markAsRollbackOnly(MessagingException messagingException)
    {
       state = State.ROLLBACK_ONLY;
+      
       this.messagingException = messagingException;
    }
 

Deleted: trunk/src/main/org/jboss/messaging/util/MessagingBufferFactory.java
===================================================================
--- trunk/src/main/org/jboss/messaging/util/MessagingBufferFactory.java	2008-07-04 10:19:10 UTC (rev 4632)
+++ trunk/src/main/org/jboss/messaging/util/MessagingBufferFactory.java	2008-07-04 11:43:34 UTC (rev 4633)
@@ -1,11 +0,0 @@
-package org.jboss.messaging.util;
-
-import org.jboss.messaging.core.remoting.TransportType;
-
-/**
- * @author <a href="ataylor at redhat.com">Andy Taylor</a>
- */
-public interface MessagingBufferFactory
-{
-   MessagingBuffer createMessagingBuffer(TransportType transportType, int len);
-}

Deleted: trunk/src/main/org/jboss/messaging/util/MessagingBufferFactoryImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/util/MessagingBufferFactoryImpl.java	2008-07-04 10:19:10 UTC (rev 4632)
+++ trunk/src/main/org/jboss/messaging/util/MessagingBufferFactoryImpl.java	2008-07-04 11:43:34 UTC (rev 4633)
@@ -1,51 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
- * 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.util;
-
-import org.jboss.messaging.core.remoting.TransportType;
-import org.jboss.messaging.core.remoting.impl.mina.IoBufferWrapper;
-
-import java.nio.ByteBuffer;
-
-/**
- * a factory class for creating an appropriate type of MessagingBuffer.
- * 
- * @author <a href="ataylor at redhat.com">Andy Taylor</a>
- */
-public class MessagingBufferFactoryImpl implements MessagingBufferFactory
-{
-   public MessagingBuffer createMessagingBuffer(TransportType transportType, int len)
-   {
-      if (transportType == TransportType.TCP)
-      {
-         return new IoBufferWrapper(len);
-      }
-      else if(transportType == TransportType.INVM)
-      {
-         return new ByteBufferWrapper(ByteBuffer.allocate(len));
-      }
-      else
-      {
-         throw new IllegalArgumentException("No Messaging Buffer for transport");
-      }
-   }
-}

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/client/impl/ClientSessionImplTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/client/impl/ClientSessionImplTest.java	2008-07-04 10:19:10 UTC (rev 4632)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/client/impl/ClientSessionImplTest.java	2008-07-04 11:43:34 UTC (rev 4633)
@@ -33,6 +33,7 @@
 import org.easymock.EasyMock;
 import org.jboss.messaging.core.client.ClientBrowser;
 import org.jboss.messaging.core.client.ClientConnectionFactory;
+import org.jboss.messaging.core.client.ClientMessage;
 import org.jboss.messaging.core.client.ClientSession;
 import org.jboss.messaging.core.client.Location;
 import org.jboss.messaging.core.client.impl.ClientConnectionInternal;
@@ -81,6 +82,7 @@
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionXASetTimeoutResponseMessage;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAStartMessage;
 import org.jboss.messaging.tests.util.UnitTestCase;
+import org.jboss.messaging.util.MessagingBuffer;
 import org.jboss.messaging.util.SimpleString;
 
 /**
@@ -1158,6 +1160,53 @@
       }
    }
    
+   public void testCreateMessage() throws Exception
+   {
+      ClientConnectionInternal conn = EasyMock.createStrictMock(ClientConnectionInternal.class);
+      RemotingConnection rc = EasyMock.createStrictMock(RemotingConnection.class);      
+      ClientConnectionFactory cf = EasyMock.createStrictMock(ClientConnectionFactory.class);
+      PacketDispatcher pd = EasyMock.createStrictMock(PacketDispatcher.class);
+      MessagingBuffer buff = EasyMock.createMock(MessagingBuffer.class);
+      EasyMock.expect(rc.createBuffer(ClientSessionImpl.INITIAL_MESSAGE_BODY_SIZE)).andStubReturn(buff);      
+      EasyMock.replay(rc);
+      
+      ClientSessionInternal session = new ClientSessionImpl(conn, 453543, false, -1, false, false, false, false, rc, cf, pd);
+      
+      ClientMessage msg = session.createClientMessage(false);
+      assertFalse(msg.isDurable());
+      
+      msg = session.createClientMessage(true);
+      assertTrue(msg.isDurable());
+      
+      final byte type = 123;
+      
+      msg = session.createClientMessage(type, false);
+      assertFalse(msg.isDurable());
+      assertEquals(type, msg.getType());
+      
+      msg = session.createClientMessage(type, true);
+      assertTrue(msg.isDurable());
+      assertEquals(type, msg.getType());
+            
+      final long expiration = 120912902;
+      final long timestamp = 1029128;
+      final byte priority = 12;
+            
+      msg = session.createClientMessage(type, false, expiration, timestamp, priority);
+      assertFalse(msg.isDurable());
+      assertEquals(type, msg.getType());
+      assertEquals(expiration, msg.getExpiration());
+      assertEquals(timestamp, msg.getTimestamp());
+      assertEquals(priority, msg.getPriority());
+
+      msg = session.createClientMessage(type, true, expiration, timestamp, priority);
+      assertTrue(msg.isDurable());
+      assertEquals(type, msg.getType());
+      assertEquals(expiration, msg.getExpiration());
+      assertEquals(timestamp, msg.getTimestamp());
+      assertEquals(priority, msg.getPriority());
+   }
+   
    // Private -------------------------------------------------------------------------------------------
 
    private void testClose(boolean delivered) throws Exception

Deleted: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/RemotingConnectionTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/RemotingConnectionTest.java	2008-07-04 10:19:10 UTC (rev 4632)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/RemotingConnectionTest.java	2008-07-04 11:43:34 UTC (rev 4633)
@@ -1,924 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
- * 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.easymock.EasyMock;
-import org.jboss.messaging.core.client.ConnectionParams;
-import org.jboss.messaging.core.client.Location;
-import org.jboss.messaging.core.client.RemotingSessionListener;
-import org.jboss.messaging.core.client.impl.ConnectionParamsImpl;
-import org.jboss.messaging.core.exception.MessagingException;
-import org.jboss.messaging.core.remoting.*;
-import org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl;
-import org.jboss.messaging.core.remoting.impl.wireformat.MessagingExceptionMessage;
-import org.jboss.messaging.tests.util.UnitTestCase;
-
-/**
- * @author <a href="ataylor at redhat.com">Andy Taylor</a>
- */
-public class RemotingConnectionTest extends UnitTestCase
-{
-   protected void tearDown() throws Exception
-   {
-      super.tearDown();
-      ConnectorRegistryFactory.setRegisteryLocator(null);
-   }
-
-   public void testNullLocationThrowsException()
-   {
-      ConnectionParams connectionParams = EasyMock.createNiceMock(ConnectionParams.class);
-      try
-      {
-         new RemotingConnectionImpl(null, connectionParams);
-         fail("should throw exception");
-      }
-      catch (IllegalArgumentException e)
-      {
-         //pass
-      }
-   }
-
-   public void testNullConnectionParamsThrowsException()
-   {
-      Location location = EasyMock.createNiceMock(Location.class);
-      try
-      {
-         new RemotingConnectionImpl(location, null);
-         fail("should throw exception");
-      }
-      catch (IllegalArgumentException e)
-      {
-         //pass
-      }
-   }
-
-   public void testConnectionStarted() throws Throwable
-   {
-      final ConnectorRegistry connectorRegistry = EasyMock.createStrictMock(ConnectorRegistry.class);
-      RemotingConnector connector = EasyMock.createStrictMock(RemotingConnector.class);
-      ConnectorRegistryFactory.setRegisteryLocator(new ConnectorRegistryLocator()
-      {
-         public ConnectorRegistry locate()
-         {
-            return connectorRegistry;
-         }
-      });
-      Location location = EasyMock.createNiceMock(Location.class);
-      ConnectionParams connectionParams = EasyMock.createNiceMock(ConnectionParams.class);
-      RemotingSession remotingSession = EasyMock.createStrictMock(RemotingSession.class);
-
-      EasyMock.expect(connectorRegistry.getConnector(location, connectionParams)).andReturn(connector);
-      EasyMock.replay(connectorRegistry);
-      EasyMock.expect(connector.connect()).andReturn(remotingSession);
-      EasyMock.replay(connector);
-
-      RemotingConnectionImpl remotingConnection = new RemotingConnectionImpl(location, connectionParams);
-      remotingConnection.start();
-      EasyMock.verify(connector);
-      EasyMock.verify(connectorRegistry);
-   }
-
-   public void testConnectionStartedAndStopped() throws Throwable
-   {
-      final ConnectorRegistry connectorRegistry = EasyMock.createStrictMock(ConnectorRegistry.class);
-      RemotingConnector connector = EasyMock.createStrictMock(RemotingConnector.class);
-      ConnectorRegistryFactory.setRegisteryLocator(new ConnectorRegistryLocator()
-      {
-         public ConnectorRegistry locate()
-         {
-            return connectorRegistry;
-         }
-      });
-      Location location = EasyMock.createNiceMock(Location.class);
-      ConnectionParams connectionParams = EasyMock.createNiceMock(ConnectionParams.class);
-      RemotingSession remotingSession = EasyMock.createStrictMock(RemotingSession.class);
-
-      EasyMock.expect(connectorRegistry.getConnector(location, connectionParams)).andReturn(connector);
-      EasyMock.expect(connectorRegistry.removeConnector(location)).andReturn(connector);
-      EasyMock.replay(connectorRegistry);
-      EasyMock.expect(connector.connect()).andReturn(remotingSession);
-      EasyMock.expect(connector.disconnect()).andReturn(true);
-      EasyMock.replay(connector);
-
-      RemotingConnectionImpl remotingConnection = new RemotingConnectionImpl(location, connectionParams);
-      remotingConnection.start();
-      remotingConnection.stop();
-      EasyMock.verify(connector);
-      EasyMock.verify(connectorRegistry);
-      assertEquals(-1, remotingConnection.getSessionID());
-
-   }
-
-   public void testConnectionListenerRemovedOnStop() throws Throwable
-   {
-      final ConnectorRegistry connectorRegistry = EasyMock.createStrictMock(ConnectorRegistry.class);
-      RemotingConnector connector = EasyMock.createStrictMock(RemotingConnector.class);
-      RemotingSessionListener listener = EasyMock.createNiceMock(RemotingSessionListener.class);
-      ConnectorRegistryFactory.setRegisteryLocator(new ConnectorRegistryLocator()
-      {
-         public ConnectorRegistry locate()
-         {
-            return connectorRegistry;
-         }
-      });
-      Location location = EasyMock.createNiceMock(Location.class);
-      ConnectionParams connectionParams = EasyMock.createNiceMock(ConnectionParams.class);
-      RemotingSession remotingSession = EasyMock.createStrictMock(RemotingSession.class);
-
-      EasyMock.expect(connectorRegistry.getConnector(location, connectionParams)).andReturn(connector);
-      EasyMock.expect(connectorRegistry.removeConnector(location)).andReturn(connector);
-      EasyMock.replay(connectorRegistry);
-      EasyMock.expect(connector.connect()).andReturn(remotingSession);
-      connector.addSessionListener(listener);
-      connector.removeSessionListener(listener);
-      EasyMock.expect(connector.disconnect()).andReturn(true);
-      EasyMock.replay(connector);
-
-      RemotingConnectionImpl remotingConnection = new RemotingConnectionImpl(location, connectionParams);
-      remotingConnection.start();
-      remotingConnection.addRemotingSessionListener(listener);
-      remotingConnection.stop();
-      EasyMock.verify(connector);
-      EasyMock.verify(connectorRegistry);
-      assertEquals(-1, remotingConnection.getSessionID());
-
-   }
-
-   public void testConnectionGetSessionId() throws Throwable
-   {
-      final ConnectorRegistry connectorRegistry = EasyMock.createStrictMock(ConnectorRegistry.class);
-      RemotingConnector connector = EasyMock.createStrictMock(RemotingConnector.class);
-      ConnectorRegistryFactory.setRegisteryLocator(new ConnectorRegistryLocator()
-      {
-         public ConnectorRegistry locate()
-         {
-            return connectorRegistry;
-         }
-      });
-      Location location = EasyMock.createNiceMock(Location.class);
-      ConnectionParams connectionParams = EasyMock.createNiceMock(ConnectionParams.class);
-      RemotingSession remotingSession = EasyMock.createStrictMock(RemotingSession.class);
-
-      EasyMock.expect(connectorRegistry.getConnector(location, connectionParams)).andReturn(connector);
-      EasyMock.replay(connectorRegistry);
-      EasyMock.expect(connector.connect()).andReturn(remotingSession);
-      EasyMock.replay(connector);
-      EasyMock.expect(remotingSession.isConnected()).andReturn(true);
-      EasyMock.expect(remotingSession.getID()).andReturn((123l));
-      EasyMock.replay(remotingSession);
-
-      RemotingConnectionImpl remotingConnection = new RemotingConnectionImpl(location, connectionParams);
-      remotingConnection.start();
-      assertEquals(123l, remotingConnection.getSessionID());
-
-      EasyMock.verify(connector);
-      EasyMock.verify(connectorRegistry);
-      EasyMock.verify(remotingSession);
-   }
-
-   public void testConnectionGetSessionIdDisconnected() throws Throwable
-   {
-      final ConnectorRegistry connectorRegistry = EasyMock.createStrictMock(ConnectorRegistry.class);
-      RemotingConnector connector = EasyMock.createStrictMock(RemotingConnector.class);
-      ConnectorRegistryFactory.setRegisteryLocator(new ConnectorRegistryLocator()
-      {
-         public ConnectorRegistry locate()
-         {
-            return connectorRegistry;
-         }
-      });
-      Location location = EasyMock.createNiceMock(Location.class);
-      ConnectionParams connectionParams = EasyMock.createNiceMock(ConnectionParams.class);
-      RemotingSession remotingSession = EasyMock.createStrictMock(RemotingSession.class);
-
-      EasyMock.expect(connectorRegistry.getConnector(location, connectionParams)).andReturn(connector);
-      EasyMock.replay(connectorRegistry);
-      EasyMock.expect(connector.connect()).andReturn(remotingSession);
-      EasyMock.replay(connector);
-      EasyMock.expect(remotingSession.isConnected()).andReturn(false);
-      //EasyMock.expect(nioSession.getID()).andReturn((123l));
-      EasyMock.replay(remotingSession);
-
-      RemotingConnectionImpl remotingConnection = new RemotingConnectionImpl(location, connectionParams);
-      remotingConnection.start();
-      assertEquals(-1, remotingConnection.getSessionID());
-
-      EasyMock.verify(connector);
-      EasyMock.verify(connectorRegistry);
-      EasyMock.verify(remotingSession);
-   }
-
-   public void testConnectionGetSessionIdStopped() throws Throwable
-   {
-      final ConnectorRegistry connectorRegistry = EasyMock.createStrictMock(ConnectorRegistry.class);
-      RemotingConnector connector = EasyMock.createStrictMock(RemotingConnector.class);
-      ConnectorRegistryFactory.setRegisteryLocator(new ConnectorRegistryLocator()
-      {
-         public ConnectorRegistry locate()
-         {
-            return connectorRegistry;
-         }
-      });
-      Location location = EasyMock.createNiceMock(Location.class);
-      ConnectionParams connectionParams = EasyMock.createNiceMock(ConnectionParams.class);
-      RemotingSession remotingSession = EasyMock.createStrictMock(RemotingSession.class);
-
-      EasyMock.expect(connectorRegistry.getConnector(location, connectionParams)).andReturn(connector);
-      EasyMock.replay(connectorRegistry);
-      EasyMock.expect(connector.connect()).andReturn(remotingSession);
-      EasyMock.replay(connector);
-      EasyMock.expect(remotingSession.isConnected()).andReturn(true);
-      EasyMock.expect(remotingSession.getID()).andReturn((123l));
-      EasyMock.replay(remotingSession);
-
-      RemotingConnectionImpl remotingConnection = new RemotingConnectionImpl(location, connectionParams);
-      remotingConnection.start();
-      remotingConnection.stop();
-      assertEquals(123l, remotingConnection.getSessionID());
-
-      EasyMock.verify(connector);
-      EasyMock.verify(connectorRegistry);
-      EasyMock.verify(remotingSession);
-   }
-
-   public void testConnectionSendBlocking() throws Throwable
-   {
-      final ConnectorRegistry connectorRegistry = EasyMock.createStrictMock(ConnectorRegistry.class);
-      RemotingConnector connector = EasyMock.createStrictMock(RemotingConnector.class);
-      ConnectorRegistryFactory.setRegisteryLocator(new ConnectorRegistryLocator()
-      {
-         public ConnectorRegistry locate()
-         {
-            return connectorRegistry;
-         }
-      });
-      Location location = EasyMock.createNiceMock(Location.class);
-      ConnectionParams connectionParams = new ConnectionParamsImpl();
-      connectionParams.setCallTimeout(1000);
-      DummyDispatcher dispatcher = new DummyDispatcher();
-      DummySession nioSession = new DummySession(dispatcher, 0, null, false);
-      PacketHandler handler = null;
-
-      Packet packet = EasyMock.createStrictMock(Packet.class);
-
-      EasyMock.expect(connectorRegistry.getConnector(location, connectionParams)).andReturn(connector);
-      EasyMock.replay(connectorRegistry);
-      EasyMock.expect(connector.connect()).andReturn(nioSession);
-      EasyMock.expect(connector.getDispatcher()).andReturn(dispatcher);
-      EasyMock.expect(connector.getDispatcher()).andReturn(dispatcher);
-      EasyMock.expect(connector.getDispatcher()).andReturn(dispatcher);
-      EasyMock.replay(connector);
-      packet.setTargetID(1);
-      packet.setExecutorID(2);
-      packet.setResponseTargetID(0);
-      EasyMock.replay(packet);
-
-
-      RemotingConnectionImpl remotingConnection = new RemotingConnectionImpl(location, connectionParams);
-      remotingConnection.start();
-      remotingConnection.sendBlocking(1, 2, packet);
-      EasyMock.verify(connector);
-      EasyMock.verify(connectorRegistry);
-      EasyMock.verify(packet);
-      assertNotNull(nioSession.getPacketDispatched());
-   }
-
-   public void testConnectionSendBlockingThrowsExceptionIfSessionNull() throws Throwable
-   {
-      final ConnectorRegistry connectorRegistry = EasyMock.createStrictMock(ConnectorRegistry.class);
-      RemotingConnector connector = EasyMock.createStrictMock(RemotingConnector.class);
-      ConnectorRegistryFactory.setRegisteryLocator(new ConnectorRegistryLocator()
-      {
-         public ConnectorRegistry locate()
-         {
-            return connectorRegistry;
-         }
-      });
-      Location location = EasyMock.createNiceMock(Location.class);
-      ConnectionParams connectionParams = new ConnectionParamsImpl();
-      connectionParams.setCallTimeout(1000);
-      DummyDispatcher dispatcher = new DummyDispatcher();
-      DummySession nioSession = new DummySession(dispatcher, 0, null, false);
-      PacketHandler handler = null;
-
-      Packet packet = EasyMock.createStrictMock(Packet.class);
-
-      //EasyMock.expect(connectorRegistry.getConnector(location, connectionParams)).andReturn(connector);
-      EasyMock.replay(connectorRegistry);
-      EasyMock.expect(connector.getDispatcher()).andReturn(dispatcher).anyTimes();
-      EasyMock.replay(connector);
-      //packet.setTargetID(1);
-      //packet.setExecutorID(2);
-      // packet.setResponseTargetID(0);
-      EasyMock.replay(packet);
-
-
-      RemotingConnectionImpl remotingConnection = new RemotingConnectionImpl(location, connectionParams);
-      try
-      {
-         remotingConnection.sendBlocking(1, 2, packet);
-         fail("should throw exception");
-      }
-      catch (IllegalStateException e)
-      {
-         //pass
-      }
-      EasyMock.verify(connector);
-      EasyMock.verify(connectorRegistry);
-      EasyMock.verify(packet);
-      assertNull(nioSession.getPacketDispatched());
-   }
-
-   public void testConnectionSendBlockingThrowsExceptionWhenSessionNotConnected() throws Throwable
-   {
-      final ConnectorRegistry connectorRegistry = EasyMock.createStrictMock(ConnectorRegistry.class);
-      RemotingConnector connector = EasyMock.createStrictMock(RemotingConnector.class);
-      ConnectorRegistryFactory.setRegisteryLocator(new ConnectorRegistryLocator()
-      {
-         public ConnectorRegistry locate()
-         {
-            return connectorRegistry;
-         }
-      });
-      Location location = EasyMock.createNiceMock(Location.class);
-      ConnectionParams connectionParams = new ConnectionParamsImpl();
-      connectionParams.setCallTimeout(1000);
-      DummyDispatcher dispatcher = new DummyDispatcher();
-      RemotingSession nioSession = EasyMock.createStrictMock(RemotingSession.class);
-      PacketHandler handler = null;
-
-      Packet packet = EasyMock.createStrictMock(Packet.class);
-      EasyMock.expect(nioSession.isConnected()).andReturn(false);
-      EasyMock.expect(connectorRegistry.getConnector(location, connectionParams)).andReturn(connector);
-      EasyMock.replay(connectorRegistry);
-      EasyMock.expect(connector.connect()).andReturn(nioSession);
-      EasyMock.replay(connector, nioSession);
-      EasyMock.replay(packet);
-
-
-      RemotingConnectionImpl remotingConnection = new RemotingConnectionImpl(location, connectionParams);
-      remotingConnection.start();
-      try
-      {
-         remotingConnection.sendBlocking(1, 2, packet);
-         fail("should throw exception");
-      }
-      catch (MessagingException e)
-      {
-         //pass
-      }
-      EasyMock.verify(connector, connectorRegistry, packet, nioSession);
-   }
-
-   public void testConnectionSendBlockingThrowsMessagingException() throws Throwable
-   {
-      final ConnectorRegistry connectorRegistry = EasyMock.createStrictMock(ConnectorRegistry.class);
-      RemotingConnector connector = EasyMock.createStrictMock(RemotingConnector.class);
-      ConnectorRegistryFactory.setRegisteryLocator(new ConnectorRegistryLocator()
-      {
-         public ConnectorRegistry locate()
-         {
-            return connectorRegistry;
-         }
-      });
-      Location location = EasyMock.createNiceMock(Location.class);
-      ConnectionParams connectionParams = new ConnectionParamsImpl();
-      connectionParams.setCallTimeout(1000);
-      DummyDispatcher dispatcher = new DummyDispatcher();
-      DummySession nioSession = new DummySession(dispatcher, 0, null, false);
-      PacketHandler handler = null;
-
-      MessagingExceptionMessage packet = new MessagingExceptionMessage(new MessagingException());
-
-      EasyMock.expect(connectorRegistry.getConnector(location, connectionParams)).andReturn(connector);
-      EasyMock.replay(connectorRegistry);
-      EasyMock.expect(connector.connect()).andReturn(nioSession);
-      EasyMock.expect(connector.getDispatcher()).andReturn(dispatcher);
-      EasyMock.expect(connector.getDispatcher()).andReturn(dispatcher);
-      EasyMock.expect(connector.getDispatcher()).andReturn(dispatcher);
-      EasyMock.replay(connector);
-      packet.setTargetID(1);
-      packet.setExecutorID(2);
-      packet.setResponseTargetID(0);
-
-
-      RemotingConnectionImpl remotingConnection = new RemotingConnectionImpl(location, connectionParams);
-      remotingConnection.start();
-      try
-      {
-         remotingConnection.sendBlocking(1, 2, packet);
-         fail("should throw exception");
-      }
-      catch (MessagingException e)
-      {
-         //pass
-      }
-      EasyMock.verify(connector);
-      EasyMock.verify(connectorRegistry);
-      assertNotNull(nioSession.getPacketDispatched());
-   }
-
-   public void testConnectionSendBlockingWithTimeout() throws Throwable
-   {
-      final ConnectorRegistry connectorRegistry = EasyMock.createStrictMock(ConnectorRegistry.class);
-      RemotingConnector connector = EasyMock.createStrictMock(RemotingConnector.class);
-      ConnectorRegistryFactory.setRegisteryLocator(new ConnectorRegistryLocator()
-      {
-         public ConnectorRegistry locate()
-         {
-            return connectorRegistry;
-         }
-      });
-      Location location = EasyMock.createNiceMock(Location.class);
-      ConnectionParams connectionParams = new ConnectionParamsImpl();
-      connectionParams.setCallTimeout(1000);
-      DummyDispatcher dispatcher = new DummyDispatcher();
-      DummySession nioSession = new DummySession(dispatcher, 2000, null, false);
-      PacketHandler handler = null;
-
-      Packet packet = EasyMock.createStrictMock(Packet.class);
-
-      EasyMock.expect(connectorRegistry.getConnector(location, connectionParams)).andReturn(connector);
-      EasyMock.replay(connectorRegistry);
-      EasyMock.expect(connector.connect()).andReturn(nioSession);
-      EasyMock.expect(connector.getDispatcher()).andReturn(dispatcher);
-      EasyMock.expect(connector.getDispatcher()).andReturn(dispatcher);
-      EasyMock.expect(connector.getDispatcher()).andReturn(dispatcher);
-      EasyMock.replay(connector);
-      packet.setTargetID(1);
-      packet.setExecutorID(2);
-      packet.setResponseTargetID(0);
-      EasyMock.replay(packet);
-
-      RemotingConnectionImpl remotingConnection = new RemotingConnectionImpl(location, connectionParams);
-      remotingConnection.start();
-      try
-      {
-         remotingConnection.sendBlocking(1, 2, packet);
-         fail("should have timed out");
-      }
-      catch (IllegalStateException e)
-      {
-         //pass
-      }
-      EasyMock.verify(connector);
-      EasyMock.verify(connectorRegistry);
-      EasyMock.verify(packet);
-      assertNull(nioSession.getPacketDispatched());
-   }
-
-   public void testConnectionSendBlockingErrorOnWrite() throws Throwable
-   {
-      final ConnectorRegistry connectorRegistry = EasyMock.createStrictMock(ConnectorRegistry.class);
-      RemotingConnector connector = EasyMock.createStrictMock(RemotingConnector.class);
-      ConnectorRegistryFactory.setRegisteryLocator(new ConnectorRegistryLocator()
-      {
-         public ConnectorRegistry locate()
-         {
-            return connectorRegistry;
-         }
-      });
-      Location location = EasyMock.createNiceMock(Location.class);
-      ConnectionParams connectionParams = new ConnectionParamsImpl();
-      connectionParams.setCallTimeout(1000);
-      DummyDispatcher dispatcher = new DummyDispatcher();
-      DummySession nioSession = new DummySession(dispatcher, 0, new Exception(), false);
-      PacketHandler handler = null;
-
-      Packet packet = EasyMock.createStrictMock(Packet.class);
-
-      EasyMock.expect(connectorRegistry.getConnector(location, connectionParams)).andReturn(connector);
-      EasyMock.replay(connectorRegistry);
-      EasyMock.expect(connector.connect()).andReturn(nioSession);
-      EasyMock.expect(connector.getDispatcher()).andReturn(dispatcher);
-      EasyMock.expect(connector.getDispatcher()).andReturn(dispatcher);
-      EasyMock.expect(connector.getDispatcher()).andReturn(dispatcher);
-      EasyMock.replay(connector);
-      packet.setTargetID(1);
-      packet.setExecutorID(2);
-      packet.setResponseTargetID(0);
-      EasyMock.replay(packet);
-
-
-      RemotingConnectionImpl remotingConnection = new RemotingConnectionImpl(location, connectionParams);
-      remotingConnection.start();
-      try
-      {
-         remotingConnection.sendBlocking(1, 2, packet);
-         fail("should throw exception");
-      }
-      catch (MessagingException e)
-      {
-         //pass
-      }
-      EasyMock.verify(connector);
-      EasyMock.verify(connectorRegistry);
-      EasyMock.verify(packet);
-      assertNull(nioSession.getPacketDispatched());
-   }
-
-   public void testConnectionSendOneWay() throws Throwable
-   {
-      final ConnectorRegistry connectorRegistry = EasyMock.createStrictMock(ConnectorRegistry.class);
-      RemotingConnector connector = EasyMock.createStrictMock(RemotingConnector.class);
-      ConnectorRegistryFactory.setRegisteryLocator(new ConnectorRegistryLocator()
-      {
-         public ConnectorRegistry locate()
-         {
-            return connectorRegistry;
-         }
-      });
-      Location location = EasyMock.createNiceMock(Location.class);
-      ConnectionParams connectionParams = new ConnectionParamsImpl();
-      connectionParams.setCallTimeout(1000);
-      DummyDispatcher dispatcher = new DummyDispatcher();
-      DummySession nioSession = new DummySession(dispatcher, 0, null, true);
-      PacketHandler handler = null;
-
-      Packet packet = EasyMock.createStrictMock(Packet.class);
-
-      EasyMock.expect(connectorRegistry.getConnector(location, connectionParams)).andReturn(connector);
-      EasyMock.replay(connectorRegistry);
-      EasyMock.expect(connector.connect()).andReturn(nioSession);
-      EasyMock.replay(connector);
-      packet.setTargetID(1);
-      packet.setExecutorID(2);
-      EasyMock.replay(packet);
-
-
-      RemotingConnectionImpl remotingConnection = new RemotingConnectionImpl(location, connectionParams);
-      remotingConnection.start();
-      remotingConnection.sendOneWay(1, 2, packet);
-      EasyMock.verify(connector);
-      EasyMock.verify(connectorRegistry);
-      EasyMock.verify(packet);
-      assertNull(nioSession.getPacketDispatched());
-   }
-
-   public void testConnectionSendOneWayThrowsExceptionOnNullSession() throws Throwable
-   {
-      final ConnectorRegistry connectorRegistry = EasyMock.createStrictMock(ConnectorRegistry.class);
-      RemotingConnector connector = EasyMock.createStrictMock(RemotingConnector.class);
-      ConnectorRegistryFactory.setRegisteryLocator(new ConnectorRegistryLocator()
-      {
-         public ConnectorRegistry locate()
-         {
-            return connectorRegistry;
-         }
-      });
-      Location location = EasyMock.createNiceMock(Location.class);
-      ConnectionParams connectionParams = new ConnectionParamsImpl();
-      connectionParams.setCallTimeout(1000);
-      DummyDispatcher dispatcher = new DummyDispatcher();
-      DummySession nioSession = new DummySession(dispatcher, 0, null, true);
-      PacketHandler handler = null;
-
-      Packet packet = EasyMock.createStrictMock(Packet.class);
-
-      EasyMock.replay(connectorRegistry);
-      EasyMock.replay(connector);
-      EasyMock.replay(packet);
-
-
-      RemotingConnectionImpl remotingConnection = new RemotingConnectionImpl(location, connectionParams);
-      try
-      {
-         remotingConnection.sendOneWay(1, 2, packet);
-         fail("should throw exception");
-      }
-      catch (IllegalStateException e)
-      {
-         //pass
-      }
-      EasyMock.verify(connector);
-      EasyMock.verify(connectorRegistry);
-      EasyMock.verify(packet);
-      assertNull(nioSession.getPacketDispatched());
-   }
-
-   public void testConnectionSendOneWayThrowsExceptionOnSessionNoConnected() throws Throwable
-   {
-      final ConnectorRegistry connectorRegistry = EasyMock.createStrictMock(ConnectorRegistry.class);
-      RemotingConnector connector = EasyMock.createStrictMock(RemotingConnector.class);
-      ConnectorRegistryFactory.setRegisteryLocator(new ConnectorRegistryLocator()
-      {
-         public ConnectorRegistry locate()
-         {
-            return connectorRegistry;
-         }
-      });
-      Location location = EasyMock.createNiceMock(Location.class);
-      ConnectionParams connectionParams = new ConnectionParamsImpl();
-      connectionParams.setCallTimeout(1000);
-      DummyDispatcher dispatcher = new DummyDispatcher();
-      RemotingSession nioSession = EasyMock.createStrictMock(RemotingSession.class);
-      PacketHandler handler = null;
-
-      Packet packet = EasyMock.createStrictMock(Packet.class);
-      EasyMock.expect(nioSession.isConnected()).andReturn(false);
-      EasyMock.expect(connectorRegistry.getConnector(location, connectionParams)).andReturn(connector);
-      EasyMock.replay(connectorRegistry);
-      EasyMock.expect(connector.connect()).andReturn(nioSession);
-      EasyMock.replay(connector);
-      EasyMock.replay(packet);
-
-
-      RemotingConnectionImpl remotingConnection = new RemotingConnectionImpl(location, connectionParams);
-      remotingConnection.start();
-      try
-      {
-         remotingConnection.sendOneWay(1, 2, packet);
-         fail("should throw exception");
-      }
-      catch (MessagingException e)
-      {
-         //pass
-      }
-      EasyMock.verify(connector);
-      EasyMock.verify(connectorRegistry);
-      EasyMock.verify(packet);
-   }
-
-   public void testConnectionSendOneWayErrorOnWrite() throws Throwable
-   {
-      final ConnectorRegistry connectorRegistry = EasyMock.createStrictMock(ConnectorRegistry.class);
-      RemotingConnector connector = EasyMock.createStrictMock(RemotingConnector.class);
-      ConnectorRegistryFactory.setRegisteryLocator(new ConnectorRegistryLocator()
-      {
-         public ConnectorRegistry locate()
-         {
-            return connectorRegistry;
-         }
-      });
-      Location location = EasyMock.createNiceMock(Location.class);
-      ConnectionParams connectionParams = new ConnectionParamsImpl();
-      connectionParams.setCallTimeout(1000);
-      DummyDispatcher dispatcher = new DummyDispatcher();
-      DummySession nioSession = new DummySession(dispatcher, 0, new Exception(), true);
-      PacketHandler handler = null;
-
-      Packet packet = EasyMock.createStrictMock(Packet.class);
-
-      EasyMock.expect(connectorRegistry.getConnector(location, connectionParams)).andReturn(connector);
-      EasyMock.replay(connectorRegistry);
-      EasyMock.expect(connector.connect()).andReturn(nioSession);
-      EasyMock.replay(connector);
-      packet.setTargetID(1);
-      packet.setExecutorID(2);
-      EasyMock.replay(packet);
-
-
-      RemotingConnectionImpl remotingConnection = new RemotingConnectionImpl(location, connectionParams);
-      remotingConnection.start();
-      try
-      {
-         remotingConnection.sendOneWay(1, 2, packet);
-         fail("should throw exception");
-      }
-      catch (MessagingException e)
-      {
-         //pass
-      }
-      EasyMock.verify(connector);
-      EasyMock.verify(connectorRegistry);
-      EasyMock.verify(packet);
-      assertNull(nioSession.getPacketDispatched());
-   }
-
-   public void testConnectionSetListener() throws Throwable
-   {
-      final ConnectorRegistry connectorRegistry = EasyMock.createStrictMock(ConnectorRegistry.class);
-      RemotingConnector connector = EasyMock.createStrictMock(RemotingConnector.class);
-      ConnectorRegistryFactory.setRegisteryLocator(new ConnectorRegistryLocator()
-      {
-         public ConnectorRegistry locate()
-         {
-            return connectorRegistry;
-         }
-      });
-      Location location = EasyMock.createNiceMock(Location.class);
-      ConnectionParams connectionParams = EasyMock.createNiceMock(ConnectionParams.class);
-      RemotingSession remotingSession = EasyMock.createStrictMock(RemotingSession.class);
-      RemotingSessionListener listener = EasyMock.createNiceMock(RemotingSessionListener.class);
-
-      EasyMock.expect(connectorRegistry.getConnector(location, connectionParams)).andReturn(connector);
-      EasyMock.replay(connectorRegistry);
-      EasyMock.expect(connector.connect()).andReturn(remotingSession);
-      connector.addSessionListener(listener);
-      EasyMock.replay(connector);
-
-      RemotingConnectionImpl remotingConnection = new RemotingConnectionImpl(location, connectionParams);
-      remotingConnection.start();
-      remotingConnection.addRemotingSessionListener(listener);
-      EasyMock.verify(connector);
-      EasyMock.verify(connectorRegistry);
-   }
-
-   public void testConnectionReSetListener() throws Throwable
-   {
-      final ConnectorRegistry connectorRegistry = EasyMock.createStrictMock(ConnectorRegistry.class);
-      RemotingConnector connector = EasyMock.createStrictMock(RemotingConnector.class);
-      ConnectorRegistryFactory.setRegisteryLocator(new ConnectorRegistryLocator()
-      {
-         public ConnectorRegistry locate()
-         {
-            return connectorRegistry;
-         }
-      });
-      Location location = EasyMock.createNiceMock(Location.class);
-      ConnectionParams connectionParams = EasyMock.createNiceMock(ConnectionParams.class);
-      RemotingSession remotingSession = EasyMock.createStrictMock(RemotingSession.class);
-      RemotingSessionListener listener = EasyMock.createNiceMock(RemotingSessionListener.class);
-      RemotingSessionListener listener2 = EasyMock.createNiceMock(RemotingSessionListener.class);
-      EasyMock.expect(connectorRegistry.getConnector(location, connectionParams)).andReturn(connector);
-      EasyMock.replay(connectorRegistry);
-      EasyMock.expect(connector.connect()).andReturn(remotingSession);
-      connector.addSessionListener(listener);
-      connector.removeSessionListener(listener);
-      connector.addSessionListener(listener2);
-      EasyMock.replay(connector);
-
-      RemotingConnectionImpl remotingConnection = new RemotingConnectionImpl(location, connectionParams);
-      remotingConnection.start();
-      remotingConnection.addRemotingSessionListener(listener);
-      remotingConnection.removeRemotingSessionListener(listener);
-      remotingConnection.addRemotingSessionListener(listener2);
-      EasyMock.verify(connector);
-      EasyMock.verify(connectorRegistry);
-   }
-
-
-   public void testGetDispatcher() throws Throwable
-   {
-      final ConnectorRegistry connectorRegistry = EasyMock.createStrictMock(ConnectorRegistry.class);
-      RemotingConnector connector = EasyMock.createStrictMock(RemotingConnector.class);
-      ConnectorRegistryFactory.setRegisteryLocator(new ConnectorRegistryLocator()
-      {
-         public ConnectorRegistry locate()
-         {
-            return connectorRegistry;
-         }
-      });
-      Location location = EasyMock.createNiceMock(Location.class);
-      ConnectionParams connectionParams = EasyMock.createNiceMock(ConnectionParams.class);
-      RemotingSession remotingSession = EasyMock.createStrictMock(RemotingSession.class);
-
-      EasyMock.expect(connectorRegistry.getConnector(location, connectionParams)).andReturn(connector);
-      EasyMock.replay(connectorRegistry);
-      EasyMock.expect(connector.connect()).andReturn(remotingSession);
-      PacketDispatcher packetDispatcher = EasyMock.createNiceMock(PacketDispatcher.class);
-      EasyMock.expect(connector.getDispatcher()).andReturn(packetDispatcher);
-      EasyMock.replay(connector);
-
-      RemotingConnectionImpl remotingConnection = new RemotingConnectionImpl(location, connectionParams);
-      remotingConnection.start();
-      assertEquals(remotingConnection.getPacketDispatcher(), packetDispatcher);
-      EasyMock.verify(connector);
-      EasyMock.verify(connectorRegistry);
-   }
-
-   public void testGetLocation() throws Throwable
-   {
-      Location location = EasyMock.createNiceMock(Location.class);
-      ConnectionParams connectionParams = EasyMock.createNiceMock(ConnectionParams.class);
-      EasyMock.replay(location, connectionParams);
-
-      RemotingConnectionImpl remotingConnection = new RemotingConnectionImpl(location, connectionParams);
-      assertEquals(remotingConnection.getLocation(), location);
-      EasyMock.verify(location, connectionParams);
-   }
-
-
-   class DummyDispatcher implements PacketDispatcher
-   {
-      PacketHandler handler = null;
-
-      public void register(PacketHandler handler)
-      {
-         this.handler = handler;
-      }
-
-      public void unregister(long handlerID)
-      {
-         //todo
-      }
-
-      public void setListener(PacketHandlerRegistrationListener listener)
-      {
-         //todo
-      }
-
-      public void dispatch(Packet packet, PacketReturner sender) throws Exception
-      {
-         handler.handle(packet, sender);
-      }
-
-      public void callFilters(Packet packet) throws Exception
-      {
-         //todo
-      }
-
-      public void addInterceptor(Interceptor filter)
-      {
-         //todo
-      }
-
-      public void removeInterceptor(Interceptor filter)
-      {
-         //todo
-      }
-
-      public long generateID()
-      {
-         return 0;
-      }
-   }
-
-   class DummySession implements RemotingSession
-   {
-      PacketDispatcher dispatcher;
-      Packet packetDispatched = null;
-      long timeToReply = 0;
-      Exception exceptionToThrow = null;
-      boolean oneWay = false;
-
-      public DummySession(PacketDispatcher dispatcher, long timeToReply, Exception toThrow, boolean oneWay)
-      {
-         this.dispatcher = dispatcher;
-         this.timeToReply = timeToReply;
-         exceptionToThrow = toThrow;
-         this.oneWay = oneWay;
-      }
-
-      public Packet getPacketDispatched()
-      {
-         return packetDispatched;
-      }
-
-      public long getID()
-      {
-         return 0;
-      }
-
-      public void write(final Packet packet) throws Exception
-      {
-         if (exceptionToThrow != null)
-         {
-            throw exceptionToThrow;
-         }
-         else if (!oneWay)
-         {
-            new Thread(new Runnable()
-            {
-               public void run()
-               {
-                  try
-                  {
-                     Thread.sleep(timeToReply);
-                  }
-                  catch (InterruptedException e)
-                  {
-                     e.printStackTrace();
-                  }
-                  packetDispatched = packet;
-                  try
-                  {
-                     dispatcher.dispatch(packet, null);
-                  }
-                  catch (Exception e)
-                  {
-                     e.printStackTrace();
-                  }
-               }
-            }).start();
-         }
-
-
-      }
-
-      public boolean isConnected()
-      {
-         return true;
-      }
-   }
-}

Added: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/RemotingConnectionTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/RemotingConnectionTest.java	                        (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/RemotingConnectionTest.java	2008-07-04 11:43:34 UTC (rev 4633)
@@ -0,0 +1,968 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
+ * 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.easymock.EasyMock;
+import org.jboss.messaging.core.client.ConnectionParams;
+import org.jboss.messaging.core.client.Location;
+import org.jboss.messaging.core.client.RemotingSessionListener;
+import org.jboss.messaging.core.client.impl.ConnectionParamsImpl;
+import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.core.remoting.ConnectorRegistry;
+import org.jboss.messaging.core.remoting.ConnectorRegistryFactory;
+import org.jboss.messaging.core.remoting.ConnectorRegistryLocator;
+import org.jboss.messaging.core.remoting.Interceptor;
+import org.jboss.messaging.core.remoting.Packet;
+import org.jboss.messaging.core.remoting.PacketDispatcher;
+import org.jboss.messaging.core.remoting.PacketHandler;
+import org.jboss.messaging.core.remoting.PacketHandlerRegistrationListener;
+import org.jboss.messaging.core.remoting.PacketReturner;
+import org.jboss.messaging.core.remoting.RemotingConnector;
+import org.jboss.messaging.core.remoting.RemotingSession;
+import org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl;
+import org.jboss.messaging.core.remoting.impl.wireformat.MessagingExceptionMessage;
+import org.jboss.messaging.tests.util.UnitTestCase;
+import org.jboss.messaging.util.MessagingBuffer;
+
+/**
+ * @author <a href="ataylor at redhat.com">Andy Taylor</a>
+ * @author <a href="tim.fox at jboss.com">Tim Fox</a>
+ */
+public class RemotingConnectionTest extends UnitTestCase
+{
+   protected void tearDown() throws Exception
+   {
+      super.tearDown();
+      ConnectorRegistryFactory.setRegisteryLocator(null);
+   }
+
+   public void testNullLocationThrowsException()
+   {
+      ConnectionParams connectionParams = EasyMock.createNiceMock(ConnectionParams.class);
+      try
+      {
+         new RemotingConnectionImpl(null, connectionParams);
+         fail("should throw exception");
+      }
+      catch (IllegalArgumentException e)
+      {
+         //pass
+      }
+   }
+
+   public void testNullConnectionParamsThrowsException()
+   {
+      Location location = EasyMock.createNiceMock(Location.class);
+      try
+      {
+         new RemotingConnectionImpl(location, null);
+         fail("should throw exception");
+      }
+      catch (IllegalArgumentException e)
+      {
+         //pass
+      }
+   }
+
+   public void testConnectionStarted() throws Throwable
+   {
+      final ConnectorRegistry connectorRegistry = EasyMock.createStrictMock(ConnectorRegistry.class);
+      RemotingConnector connector = EasyMock.createStrictMock(RemotingConnector.class);
+      ConnectorRegistryFactory.setRegisteryLocator(new ConnectorRegistryLocator()
+      {
+         public ConnectorRegistry locate()
+         {
+            return connectorRegistry;
+         }
+      });
+      Location location = EasyMock.createNiceMock(Location.class);
+      ConnectionParams connectionParams = EasyMock.createNiceMock(ConnectionParams.class);
+      RemotingSession remotingSession = EasyMock.createStrictMock(RemotingSession.class);
+
+      EasyMock.expect(connectorRegistry.getConnector(location, connectionParams)).andReturn(connector);
+      EasyMock.replay(connectorRegistry);
+      EasyMock.expect(connector.connect()).andReturn(remotingSession);
+      EasyMock.replay(connector);
+
+      RemotingConnectionImpl remotingConnection = new RemotingConnectionImpl(location, connectionParams);
+      remotingConnection.start();
+      EasyMock.verify(connector);
+      EasyMock.verify(connectorRegistry);
+   }
+
+   public void testConnectionStartedAndStopped() throws Throwable
+   {
+      final ConnectorRegistry connectorRegistry = EasyMock.createStrictMock(ConnectorRegistry.class);
+      RemotingConnector connector = EasyMock.createStrictMock(RemotingConnector.class);
+      ConnectorRegistryFactory.setRegisteryLocator(new ConnectorRegistryLocator()
+      {
+         public ConnectorRegistry locate()
+         {
+            return connectorRegistry;
+         }
+      });
+      Location location = EasyMock.createNiceMock(Location.class);
+      ConnectionParams connectionParams = EasyMock.createNiceMock(ConnectionParams.class);
+      RemotingSession remotingSession = EasyMock.createStrictMock(RemotingSession.class);
+
+      EasyMock.expect(connectorRegistry.getConnector(location, connectionParams)).andReturn(connector);
+      EasyMock.expect(connectorRegistry.removeConnector(location)).andReturn(connector);
+      EasyMock.replay(connectorRegistry);
+      EasyMock.expect(connector.connect()).andReturn(remotingSession);
+      EasyMock.expect(connector.disconnect()).andReturn(true);
+      EasyMock.replay(connector);
+
+      RemotingConnectionImpl remotingConnection = new RemotingConnectionImpl(location, connectionParams);
+      remotingConnection.start();
+      remotingConnection.stop();
+      EasyMock.verify(connector);
+      EasyMock.verify(connectorRegistry);
+      assertEquals(-1, remotingConnection.getSessionID());
+
+   }
+
+   public void testConnectionListenerRemovedOnStop() throws Throwable
+   {
+      final ConnectorRegistry connectorRegistry = EasyMock.createStrictMock(ConnectorRegistry.class);
+      RemotingConnector connector = EasyMock.createStrictMock(RemotingConnector.class);
+      RemotingSessionListener listener = EasyMock.createNiceMock(RemotingSessionListener.class);
+      ConnectorRegistryFactory.setRegisteryLocator(new ConnectorRegistryLocator()
+      {
+         public ConnectorRegistry locate()
+         {
+            return connectorRegistry;
+         }
+      });
+      Location location = EasyMock.createNiceMock(Location.class);
+      ConnectionParams connectionParams = EasyMock.createNiceMock(ConnectionParams.class);
+      RemotingSession remotingSession = EasyMock.createStrictMock(RemotingSession.class);
+
+      EasyMock.expect(connectorRegistry.getConnector(location, connectionParams)).andReturn(connector);
+      EasyMock.expect(connectorRegistry.removeConnector(location)).andReturn(connector);
+      EasyMock.replay(connectorRegistry);
+      EasyMock.expect(connector.connect()).andReturn(remotingSession);
+      connector.addSessionListener(listener);
+      connector.removeSessionListener(listener);
+      EasyMock.expect(connector.disconnect()).andReturn(true);
+      EasyMock.replay(connector);
+
+      RemotingConnectionImpl remotingConnection = new RemotingConnectionImpl(location, connectionParams);
+      remotingConnection.start();
+      remotingConnection.addRemotingSessionListener(listener);
+      remotingConnection.stop();
+      EasyMock.verify(connector);
+      EasyMock.verify(connectorRegistry);
+      assertEquals(-1, remotingConnection.getSessionID());
+
+   }
+
+   public void testConnectionGetSessionId() throws Throwable
+   {
+      final ConnectorRegistry connectorRegistry = EasyMock.createStrictMock(ConnectorRegistry.class);
+      RemotingConnector connector = EasyMock.createStrictMock(RemotingConnector.class);
+      ConnectorRegistryFactory.setRegisteryLocator(new ConnectorRegistryLocator()
+      {
+         public ConnectorRegistry locate()
+         {
+            return connectorRegistry;
+         }
+      });
+      Location location = EasyMock.createNiceMock(Location.class);
+      ConnectionParams connectionParams = EasyMock.createNiceMock(ConnectionParams.class);
+      RemotingSession remotingSession = EasyMock.createStrictMock(RemotingSession.class);
+
+      EasyMock.expect(connectorRegistry.getConnector(location, connectionParams)).andReturn(connector);
+      EasyMock.replay(connectorRegistry);
+      EasyMock.expect(connector.connect()).andReturn(remotingSession);
+      EasyMock.replay(connector);
+      EasyMock.expect(remotingSession.isConnected()).andReturn(true);
+      EasyMock.expect(remotingSession.getID()).andReturn((123l));
+      EasyMock.replay(remotingSession);
+
+      RemotingConnectionImpl remotingConnection = new RemotingConnectionImpl(location, connectionParams);
+      remotingConnection.start();
+      assertEquals(123l, remotingConnection.getSessionID());
+
+      EasyMock.verify(connector);
+      EasyMock.verify(connectorRegistry);
+      EasyMock.verify(remotingSession);
+   }
+
+   public void testConnectionGetSessionIdDisconnected() throws Throwable
+   {
+      final ConnectorRegistry connectorRegistry = EasyMock.createStrictMock(ConnectorRegistry.class);
+      RemotingConnector connector = EasyMock.createStrictMock(RemotingConnector.class);
+      ConnectorRegistryFactory.setRegisteryLocator(new ConnectorRegistryLocator()
+      {
+         public ConnectorRegistry locate()
+         {
+            return connectorRegistry;
+         }
+      });
+      Location location = EasyMock.createNiceMock(Location.class);
+      ConnectionParams connectionParams = EasyMock.createNiceMock(ConnectionParams.class);
+      RemotingSession remotingSession = EasyMock.createStrictMock(RemotingSession.class);
+
+      EasyMock.expect(connectorRegistry.getConnector(location, connectionParams)).andReturn(connector);
+      EasyMock.replay(connectorRegistry);
+      EasyMock.expect(connector.connect()).andReturn(remotingSession);
+      EasyMock.replay(connector);
+      EasyMock.expect(remotingSession.isConnected()).andReturn(false);
+      //EasyMock.expect(nioSession.getID()).andReturn((123l));
+      EasyMock.replay(remotingSession);
+
+      RemotingConnectionImpl remotingConnection = new RemotingConnectionImpl(location, connectionParams);
+      remotingConnection.start();
+      assertEquals(-1, remotingConnection.getSessionID());
+
+      EasyMock.verify(connector);
+      EasyMock.verify(connectorRegistry);
+      EasyMock.verify(remotingSession);
+   }
+
+   public void testConnectionGetSessionIdStopped() throws Throwable
+   {
+      final ConnectorRegistry connectorRegistry = EasyMock.createStrictMock(ConnectorRegistry.class);
+      RemotingConnector connector = EasyMock.createStrictMock(RemotingConnector.class);
+      ConnectorRegistryFactory.setRegisteryLocator(new ConnectorRegistryLocator()
+      {
+         public ConnectorRegistry locate()
+         {
+            return connectorRegistry;
+         }
+      });
+      Location location = EasyMock.createNiceMock(Location.class);
+      ConnectionParams connectionParams = EasyMock.createNiceMock(ConnectionParams.class);
+      RemotingSession remotingSession = EasyMock.createStrictMock(RemotingSession.class);
+
+      EasyMock.expect(connectorRegistry.getConnector(location, connectionParams)).andReturn(connector);
+      EasyMock.replay(connectorRegistry);
+      EasyMock.expect(connector.connect()).andReturn(remotingSession);
+      EasyMock.replay(connector);
+      EasyMock.expect(remotingSession.isConnected()).andReturn(true);
+      EasyMock.expect(remotingSession.getID()).andReturn((123l));
+      EasyMock.replay(remotingSession);
+
+      RemotingConnectionImpl remotingConnection = new RemotingConnectionImpl(location, connectionParams);
+      remotingConnection.start();
+      remotingConnection.stop();
+      assertEquals(123l, remotingConnection.getSessionID());
+
+      EasyMock.verify(connector);
+      EasyMock.verify(connectorRegistry);
+      EasyMock.verify(remotingSession);
+   }
+
+   public void testConnectionSendBlocking() throws Throwable
+   {
+      final ConnectorRegistry connectorRegistry = EasyMock.createStrictMock(ConnectorRegistry.class);
+      RemotingConnector connector = EasyMock.createStrictMock(RemotingConnector.class);
+      ConnectorRegistryFactory.setRegisteryLocator(new ConnectorRegistryLocator()
+      {
+         public ConnectorRegistry locate()
+         {
+            return connectorRegistry;
+         }
+      });
+      Location location = EasyMock.createNiceMock(Location.class);
+      ConnectionParams connectionParams = new ConnectionParamsImpl();
+      connectionParams.setCallTimeout(1000);
+      DummyDispatcher dispatcher = new DummyDispatcher();
+      DummySession nioSession = new DummySession(dispatcher, 0, null, false);
+      PacketHandler handler = null;
+
+      Packet packet = EasyMock.createStrictMock(Packet.class);
+
+      EasyMock.expect(connectorRegistry.getConnector(location, connectionParams)).andReturn(connector);
+      EasyMock.replay(connectorRegistry);
+      EasyMock.expect(connector.connect()).andReturn(nioSession);
+      EasyMock.expect(connector.getDispatcher()).andReturn(dispatcher);
+      EasyMock.expect(connector.getDispatcher()).andReturn(dispatcher);
+      EasyMock.expect(connector.getDispatcher()).andReturn(dispatcher);
+      EasyMock.replay(connector);
+      packet.setTargetID(1);
+      packet.setExecutorID(2);
+      packet.setResponseTargetID(0);
+      EasyMock.replay(packet);
+
+
+      RemotingConnectionImpl remotingConnection = new RemotingConnectionImpl(location, connectionParams);
+      remotingConnection.start();
+      remotingConnection.sendBlocking(1, 2, packet);
+      EasyMock.verify(connector);
+      EasyMock.verify(connectorRegistry);
+      EasyMock.verify(packet);
+      assertNotNull(nioSession.getPacketDispatched());
+   }
+
+   public void testConnectionSendBlockingThrowsExceptionIfSessionNull() throws Throwable
+   {
+      final ConnectorRegistry connectorRegistry = EasyMock.createStrictMock(ConnectorRegistry.class);
+      RemotingConnector connector = EasyMock.createStrictMock(RemotingConnector.class);
+      ConnectorRegistryFactory.setRegisteryLocator(new ConnectorRegistryLocator()
+      {
+         public ConnectorRegistry locate()
+         {
+            return connectorRegistry;
+         }
+      });
+      Location location = EasyMock.createNiceMock(Location.class);
+      ConnectionParams connectionParams = new ConnectionParamsImpl();
+      connectionParams.setCallTimeout(1000);
+      DummyDispatcher dispatcher = new DummyDispatcher();
+      DummySession nioSession = new DummySession(dispatcher, 0, null, false);
+      PacketHandler handler = null;
+
+      Packet packet = EasyMock.createStrictMock(Packet.class);
+
+      //EasyMock.expect(connectorRegistry.getConnector(location, connectionParams)).andReturn(connector);
+      EasyMock.replay(connectorRegistry);
+      EasyMock.expect(connector.getDispatcher()).andReturn(dispatcher).anyTimes();
+      EasyMock.replay(connector);
+      //packet.setTargetID(1);
+      //packet.setExecutorID(2);
+      // packet.setResponseTargetID(0);
+      EasyMock.replay(packet);
+
+
+      RemotingConnectionImpl remotingConnection = new RemotingConnectionImpl(location, connectionParams);
+      try
+      {
+         remotingConnection.sendBlocking(1, 2, packet);
+         fail("should throw exception");
+      }
+      catch (IllegalStateException e)
+      {
+         //pass
+      }
+      EasyMock.verify(connector);
+      EasyMock.verify(connectorRegistry);
+      EasyMock.verify(packet);
+      assertNull(nioSession.getPacketDispatched());
+   }
+
+   public void testConnectionSendBlockingThrowsExceptionWhenSessionNotConnected() throws Throwable
+   {
+      final ConnectorRegistry connectorRegistry = EasyMock.createStrictMock(ConnectorRegistry.class);
+      RemotingConnector connector = EasyMock.createStrictMock(RemotingConnector.class);
+      ConnectorRegistryFactory.setRegisteryLocator(new ConnectorRegistryLocator()
+      {
+         public ConnectorRegistry locate()
+         {
+            return connectorRegistry;
+         }
+      });
+      Location location = EasyMock.createNiceMock(Location.class);
+      ConnectionParams connectionParams = new ConnectionParamsImpl();
+      connectionParams.setCallTimeout(1000);
+      DummyDispatcher dispatcher = new DummyDispatcher();
+      RemotingSession nioSession = EasyMock.createStrictMock(RemotingSession.class);
+      PacketHandler handler = null;
+
+      Packet packet = EasyMock.createStrictMock(Packet.class);
+      EasyMock.expect(nioSession.isConnected()).andReturn(false);
+      EasyMock.expect(connectorRegistry.getConnector(location, connectionParams)).andReturn(connector);
+      EasyMock.replay(connectorRegistry);
+      EasyMock.expect(connector.connect()).andReturn(nioSession);
+      EasyMock.replay(connector, nioSession);
+      EasyMock.replay(packet);
+
+
+      RemotingConnectionImpl remotingConnection = new RemotingConnectionImpl(location, connectionParams);
+      remotingConnection.start();
+      try
+      {
+         remotingConnection.sendBlocking(1, 2, packet);
+         fail("should throw exception");
+      }
+      catch (MessagingException e)
+      {
+         //pass
+      }
+      EasyMock.verify(connector, connectorRegistry, packet, nioSession);
+   }
+
+   public void testConnectionSendBlockingThrowsMessagingException() throws Throwable
+   {
+      final ConnectorRegistry connectorRegistry = EasyMock.createStrictMock(ConnectorRegistry.class);
+      RemotingConnector connector = EasyMock.createStrictMock(RemotingConnector.class);
+      ConnectorRegistryFactory.setRegisteryLocator(new ConnectorRegistryLocator()
+      {
+         public ConnectorRegistry locate()
+         {
+            return connectorRegistry;
+         }
+      });
+      Location location = EasyMock.createNiceMock(Location.class);
+      ConnectionParams connectionParams = new ConnectionParamsImpl();
+      connectionParams.setCallTimeout(1000);
+      DummyDispatcher dispatcher = new DummyDispatcher();
+      DummySession nioSession = new DummySession(dispatcher, 0, null, false);
+      PacketHandler handler = null;
+
+      MessagingExceptionMessage packet = new MessagingExceptionMessage(new MessagingException());
+
+      EasyMock.expect(connectorRegistry.getConnector(location, connectionParams)).andReturn(connector);
+      EasyMock.replay(connectorRegistry);
+      EasyMock.expect(connector.connect()).andReturn(nioSession);
+      EasyMock.expect(connector.getDispatcher()).andReturn(dispatcher);
+      EasyMock.expect(connector.getDispatcher()).andReturn(dispatcher);
+      EasyMock.expect(connector.getDispatcher()).andReturn(dispatcher);
+      EasyMock.replay(connector);
+      packet.setTargetID(1);
+      packet.setExecutorID(2);
+      packet.setResponseTargetID(0);
+
+
+      RemotingConnectionImpl remotingConnection = new RemotingConnectionImpl(location, connectionParams);
+      remotingConnection.start();
+      try
+      {
+         remotingConnection.sendBlocking(1, 2, packet);
+         fail("should throw exception");
+      }
+      catch (MessagingException e)
+      {
+         //pass
+      }
+      EasyMock.verify(connector);
+      EasyMock.verify(connectorRegistry);
+      assertNotNull(nioSession.getPacketDispatched());
+   }
+
+   public void testConnectionSendBlockingWithTimeout() throws Throwable
+   {
+      final ConnectorRegistry connectorRegistry = EasyMock.createStrictMock(ConnectorRegistry.class);
+      RemotingConnector connector = EasyMock.createStrictMock(RemotingConnector.class);
+      ConnectorRegistryFactory.setRegisteryLocator(new ConnectorRegistryLocator()
+      {
+         public ConnectorRegistry locate()
+         {
+            return connectorRegistry;
+         }
+      });
+      Location location = EasyMock.createNiceMock(Location.class);
+      ConnectionParams connectionParams = new ConnectionParamsImpl();
+      connectionParams.setCallTimeout(1000);
+      DummyDispatcher dispatcher = new DummyDispatcher();
+      DummySession nioSession = new DummySession(dispatcher, 2000, null, false);
+      PacketHandler handler = null;
+
+      Packet packet = EasyMock.createStrictMock(Packet.class);
+
+      EasyMock.expect(connectorRegistry.getConnector(location, connectionParams)).andReturn(connector);
+      EasyMock.replay(connectorRegistry);
+      EasyMock.expect(connector.connect()).andReturn(nioSession);
+      EasyMock.expect(connector.getDispatcher()).andReturn(dispatcher);
+      EasyMock.expect(connector.getDispatcher()).andReturn(dispatcher);
+      EasyMock.expect(connector.getDispatcher()).andReturn(dispatcher);
+      EasyMock.replay(connector);
+      packet.setTargetID(1);
+      packet.setExecutorID(2);
+      packet.setResponseTargetID(0);
+      EasyMock.replay(packet);
+
+      RemotingConnectionImpl remotingConnection = new RemotingConnectionImpl(location, connectionParams);
+      remotingConnection.start();
+      try
+      {
+         remotingConnection.sendBlocking(1, 2, packet);
+         fail("should have timed out");
+      }
+      catch (IllegalStateException e)
+      {
+         //pass
+      }
+      EasyMock.verify(connector);
+      EasyMock.verify(connectorRegistry);
+      EasyMock.verify(packet);
+      assertNull(nioSession.getPacketDispatched());
+   }
+
+   public void testConnectionSendBlockingErrorOnWrite() throws Throwable
+   {
+      final ConnectorRegistry connectorRegistry = EasyMock.createStrictMock(ConnectorRegistry.class);
+      RemotingConnector connector = EasyMock.createStrictMock(RemotingConnector.class);
+      ConnectorRegistryFactory.setRegisteryLocator(new ConnectorRegistryLocator()
+      {
+         public ConnectorRegistry locate()
+         {
+            return connectorRegistry;
+         }
+      });
+      Location location = EasyMock.createNiceMock(Location.class);
+      ConnectionParams connectionParams = new ConnectionParamsImpl();
+      connectionParams.setCallTimeout(1000);
+      DummyDispatcher dispatcher = new DummyDispatcher();
+      DummySession nioSession = new DummySession(dispatcher, 0, new Exception(), false);
+      PacketHandler handler = null;
+
+      Packet packet = EasyMock.createStrictMock(Packet.class);
+
+      EasyMock.expect(connectorRegistry.getConnector(location, connectionParams)).andReturn(connector);
+      EasyMock.replay(connectorRegistry);
+      EasyMock.expect(connector.connect()).andReturn(nioSession);
+      EasyMock.expect(connector.getDispatcher()).andReturn(dispatcher);
+      EasyMock.expect(connector.getDispatcher()).andReturn(dispatcher);
+      EasyMock.expect(connector.getDispatcher()).andReturn(dispatcher);
+      EasyMock.replay(connector);
+      packet.setTargetID(1);
+      packet.setExecutorID(2);
+      packet.setResponseTargetID(0);
+      EasyMock.replay(packet);
+
+
+      RemotingConnectionImpl remotingConnection = new RemotingConnectionImpl(location, connectionParams);
+      remotingConnection.start();
+      try
+      {
+         remotingConnection.sendBlocking(1, 2, packet);
+         fail("should throw exception");
+      }
+      catch (MessagingException e)
+      {
+         //pass
+      }
+      EasyMock.verify(connector);
+      EasyMock.verify(connectorRegistry);
+      EasyMock.verify(packet);
+      assertNull(nioSession.getPacketDispatched());
+   }
+
+   public void testConnectionSendOneWay() throws Throwable
+   {
+      final ConnectorRegistry connectorRegistry = EasyMock.createStrictMock(ConnectorRegistry.class);
+      RemotingConnector connector = EasyMock.createStrictMock(RemotingConnector.class);
+      ConnectorRegistryFactory.setRegisteryLocator(new ConnectorRegistryLocator()
+      {
+         public ConnectorRegistry locate()
+         {
+            return connectorRegistry;
+         }
+      });
+      Location location = EasyMock.createNiceMock(Location.class);
+      ConnectionParams connectionParams = new ConnectionParamsImpl();
+      connectionParams.setCallTimeout(1000);
+      DummyDispatcher dispatcher = new DummyDispatcher();
+      DummySession nioSession = new DummySession(dispatcher, 0, null, true);
+      PacketHandler handler = null;
+
+      Packet packet = EasyMock.createStrictMock(Packet.class);
+
+      EasyMock.expect(connectorRegistry.getConnector(location, connectionParams)).andReturn(connector);
+      EasyMock.replay(connectorRegistry);
+      EasyMock.expect(connector.connect()).andReturn(nioSession);
+      EasyMock.replay(connector);
+      packet.setTargetID(1);
+      packet.setExecutorID(2);
+      EasyMock.replay(packet);
+
+
+      RemotingConnectionImpl remotingConnection = new RemotingConnectionImpl(location, connectionParams);
+      remotingConnection.start();
+      remotingConnection.sendOneWay(1, 2, packet);
+      EasyMock.verify(connector);
+      EasyMock.verify(connectorRegistry);
+      EasyMock.verify(packet);
+      assertNull(nioSession.getPacketDispatched());
+   }
+
+   public void testConnectionSendOneWayThrowsExceptionOnNullSession() throws Throwable
+   {
+      final ConnectorRegistry connectorRegistry = EasyMock.createStrictMock(ConnectorRegistry.class);
+      RemotingConnector connector = EasyMock.createStrictMock(RemotingConnector.class);
+      ConnectorRegistryFactory.setRegisteryLocator(new ConnectorRegistryLocator()
+      {
+         public ConnectorRegistry locate()
+         {
+            return connectorRegistry;
+         }
+      });
+      Location location = EasyMock.createNiceMock(Location.class);
+      ConnectionParams connectionParams = new ConnectionParamsImpl();
+      connectionParams.setCallTimeout(1000);
+      DummyDispatcher dispatcher = new DummyDispatcher();
+      DummySession nioSession = new DummySession(dispatcher, 0, null, true);
+      PacketHandler handler = null;
+
+      Packet packet = EasyMock.createStrictMock(Packet.class);
+
+      EasyMock.replay(connectorRegistry);
+      EasyMock.replay(connector);
+      EasyMock.replay(packet);
+
+
+      RemotingConnectionImpl remotingConnection = new RemotingConnectionImpl(location, connectionParams);
+      try
+      {
+         remotingConnection.sendOneWay(1, 2, packet);
+         fail("should throw exception");
+      }
+      catch (IllegalStateException e)
+      {
+         //pass
+      }
+      EasyMock.verify(connector);
+      EasyMock.verify(connectorRegistry);
+      EasyMock.verify(packet);
+      assertNull(nioSession.getPacketDispatched());
+   }
+
+   public void testConnectionSendOneWayThrowsExceptionOnSessionNoConnected() throws Throwable
+   {
+      final ConnectorRegistry connectorRegistry = EasyMock.createStrictMock(ConnectorRegistry.class);
+      RemotingConnector connector = EasyMock.createStrictMock(RemotingConnector.class);
+      ConnectorRegistryFactory.setRegisteryLocator(new ConnectorRegistryLocator()
+      {
+         public ConnectorRegistry locate()
+         {
+            return connectorRegistry;
+         }
+      });
+      Location location = EasyMock.createNiceMock(Location.class);
+      ConnectionParams connectionParams = new ConnectionParamsImpl();
+      connectionParams.setCallTimeout(1000);
+      DummyDispatcher dispatcher = new DummyDispatcher();
+      RemotingSession nioSession = EasyMock.createStrictMock(RemotingSession.class);
+      PacketHandler handler = null;
+
+      Packet packet = EasyMock.createStrictMock(Packet.class);
+      EasyMock.expect(nioSession.isConnected()).andReturn(false);
+      EasyMock.expect(connectorRegistry.getConnector(location, connectionParams)).andReturn(connector);
+      EasyMock.replay(connectorRegistry);
+      EasyMock.expect(connector.connect()).andReturn(nioSession);
+      EasyMock.replay(connector);
+      EasyMock.replay(packet);
+
+
+      RemotingConnectionImpl remotingConnection = new RemotingConnectionImpl(location, connectionParams);
+      remotingConnection.start();
+      try
+      {
+         remotingConnection.sendOneWay(1, 2, packet);
+         fail("should throw exception");
+      }
+      catch (MessagingException e)
+      {
+         //pass
+      }
+      EasyMock.verify(connector);
+      EasyMock.verify(connectorRegistry);
+      EasyMock.verify(packet);
+   }
+
+   public void testConnectionSendOneWayErrorOnWrite() throws Throwable
+   {
+      final ConnectorRegistry connectorRegistry = EasyMock.createStrictMock(ConnectorRegistry.class);
+      RemotingConnector connector = EasyMock.createStrictMock(RemotingConnector.class);
+      ConnectorRegistryFactory.setRegisteryLocator(new ConnectorRegistryLocator()
+      {
+         public ConnectorRegistry locate()
+         {
+            return connectorRegistry;
+         }
+      });
+      Location location = EasyMock.createNiceMock(Location.class);
+      ConnectionParams connectionParams = new ConnectionParamsImpl();
+      connectionParams.setCallTimeout(1000);
+      DummyDispatcher dispatcher = new DummyDispatcher();
+      DummySession nioSession = new DummySession(dispatcher, 0, new Exception(), true);
+      PacketHandler handler = null;
+
+      Packet packet = EasyMock.createStrictMock(Packet.class);
+
+      EasyMock.expect(connectorRegistry.getConnector(location, connectionParams)).andReturn(connector);
+      EasyMock.replay(connectorRegistry);
+      EasyMock.expect(connector.connect()).andReturn(nioSession);
+      EasyMock.replay(connector);
+      packet.setTargetID(1);
+      packet.setExecutorID(2);
+      EasyMock.replay(packet);
+
+
+      RemotingConnectionImpl remotingConnection = new RemotingConnectionImpl(location, connectionParams);
+      remotingConnection.start();
+      try
+      {
+         remotingConnection.sendOneWay(1, 2, packet);
+         fail("should throw exception");
+      }
+      catch (MessagingException e)
+      {
+         //pass
+      }
+      EasyMock.verify(connector);
+      EasyMock.verify(connectorRegistry);
+      EasyMock.verify(packet);
+      assertNull(nioSession.getPacketDispatched());
+   }
+
+   public void testConnectionSetListener() throws Throwable
+   {
+      final ConnectorRegistry connectorRegistry = EasyMock.createStrictMock(ConnectorRegistry.class);
+      RemotingConnector connector = EasyMock.createStrictMock(RemotingConnector.class);
+      ConnectorRegistryFactory.setRegisteryLocator(new ConnectorRegistryLocator()
+      {
+         public ConnectorRegistry locate()
+         {
+            return connectorRegistry;
+         }
+      });
+      Location location = EasyMock.createNiceMock(Location.class);
+      ConnectionParams connectionParams = EasyMock.createNiceMock(ConnectionParams.class);
+      RemotingSession remotingSession = EasyMock.createStrictMock(RemotingSession.class);
+      RemotingSessionListener listener = EasyMock.createNiceMock(RemotingSessionListener.class);
+
+      EasyMock.expect(connectorRegistry.getConnector(location, connectionParams)).andReturn(connector);
+      EasyMock.replay(connectorRegistry);
+      EasyMock.expect(connector.connect()).andReturn(remotingSession);
+      connector.addSessionListener(listener);
+      EasyMock.replay(connector);
+
+      RemotingConnectionImpl remotingConnection = new RemotingConnectionImpl(location, connectionParams);
+      remotingConnection.start();
+      remotingConnection.addRemotingSessionListener(listener);
+      EasyMock.verify(connector);
+      EasyMock.verify(connectorRegistry);
+   }
+
+   public void testConnectionReSetListener() throws Throwable
+   {
+      final ConnectorRegistry connectorRegistry = EasyMock.createStrictMock(ConnectorRegistry.class);
+      RemotingConnector connector = EasyMock.createStrictMock(RemotingConnector.class);
+      ConnectorRegistryFactory.setRegisteryLocator(new ConnectorRegistryLocator()
+      {
+         public ConnectorRegistry locate()
+         {
+            return connectorRegistry;
+         }
+      });
+      Location location = EasyMock.createNiceMock(Location.class);
+      ConnectionParams connectionParams = EasyMock.createNiceMock(ConnectionParams.class);
+      RemotingSession remotingSession = EasyMock.createStrictMock(RemotingSession.class);
+      RemotingSessionListener listener = EasyMock.createNiceMock(RemotingSessionListener.class);
+      RemotingSessionListener listener2 = EasyMock.createNiceMock(RemotingSessionListener.class);
+      EasyMock.expect(connectorRegistry.getConnector(location, connectionParams)).andReturn(connector);
+      EasyMock.replay(connectorRegistry);
+      EasyMock.expect(connector.connect()).andReturn(remotingSession);
+      connector.addSessionListener(listener);
+      connector.removeSessionListener(listener);
+      connector.addSessionListener(listener2);
+      EasyMock.replay(connector);
+
+      RemotingConnectionImpl remotingConnection = new RemotingConnectionImpl(location, connectionParams);
+      remotingConnection.start();
+      remotingConnection.addRemotingSessionListener(listener);
+      remotingConnection.removeRemotingSessionListener(listener);
+      remotingConnection.addRemotingSessionListener(listener2);
+      EasyMock.verify(connector);
+      EasyMock.verify(connectorRegistry);
+   }
+
+
+   public void testGetDispatcher() throws Throwable
+   {
+      final ConnectorRegistry connectorRegistry = EasyMock.createStrictMock(ConnectorRegistry.class);
+      RemotingConnector connector = EasyMock.createStrictMock(RemotingConnector.class);
+      ConnectorRegistryFactory.setRegisteryLocator(new ConnectorRegistryLocator()
+      {
+         public ConnectorRegistry locate()
+         {
+            return connectorRegistry;
+         }
+      });
+      Location location = EasyMock.createNiceMock(Location.class);
+      ConnectionParams connectionParams = EasyMock.createNiceMock(ConnectionParams.class);
+      RemotingSession remotingSession = EasyMock.createStrictMock(RemotingSession.class);
+
+      EasyMock.expect(connectorRegistry.getConnector(location, connectionParams)).andReturn(connector);
+      EasyMock.replay(connectorRegistry);
+      EasyMock.expect(connector.connect()).andReturn(remotingSession);
+      PacketDispatcher packetDispatcher = EasyMock.createNiceMock(PacketDispatcher.class);
+      EasyMock.expect(connector.getDispatcher()).andReturn(packetDispatcher);
+      EasyMock.replay(connector);
+
+      RemotingConnectionImpl remotingConnection = new RemotingConnectionImpl(location, connectionParams);
+      remotingConnection.start();
+      assertEquals(remotingConnection.getPacketDispatcher(), packetDispatcher);
+      EasyMock.verify(connector);
+      EasyMock.verify(connectorRegistry);
+   }
+
+   public void testGetLocation() throws Throwable
+   {
+      Location location = EasyMock.createNiceMock(Location.class);
+      ConnectionParams connectionParams = EasyMock.createNiceMock(ConnectionParams.class);
+      EasyMock.replay(location, connectionParams);
+
+      RemotingConnectionImpl remotingConnection = new RemotingConnectionImpl(location, connectionParams);
+      assertEquals(remotingConnection.getLocation(), location);
+      EasyMock.verify(location, connectionParams);
+   }
+   
+   public void testCreateBuffer() throws Throwable
+   {
+      final ConnectorRegistry connectorRegistry = EasyMock.createStrictMock(ConnectorRegistry.class);
+      RemotingConnector connector = EasyMock.createStrictMock(RemotingConnector.class);
+      ConnectorRegistryFactory.setRegisteryLocator(new ConnectorRegistryLocator()
+      {
+         public ConnectorRegistry locate()
+         {
+            return connectorRegistry;
+         }
+      });
+      Location location = EasyMock.createNiceMock(Location.class);
+      ConnectionParams connectionParams = EasyMock.createNiceMock(ConnectionParams.class);
+      RemotingSession remotingSession = EasyMock.createStrictMock(RemotingSession.class);
+
+      EasyMock.expect(connectorRegistry.getConnector(location, connectionParams)).andReturn(connector);
+      EasyMock.replay(connectorRegistry);
+      EasyMock.expect(connector.connect()).andReturn(remotingSession);
+      
+      final int size = 120912;      
+      MessagingBuffer buff = EasyMock.createMock(MessagingBuffer.class);
+      EasyMock.expect(connector.createBuffer(size)).andReturn(buff);
+      
+      EasyMock.replay(connector);
+
+      RemotingConnectionImpl remotingConnection = new RemotingConnectionImpl(location, connectionParams);
+      remotingConnection.start();
+      MessagingBuffer buff2 = remotingConnection.createBuffer(size);
+            
+      EasyMock.verify(connector);
+      EasyMock.verify(connectorRegistry);
+      assertTrue(buff == buff2);
+   }
+
+
+   class DummyDispatcher implements PacketDispatcher
+   {
+      PacketHandler handler = null;
+
+      public void register(PacketHandler handler)
+      {
+         this.handler = handler;
+      }
+
+      public void unregister(long handlerID)
+      {
+         //todo
+      }
+
+      public void setListener(PacketHandlerRegistrationListener listener)
+      {
+         //todo
+      }
+
+      public void dispatch(Packet packet, PacketReturner sender) throws Exception
+      {
+         handler.handle(packet, sender);
+      }
+
+      public void callFilters(Packet packet) throws Exception
+      {
+         //todo
+      }
+
+      public void addInterceptor(Interceptor filter)
+      {
+         //todo
+      }
+
+      public void removeInterceptor(Interceptor filter)
+      {
+         //todo
+      }
+
+      public long generateID()
+      {
+         return 0;
+      }
+   }
+
+   class DummySession implements RemotingSession
+   {
+      PacketDispatcher dispatcher;
+      Packet packetDispatched = null;
+      long timeToReply = 0;
+      Exception exceptionToThrow = null;
+      boolean oneWay = false;
+
+      public DummySession(PacketDispatcher dispatcher, long timeToReply, Exception toThrow, boolean oneWay)
+      {
+         this.dispatcher = dispatcher;
+         this.timeToReply = timeToReply;
+         exceptionToThrow = toThrow;
+         this.oneWay = oneWay;
+      }
+
+      public Packet getPacketDispatched()
+      {
+         return packetDispatched;
+      }
+
+      public long getID()
+      {
+         return 0;
+      }
+
+      public void write(final Packet packet) throws Exception
+      {
+         if (exceptionToThrow != null)
+         {
+            throw exceptionToThrow;
+         }
+         else if (!oneWay)
+         {
+            new Thread(new Runnable()
+            {
+               public void run()
+               {
+                  try
+                  {
+                     Thread.sleep(timeToReply);
+                  }
+                  catch (InterruptedException e)
+                  {
+                     e.printStackTrace();
+                  }
+                  packetDispatched = packet;
+                  try
+                  {
+                     dispatcher.dispatch(packet, null);
+                  }
+                  catch (Exception e)
+                  {
+                     e.printStackTrace();
+                  }
+               }
+            }).start();
+         }
+      }
+
+      public boolean isConnected()
+      {
+         return true;
+      }
+   }
+}

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/invm/INVMConnectorTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/invm/INVMConnectorTest.java	2008-07-04 10:19:10 UTC (rev 4632)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/invm/INVMConnectorTest.java	2008-07-04 11:43:34 UTC (rev 4633)
@@ -29,6 +29,8 @@
 import org.jboss.messaging.core.remoting.RemotingSession;
 import org.jboss.messaging.core.remoting.impl.invm.INVMConnector;
 import org.jboss.messaging.tests.util.UnitTestCase;
+import org.jboss.messaging.util.ByteBufferWrapper;
+import org.jboss.messaging.util.MessagingBuffer;
 
 /**
  * @author <a href="ataylor at redhat.com">Andy Taylor</a>
@@ -51,7 +53,7 @@
       EasyMock.verify(location, connectionParams, clientPacketDispatcher, serverPacketDispatcher);
    }
 
-    public void testDisconnect() throws Exception
+   public void testDisconnect() throws Exception
    {
       Location location = EasyMock.createStrictMock(Location.class);
       ConnectionParams connectionParams = EasyMock.createStrictMock(ConnectionParams.class);
@@ -71,4 +73,21 @@
       EasyMock.replay(location, connectionParams, clientPacketDispatcher, serverPacketDispatcher);
       EasyMock.verify(location, connectionParams, clientPacketDispatcher, serverPacketDispatcher);
    }
+    
+    public void testCreateBuffer() throws Exception
+    {
+       Location location = EasyMock.createStrictMock(Location.class);
+       ConnectionParams connectionParams = EasyMock.createStrictMock(ConnectionParams.class);
+       PacketDispatcher clientPacketDispatcher = EasyMock.createStrictMock(PacketDispatcher.class);
+       PacketDispatcher serverPacketDispatcher = EasyMock.createStrictMock(PacketDispatcher.class);
+       INVMConnector invmConnector = new INVMConnector(location, connectionParams, 0, clientPacketDispatcher, serverPacketDispatcher);
+       
+       final int size = 120912;
+       
+       MessagingBuffer buff = invmConnector.createBuffer(size);
+       
+       assertTrue(buff instanceof ByteBufferWrapper);
+       
+       assertEquals(size, buff.capacity());
+    }
 }

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/mina/MinaConnectorTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/mina/MinaConnectorTest.java	2008-07-04 10:19:10 UTC (rev 4632)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/mina/MinaConnectorTest.java	2008-07-04 11:43:34 UTC (rev 4633)
@@ -69,6 +69,7 @@
 import org.jboss.messaging.core.remoting.TransportType;
 import org.jboss.messaging.core.remoting.impl.ResponseHandlerImpl;
 import org.jboss.messaging.core.remoting.impl.mina.FilterChainSupport;
+import org.jboss.messaging.core.remoting.impl.mina.IoBufferWrapper;
 import org.jboss.messaging.core.remoting.impl.mina.MinaConnector;
 import org.jboss.messaging.core.remoting.impl.mina.MinaHandler;
 import org.jboss.messaging.core.remoting.impl.mina.MinaSession;
@@ -77,6 +78,7 @@
 import org.jboss.messaging.tests.integration.core.remoting.mina.TestSupport;
 import org.jboss.messaging.tests.util.RandomUtil;
 import org.jboss.messaging.tests.util.UnitTestCase;
+import org.jboss.messaging.util.MessagingBuffer;
 
 /**
  * 
@@ -84,13 +86,11 @@
  *
  */
 public class MinaConnectorTest extends UnitTestCase
-{
-   
+{   
    // Constants -----------------------------------------------------
    
    // Attributes ----------------------------------------------------
-   
-   
+      
    private LocationImpl location;
    
    private ConnectionParams connectionParams;
@@ -474,6 +474,19 @@
       
    }
    
+   public void testCreateBuffer() throws Exception
+   {
+      MinaConnector minaConnector = construct(true);
+      
+      final int size = 120912;
+      
+      MessagingBuffer buff = minaConnector.createBuffer(size);
+      
+      assertTrue(buff instanceof IoBufferWrapper);
+      
+      assertEquals(size, buff.capacity());
+   }
+   
    // Package protected ---------------------------------------------
    
    // Protected -----------------------------------------------------
@@ -710,27 +723,27 @@
       }
    }
    
-   
+
    /** Mina is not 100% "interfacable", so I'm mocking this class */
-  class ProxySSLFilter extends SslFilter
+   class ProxySSLFilter extends SslFilter
    {
-      
+
       private final WriteFuture futureStop;
-      
+
       public ProxySSLFilter(WriteFuture futureStop) throws Exception
       {
          super(SSLContext.getInstance("TLS"));
          this.futureStop = futureStop;
       }
-      
+
       public WriteFuture stopSsl(IoSession session) throws SSLException
       {
          return futureStop;
       }
-      
+
    }
-   
-   
+
+
    /** Mina is not 100% "interfacable", so I'm mocking this class */
    class ProxyFilterChain extends DefaultIoFilterChain
    {

Deleted: trunk/tests/src/org/jboss/messaging/tests/unit/core/util/MessagingBufferFactoryTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/util/MessagingBufferFactoryTest.java	2008-07-04 10:19:10 UTC (rev 4632)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/util/MessagingBufferFactoryTest.java	2008-07-04 11:43:34 UTC (rev 4633)
@@ -1,86 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * 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.util;
-
-import junit.framework.TestCase;
-import org.jboss.messaging.core.remoting.TransportType;
-import org.jboss.messaging.util.MessagingBuffer;
-import org.jboss.messaging.util.MessagingBufferFactory;
-import org.jboss.messaging.util.MessagingBufferFactoryImpl;
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
- *
- * @version <tt>$Revision$</tt>
- *
- */
-public class MessagingBufferFactoryTest extends TestCase
-{
-   private MessagingBufferFactory messagingBufferFactory;
-   // Constants -----------------------------------------------------
-
-   // Attributes ----------------------------------------------------
-
-   // Static --------------------------------------------------------
-
-   // Constructors --------------------------------------------------
-
-   // Public --------------------------------------------------------
-
-   protected void setUp() throws Exception
-   {
-      super.setUp();
-      messagingBufferFactory = new MessagingBufferFactoryImpl();
-   }
-
-   protected void tearDown() throws Exception
-   {
-      super.tearDown();
-      messagingBufferFactory = null;
-   }
-
-   public void testCreateMessagingBufferForTCP() throws Exception
-   {
-      int length = 512;
-      MessagingBuffer buffer = messagingBufferFactory.createMessagingBuffer(TransportType.TCP, length);
-      assertNotNull(buffer);
-      assertEquals(length, buffer.capacity());
-   }
-
-   
-   public void testCreateMessagingBufferForINVM() throws Exception
-   {
-      int length = 512;
-      MessagingBuffer buffer = messagingBufferFactory.createMessagingBuffer(TransportType.INVM, length);
-      assertNotNull(buffer);
-      assertEquals(length, buffer.capacity());
-   }
-   
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   // Private -------------------------------------------------------
-
-   // Inner classes -------------------------------------------------
-}




More information about the jboss-cvs-commits mailing list