[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