[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