[jboss-cvs] JBoss Messaging SVN: r4532 - in trunk: tests/src/org/jboss/messaging/tests/integration/core/remoting/impl and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Jun 20 06:50:47 EDT 2008


Author: ataylor
Date: 2008-06-20 06:50:46 -0400 (Fri, 20 Jun 2008)
New Revision: 4532

Modified:
   trunk/src/main/org/jboss/messaging/core/remoting/impl/PacketDispatcherImpl.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/RemotingConnectionImpl.java
   trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/impl/PacketFilterTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/PacketDispatcherTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/RemotingConnectionTest.java
Log:
more tests and tweaks

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/PacketDispatcherImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/PacketDispatcherImpl.java	2008-06-20 09:26:26 UTC (rev 4531)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/PacketDispatcherImpl.java	2008-06-20 10:50:46 UTC (rev 4532)
@@ -22,25 +22,17 @@
 
 package org.jboss.messaging.core.remoting.impl;
 
+import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.remoting.*;
+import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl.NO_ID_SET;
 
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-import java.util.Map.Entry;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.concurrent.atomic.AtomicLong;
 
-import org.jboss.messaging.core.logging.Logger;
-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.impl.wireformat.PacketImpl;
-
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>.
@@ -187,7 +179,14 @@
       {
          for (Interceptor filter : filters)
          {
-            filter.intercept(packet);
+            try
+            {
+               filter.intercept(packet);
+            }
+            catch (Throwable e)
+            {
+               log.warn("unable to call interceptor: " + filter, e);
+            }
          }
       }
    }
@@ -198,22 +197,5 @@
 
    // Private -------------------------------------------------------
 
-   private void dump()
-   {
-      if (log.isDebugEnabled())
-      {
-         StringBuffer buf = new StringBuffer("Registered PacketHandlers ("
-                 + this + "):\n");
-         Iterator<Entry<Long, PacketHandler>> iterator = handlers.entrySet()
-                 .iterator();
-         while (iterator.hasNext())
-         {
-            Map.Entry<java.lang.Long, org.jboss.messaging.core.remoting.PacketHandler> entry = (Map.Entry<java.lang.Long, org.jboss.messaging.core.remoting.PacketHandler>) iterator
-                    .next();
-            buf.append(entry.getKey() + " : " + entry.getValue() + "\n");
-         }
-         log.debug(buf.toString());
-      }
-   }
    // Inner classes -------------------------------------------------
 }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/RemotingConnectionImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/RemotingConnectionImpl.java	2008-06-20 09:26:26 UTC (rev 4531)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/RemotingConnectionImpl.java	2008-06-20 10:50:46 UTC (rev 4532)
@@ -59,10 +59,16 @@
 
    // Constructors ---------------------------------------------------------------------------------
 
-   public RemotingConnectionImpl(final Location location, ConnectionParams connectionParams) throws Exception
+   public RemotingConnectionImpl(final Location location, ConnectionParams connectionParams) throws IllegalArgumentException
    {
-      assert location != null;
-      assert connectionParams != null;
+      if(location == null)
+      {
+         throw new IllegalArgumentException("location must not be null");
+      }
+      if(connectionParams == null)
+      {
+         throw new IllegalArgumentException("connection params must not be null");
+      }
 
       this.location = location;
       this.connectionParams = connectionParams;
@@ -187,7 +193,7 @@
 
    public void sendOneWay(final long targetID, final long executorID, final Packet packet) throws MessagingException
    {
-      assert packet != null;
+      checkConnected();
 
       packet.setTargetID(targetID);
       packet.setExecutorID(executorID);

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/impl/PacketFilterTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/impl/PacketFilterTest.java	2008-06-20 09:26:26 UTC (rev 4531)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/impl/PacketFilterTest.java	2008-06-20 10:50:46 UTC (rev 4532)
@@ -91,15 +91,9 @@
          messagingService.getServer().getRemotingService().addInterceptor(interceptorA);
                   
          interceptorA.sendException=true;
-         try
-         {
+       
             conn = cf.createConnection();
-            fail("Exception expected");
-         }
-         catch (Exception e)
-         {
-            conn = null;
-         }
+
          
          interceptorA.sendException=false;
          

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/PacketDispatcherTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/PacketDispatcherTest.java	2008-06-20 09:26:26 UTC (rev 4531)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/PacketDispatcherTest.java	2008-06-20 10:50:46 UTC (rev 4532)
@@ -226,6 +226,80 @@
 
       verify(handler, listener);
    }
+
+   public void testAddInterceptor() throws Exception
+   {
+      Interceptor interceptor = EasyMock.createStrictMock(Interceptor.class);
+      Packet packet = EasyMock.createStrictMock(Packet.class);
+      interceptor.intercept(packet);
+      EasyMock.replay(interceptor, packet);
+      dispatcher.addInterceptor(interceptor);
+      dispatcher.callFilters(packet);
+      EasyMock.verify(interceptor, packet);
+   }
+
+   public void testAddInterceptors() throws Exception
+   {
+      Interceptor interceptor = EasyMock.createStrictMock(Interceptor.class);
+      Interceptor interceptor2 = EasyMock.createStrictMock(Interceptor.class);
+      Interceptor interceptor3 = EasyMock.createStrictMock(Interceptor.class);
+      Packet packet = EasyMock.createStrictMock(Packet.class);
+      interceptor.intercept(packet);
+      interceptor2.intercept(packet);
+      interceptor3.intercept(packet);
+      EasyMock.replay(interceptor, interceptor2, interceptor3, packet);
+      dispatcher.addInterceptor(interceptor);
+      dispatcher.addInterceptor(interceptor2);
+      dispatcher.addInterceptor(interceptor3);
+      dispatcher.callFilters(packet);
+      EasyMock.verify(interceptor, interceptor2, interceptor3, packet);
+   }
+
+   public void testAddAndRemoveInterceptor() throws Exception
+   {
+      Interceptor interceptor = EasyMock.createStrictMock(Interceptor.class);
+      Packet packet = EasyMock.createStrictMock(Packet.class);
+      interceptor.intercept(packet);
+      EasyMock.replay(interceptor, packet);
+      dispatcher.addInterceptor(interceptor);
+      dispatcher.callFilters(packet);
+      dispatcher.removeInterceptor(interceptor);
+      dispatcher.callFilters(packet);
+      EasyMock.verify(interceptor, packet);
+   }
+
+   public void testAddAndRemoveInterceptors() throws Exception
+     {
+        Interceptor interceptor = EasyMock.createStrictMock(Interceptor.class);
+        Interceptor interceptor2 = EasyMock.createStrictMock(Interceptor.class);
+        Interceptor interceptor3 = EasyMock.createStrictMock(Interceptor.class);
+        Packet packet = EasyMock.createStrictMock(Packet.class);
+        interceptor.intercept(packet);
+        interceptor2.intercept(packet);
+        interceptor3.intercept(packet);
+        interceptor.intercept(packet);
+        interceptor3.intercept(packet);
+        EasyMock.replay(interceptor, interceptor2, interceptor3, packet);
+        dispatcher.addInterceptor(interceptor);
+        dispatcher.addInterceptor(interceptor2);
+        dispatcher.addInterceptor(interceptor3);
+        dispatcher.callFilters(packet);
+        dispatcher.removeInterceptor(interceptor2);
+        dispatcher.callFilters(packet);
+        EasyMock.verify(interceptor, interceptor2, interceptor3, packet);
+     }
+
+   public void testInterceptorThrowingException() throws Exception
+   {
+      Interceptor interceptor = EasyMock.createStrictMock(Interceptor.class);
+      Packet packet = EasyMock.createStrictMock(Packet.class);
+      interceptor.intercept(packet);
+      EasyMock.expectLastCall().andThrow(new RuntimeException());
+      EasyMock.replay(interceptor, packet);
+      dispatcher.addInterceptor(interceptor);
+      dispatcher.callFilters(packet);
+      EasyMock.verify(interceptor, packet);
+   }
    // Package protected ---------------------------------------------
 
    // Protected -----------------------------------------------------

Modified: 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-06-20 09:26:26 UTC (rev 4531)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/RemotingConnectionTest.java	2008-06-20 10:50:46 UTC (rev 4532)
@@ -18,7 +18,7 @@
  * 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;
 
@@ -30,6 +30,7 @@
 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;
 
 /**
@@ -43,6 +44,34 @@
       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);
@@ -100,6 +129,41 @@
 
    }
 
+   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.setRemotingSessionListener(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);
@@ -239,6 +303,141 @@
       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);
@@ -376,6 +575,90 @@
       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);
@@ -484,6 +767,86 @@
       EasyMock.verify(connectorRegistry);
    }
 
+   public void testConnectionSetListenerTwiceThrowsException() 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);
+      EasyMock.replay(connector);
+
+      RemotingConnectionImpl remotingConnection = new RemotingConnectionImpl(location, connectionParams);
+      remotingConnection.start();
+      remotingConnection.setRemotingSessionListener(listener);
+      try
+      {
+         remotingConnection.setRemotingSessionListener(listener2);
+         fail("should throw exception");
+      }
+      catch (IllegalStateException e)
+      {
+         //pass
+      }
+      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;




More information about the jboss-cvs-commits mailing list