[jboss-cvs] JBoss Messaging SVN: r4518 - in trunk: src/main/org/jboss/messaging/core/message/impl and 8 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Jun 18 12:38:43 EDT 2008
Author: timfox
Date: 2008-06-18 12:38:43 -0400 (Wed, 18 Jun 2008)
New Revision: 4518
Added:
trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/MessagingServerImplTest.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/ServerConnectionImplTest.java
Modified:
trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionFactoryImpl.java
trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionImpl.java
trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java
trunk/src/main/org/jboss/messaging/core/message/impl/MessageImpl.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/CreateConnectionRequest.java
trunk/src/main/org/jboss/messaging/core/server/MessagingServer.java
trunk/src/main/org/jboss/messaging/core/server/ServerConnection.java
trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java
trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerPacketHandler.java
trunk/src/main/org/jboss/messaging/core/server/impl/ServerConnectionImpl.java
trunk/src/main/org/jboss/messaging/core/version/impl/VersionImpl.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/client/impl/ClientConnectionFactoryImplTest.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/client/impl/ClientConnectionImplTest.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/MessagingCodecImplTest.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/mina/MinaProtocolCodecFilterTest.java
Log:
More tests
Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionFactoryImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionFactoryImpl.java 2008-06-18 14:36:35 UTC (rev 4517)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionFactoryImpl.java 2008-06-18 16:38:43 UTC (rev 4518)
@@ -178,11 +178,9 @@
remotingConnection = remotingConnectionFactory.createRemotingConnection(location, connectionParams);
remotingConnection.start();
-
- long sessionID = remotingConnection.getSessionID();
-
+
CreateConnectionRequest request =
- new CreateConnectionRequest(clientVersion.getIncrementingVersion(), sessionID, username, password);
+ new CreateConnectionRequest(clientVersion.getIncrementingVersion(), username, password);
CreateConnectionResponse response =
(CreateConnectionResponse)remotingConnection.sendBlocking(0, 0, request);
Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionImpl.java 2008-06-18 14:36:35 UTC (rev 4517)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionImpl.java 2008-06-18 16:38:43 UTC (rev 4518)
@@ -165,6 +165,7 @@
public synchronized void cleanUp()
{
cleanUpChildren();
+
closed = true;
}
Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java 2008-06-18 14:36:35 UTC (rev 4517)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java 2008-06-18 16:38:43 UTC (rev 4518)
@@ -482,18 +482,16 @@
}
}
-
public synchronized void cleanUp()
{
cleanUpChildren();
+
executorService.shutdown();
connection.removeSession(this);
closed = true;
}
-
-
public boolean isClosed()
{
Modified: trunk/src/main/org/jboss/messaging/core/message/impl/MessageImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/message/impl/MessageImpl.java 2008-06-18 14:36:35 UTC (rev 4517)
+++ trunk/src/main/org/jboss/messaging/core/message/impl/MessageImpl.java 2008-06-18 16:38:43 UTC (rev 4518)
@@ -86,7 +86,7 @@
}
protected MessageImpl(final byte type, final boolean durable, final long expiration,
- final long timestamp, final byte priority)
+ final long timestamp, final byte priority)
{
this();
this.type = type;
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/CreateConnectionRequest.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/CreateConnectionRequest.java 2008-06-18 14:36:35 UTC (rev 4517)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/CreateConnectionRequest.java 2008-06-18 16:38:43 UTC (rev 4518)
@@ -42,7 +42,6 @@
// Attributes ----------------------------------------------------
private int version;
- private long remotingSessionID;
private String username;
private String password;
@@ -50,13 +49,11 @@
// Constructors --------------------------------------------------
- public CreateConnectionRequest(final int version,
- final long remotingSessionID, final String username, final String password)
+ public CreateConnectionRequest(final int version, final String username, final String password)
{
super(CREATECONNECTION);
this.version = version;
- this.remotingSessionID = remotingSessionID;
this.username = username;
this.password = password;
}
@@ -73,11 +70,6 @@
return version;
}
- public long getRemotingSessionID()
- {
- return remotingSessionID;
- }
-
public String getUsername()
{
return username;
@@ -91,7 +83,6 @@
public void encodeBody(final MessagingBuffer buffer)
{
buffer.putInt(version);
- buffer.putLong(remotingSessionID);
buffer.putNullableString(username);
buffer.putNullableString(password);
}
@@ -99,7 +90,6 @@
public void decodeBody(final MessagingBuffer buffer)
{
version = buffer.getInt();
- remotingSessionID = buffer.getLong();
username = buffer.getNullableString();
password = buffer.getNullableString();
}
@@ -109,7 +99,6 @@
{
StringBuffer buf = new StringBuffer(getParentString());
buf.append(", version=" + version);
- buf.append(", remotingSessionID=" + remotingSessionID);
buf.append(", username=" + username);
buf.append(", password=" + password);
buf.append("]");
@@ -125,8 +114,7 @@
CreateConnectionRequest r = (CreateConnectionRequest)other;
- boolean matches = this.version == r.version &&
- this.remotingSessionID == r.remotingSessionID &&
+ boolean matches = this.version == r.version &&
this.username == null ? r.username == null : this.username.equals(r.username) &&
this.password == null ? r.password == null : this.password.equals(r.password);
Modified: trunk/src/main/org/jboss/messaging/core/server/MessagingServer.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/MessagingServer.java 2008-06-18 14:36:35 UTC (rev 4517)
+++ trunk/src/main/org/jboss/messaging/core/server/MessagingServer.java 2008-06-18 16:38:43 UTC (rev 4518)
@@ -92,10 +92,9 @@
//Operations
- CreateConnectionResponse createConnection(String username, String password,
- long remotingClientSessionID,
+ CreateConnectionResponse createConnection(String username, String password,
int incrementingVersion,
- PacketReturner sender) throws Exception;
+ PacketReturner returner) throws Exception;
boolean isStarted();
Modified: trunk/src/main/org/jboss/messaging/core/server/ServerConnection.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/ServerConnection.java 2008-06-18 14:36:35 UTC (rev 4517)
+++ trunk/src/main/org/jboss/messaging/core/server/ServerConnection.java 2008-06-18 16:38:43 UTC (rev 4518)
@@ -66,4 +66,6 @@
boolean isStarted();
long getClientSessionID();
+
+ boolean isClosed();
}
Modified: trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java 2008-06-18 14:36:35 UTC (rev 4517)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java 2008-06-18 16:38:43 UTC (rev 4518)
@@ -179,8 +179,7 @@
securityRepository = new HierarchicalObjectRepository<Set<Role>>();
securityRepository.setDefault(new HashSet<Role>());
securityStore.setSecurityRepository(securityRepository);
- securityStore.setSecurityManager(securityManager);
-
+ securityStore.setSecurityManager(securityManager);
scheduledExecutor = new ScheduledThreadPoolExecutor(configuration.getScheduledThreadPoolMaxSize(), new JBMThreadFactory("JBM-scheduled-threads"));
resourceManager = new ResourceManagerImpl(0);
remotingService.addRemotingSessionListener(sessionListener);
@@ -240,6 +239,11 @@
public void setConfiguration(Configuration configuration)
{
+ if (started)
+ {
+ throw new IllegalStateException("Cannot set configuration when started");
+ }
+
this.configuration = configuration;
}
@@ -250,6 +254,10 @@
public void setRemotingService(RemotingService remotingService)
{
+ if (started)
+ {
+ throw new IllegalStateException("Cannot set remoting service when started");
+ }
this.remotingService = remotingService;
}
@@ -260,6 +268,10 @@
public void setStorageManager(StorageManager storageManager)
{
+ if (started)
+ {
+ throw new IllegalStateException("Cannot set storage manager when started");
+ }
this.storageManager = storageManager;
}
@@ -270,6 +282,11 @@
public void setSecurityManager(JBMSecurityManager securityManager)
{
+ if (started)
+ {
+ throw new IllegalStateException("Cannot set security Manager when started");
+ }
+
this.securityManager = securityManager;
}
@@ -327,10 +344,9 @@
return started;
}
- public CreateConnectionResponse createConnection(final String username, final String password,
- final long remotingClientSessionID,
+ public CreateConnectionResponse createConnection(final String username, final String password,
final int incrementingVersion,
- final PacketReturner sender)
+ final PacketReturner returner)
throws Exception
{
if (version.getIncrementingVersion() < incrementingVersion)
@@ -345,11 +361,12 @@
securityStore.authenticate(username, password);
+ long sessionID = returner.getSessionID();
+
final ServerConnection connection =
- new ServerConnectionImpl(this, username, password,
- sender.getSessionID());
+ new ServerConnectionImpl(this, username, password, sessionID);
- connectionManager.registerConnection(sender.getSessionID(), connection);
+ connectionManager.registerConnection(sessionID, connection);
remotingService.getDispatcher().register(new ServerConnectionPacketHandler(connection));
Modified: trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerPacketHandler.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerPacketHandler.java 2008-06-18 14:36:35 UTC (rev 4517)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerPacketHandler.java 2008-06-18 16:38:43 UTC (rev 4518)
@@ -74,10 +74,10 @@
{
CreateConnectionRequest request = (CreateConnectionRequest) packet;
- CreateConnectionResponse createConnectionResponse = server.createConnection(request.getUsername(), request.getPassword(),
- request.getRemotingSessionID(),
- request.getVersion(),
- sender);
+ CreateConnectionResponse createConnectionResponse =
+ server.createConnection(request.getUsername(), request.getPassword(),
+ request.getVersion(),
+ sender);
response = createConnectionResponse;
}
Modified: trunk/src/main/org/jboss/messaging/core/server/impl/ServerConnectionImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/ServerConnectionImpl.java 2008-06-18 14:36:35 UTC (rev 4517)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/ServerConnectionImpl.java 2008-06-18 16:38:43 UTC (rev 4518)
@@ -84,6 +84,8 @@
private final ConnectionManager connectionManager;
private final PacketDispatcher dispatcher;
+
+ private volatile boolean closed;
// Constructors ---------------------------------------------------------------------------------
@@ -128,8 +130,7 @@
final boolean autoCommitAcks,
final PacketReturner returner) throws Exception
{
- ServerSession session =
- new ServerSessionImpl(this, autoCommitSends, autoCommitAcks, xa, returner);
+ ServerSession session = doCreateSession(autoCommitSends, autoCommitAcks, xa, returner);
sessions.add(session);
@@ -138,6 +139,13 @@
return new ConnectionCreateSessionResponseMessage(session.getID());
}
+ protected ServerSession doCreateSession(final boolean autoCommitSends, final boolean autoCommitAcks,
+ final boolean xa, final PacketReturner returner)
+ throws Exception
+ {
+ return new ServerSessionImpl(this, autoCommitSends, autoCommitAcks, xa, returner);
+ }
+
public void start() throws Exception
{
setStarted(true);
@@ -150,6 +158,11 @@
public void close() throws Exception
{
+ if (closed)
+ {
+ return;
+ }
+
Set<ServerSession> sessionsClone = new HashSet<ServerSession>(sessions);
for (ServerSession session: sessionsClone)
@@ -163,11 +176,13 @@
for (Queue tempQueue: temporaryQueues)
{
- Binding binding = postOffice.getBinding(tempQueue.getName());
+ SimpleString name = tempQueue.getName();
+ Binding binding = postOffice.getBinding(name);
+
addresses.add(binding.getAddress());
- postOffice.removeBinding(tempQueue.getName());
+ postOffice.removeBinding(name);
}
for (SimpleString address: addresses)
@@ -187,8 +202,15 @@
connectionManager.unregisterConnection(remotingClientSessionID, this);
dispatcher.unregister(id);
+
+ closed = true;
}
+ public boolean isClosed()
+ {
+ return closed;
+ }
+
public String getUsername()
{
return username;
@@ -252,6 +274,13 @@
{
return remotingClientSessionID;
}
+
+ // Public ---------------------------------------------------------------------------------------
+
+ public void addSession(final ServerSession session)
+ {
+ this.sessions.add(session);
+ }
public Set<Queue> getTemporaryQueues()
{
@@ -268,8 +297,6 @@
return new HashSet<ServerSession>(sessions);
}
- // Public ---------------------------------------------------------------------------------------
-
public String toString()
{
return "ConnectionEndpoint[" + id + "]";
Modified: trunk/src/main/org/jboss/messaging/core/version/impl/VersionImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/version/impl/VersionImpl.java 2008-06-18 14:36:35 UTC (rev 4517)
+++ trunk/src/main/org/jboss/messaging/core/version/impl/VersionImpl.java 2008-06-18 16:38:43 UTC (rev 4518)
@@ -112,6 +112,26 @@
}
// Public -------------------------------------------------------
+
+ public boolean equals(Object other)
+ {
+ if (other == this)
+ {
+ return true;
+ }
+ if (other instanceof Version == false)
+ {
+ return false;
+ }
+ Version v = (Version)other;
+
+ return this.versionName.equals(v.getVersionName()) &&
+ this.majorVersion == v.getMajorVersion() &&
+ this.minorVersion == v.getMinorVersion() &&
+ this.microVersion == v.getMicroVersion() &&
+ this.versionSuffix.equals(v.getVersionSuffix()) &&
+ this.incrementingVersion == v.getIncrementingVersion();
+ }
// Package protected ---------------------------------------------
Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/client/impl/ClientConnectionFactoryImplTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/client/impl/ClientConnectionFactoryImplTest.java 2008-06-18 14:36:35 UTC (rev 4517)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/client/impl/ClientConnectionFactoryImplTest.java 2008-06-18 16:38:43 UTC (rev 4518)
@@ -230,14 +230,10 @@
rc.start();
- final long sessID = 65126152;
-
- EasyMock.expect(rc.getSessionID()).andReturn(sessID);
-
Version clientVersion = VersionLoader.load();
CreateConnectionRequest request =
- new CreateConnectionRequest(clientVersion.getIncrementingVersion(), sessID, username, password);
+ new CreateConnectionRequest(clientVersion.getIncrementingVersion(), username, password);
final long connTargetID = 5425142;
Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/client/impl/ClientConnectionImplTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/client/impl/ClientConnectionImplTest.java 2008-06-18 14:36:35 UTC (rev 4517)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/client/impl/ClientConnectionImplTest.java 2008-06-18 16:38:43 UTC (rev 4518)
@@ -290,36 +290,22 @@
sessions = conn.getSessions();
assertEquals(0, sessions.size());
}
-
- // Private -----------------------------------------------------------------------------------------------------------
+
+ public void testSessionCleanedUp() throws Exception
+ {
+ RemotingConnection rc = EasyMock.createStrictMock(RemotingConnection.class);
-
- private void testCreateSession(final boolean xa, final boolean autoCommitSends, final boolean autoCommitAcks,
- final int ackBatchSize, final boolean blockOnAcknowledge,
- final boolean cacheProducers, final boolean useDefaults) throws Exception
- {
- RemotingConnection rc = EasyMock.createStrictMock(RemotingConnection.class);
-
Location location = new LocationImpl(TransportType.TCP, "oranges");
ClientConnectionFactory cf = new ClientConnectionFactoryImpl(location);
- if (useDefaults)
- {
- cf.setDefaultBlockOnAcknowledge(blockOnAcknowledge);
- }
- else
- {
- cf.setDefaultBlockOnAcknowledge(!blockOnAcknowledge); // Should be ignored
- }
-
final int connTargetID = 17267162;
Version version = new VersionImpl("uqysuyqs", 1, 1, 1, 12, "uqysuays");
ClientConnection conn = new ClientConnectionImpl(cf, connTargetID, rc, version);
- ConnectionCreateSessionMessage request = new ConnectionCreateSessionMessage(xa, autoCommitSends, autoCommitAcks);
+ ConnectionCreateSessionMessage request = new ConnectionCreateSessionMessage(true, true, true);
final int sessionTargetID = 12127162;
@@ -328,38 +314,22 @@
EasyMock.expect(rc.sendBlocking(connTargetID, connTargetID, request)).andReturn(response);
EasyMock.replay(rc);
-
- ClientSession session;
-
- if (useDefaults)
- {
- session = conn.createClientSession(xa, autoCommitSends, autoCommitAcks, ackBatchSize);
- }
- else
- {
- session = conn.createClientSession(xa, autoCommitSends, autoCommitAcks, ackBatchSize, blockOnAcknowledge,
- cacheProducers);
- }
-
- assertEquals(ackBatchSize, session.getLazyAckBatchSize());
- assertEquals(xa, session.isXA());
- assertEquals(autoCommitSends, session.isAutoCommitSends());
- assertEquals(autoCommitAcks, session.isAutoCommitAcks());
- assertEquals(blockOnAcknowledge, session.isBlockOnAcknowledge());
-
+ ClientSession session = conn.createClientSession(true, true, true, 1);
+ conn.cleanUp();
+ assertTrue(session.isClosed());
+ assertTrue(conn.isClosed());
EasyMock.verify(rc);
}
- public void testSessionCleanedUp() throws Exception
- {
- RemotingConnection rc = EasyMock.createStrictMock(RemotingConnection.class);
+ public void testSessionsCleanedUp() throws Exception
+ {
+ RemotingConnection rc = EasyMock.createStrictMock(RemotingConnection.class);
+
Location location = new LocationImpl(TransportType.TCP, "oranges");
ClientConnectionFactory cf = new ClientConnectionFactoryImpl(location);
-
-
final int connTargetID = 17267162;
Version version = new VersionImpl("uqysuyqs", 1, 1, 1, 12, "uqysuays");
@@ -372,52 +342,77 @@
ConnectionCreateSessionResponseMessage response = new ConnectionCreateSessionResponseMessage(sessionTargetID);
- EasyMock.expect(rc.sendBlocking(connTargetID, connTargetID, request)).andReturn(response);
+ EasyMock.expect(rc.sendBlocking(connTargetID, connTargetID, request)).andReturn(response).anyTimes();
EasyMock.replay(rc);
ClientSession session = conn.createClientSession(true, true, true, 1);
+ ClientSession session2 = conn.createClientSession(true, true, true, 2);
+ ClientSession session3 = conn.createClientSession(true, true, true, 3);
conn.cleanUp();
assertTrue(session.isClosed());
+ assertTrue(session2.isClosed());
+ assertTrue(session3.isClosed());
assertTrue(conn.isClosed());
EasyMock.verify(rc);
- }
+ }
+
+ // Private -----------------------------------------------------------------------------------------------------------
- public void testSessionsCleanedUp() throws Exception
- {
- RemotingConnection rc = EasyMock.createStrictMock(RemotingConnection.class);
+ private void testCreateSession(final boolean xa, final boolean autoCommitSends, final boolean autoCommitAcks,
+ final int ackBatchSize, final boolean blockOnAcknowledge,
+ final boolean cacheProducers, final boolean useDefaults) throws Exception
+ {
+ RemotingConnection rc = EasyMock.createStrictMock(RemotingConnection.class);
Location location = new LocationImpl(TransportType.TCP, "oranges");
ClientConnectionFactory cf = new ClientConnectionFactoryImpl(location);
+ if (useDefaults)
+ {
+ cf.setDefaultBlockOnAcknowledge(blockOnAcknowledge);
+ }
+ else
+ {
+ cf.setDefaultBlockOnAcknowledge(!blockOnAcknowledge); // Should be ignored
+ }
-
final int connTargetID = 17267162;
Version version = new VersionImpl("uqysuyqs", 1, 1, 1, 12, "uqysuays");
ClientConnection conn = new ClientConnectionImpl(cf, connTargetID, rc, version);
- ConnectionCreateSessionMessage request = new ConnectionCreateSessionMessage(true, true, true);
+ ConnectionCreateSessionMessage request = new ConnectionCreateSessionMessage(xa, autoCommitSends, autoCommitAcks);
final int sessionTargetID = 12127162;
ConnectionCreateSessionResponseMessage response = new ConnectionCreateSessionResponseMessage(sessionTargetID);
- EasyMock.expect(rc.sendBlocking(connTargetID, connTargetID, request)).andReturn(response).anyTimes();
+ EasyMock.expect(rc.sendBlocking(connTargetID, connTargetID, request)).andReturn(response);
EasyMock.replay(rc);
- ClientSession session = conn.createClientSession(true, true, true, 1);
- ClientSession session2 = conn.createClientSession(true, true, true, 2);
- ClientSession session3 = conn.createClientSession(true, true, true, 3);
- conn.cleanUp();
- assertTrue(session.isClosed());
- assertTrue(session2.isClosed());
- assertTrue(session3.isClosed());
- assertTrue(conn.isClosed());
- EasyMock.verify(rc);
+ ClientSession session;
+
+ if (useDefaults)
+ {
+ session = conn.createClientSession(xa, autoCommitSends, autoCommitAcks, ackBatchSize);
}
+ else
+ {
+ session = conn.createClientSession(xa, autoCommitSends, autoCommitAcks, ackBatchSize, blockOnAcknowledge,
+ cacheProducers);
+ }
+
+ assertEquals(ackBatchSize, session.getLazyAckBatchSize());
+ assertEquals(xa, session.isXA());
+ assertEquals(autoCommitSends, session.isAutoCommitSends());
+ assertEquals(autoCommitAcks, session.isAutoCommitAcks());
+ assertEquals(blockOnAcknowledge, session.isBlockOnAcknowledge());
+
+ EasyMock.verify(rc);
+ }
}
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-06-18 14:36:35 UTC (rev 4517)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/client/impl/ClientSessionImplTest.java 2008-06-18 16:38:43 UTC (rev 4518)
@@ -560,9 +560,7 @@
testCreateBrowser(true);
testCreateBrowser(false);
}
-
-
-
+
public void testGetXAResource() throws Exception
{
ClientConnectionInternal conn = EasyMock.createStrictMock(ClientConnectionInternal.class);
@@ -751,9 +749,7 @@
testClose(true);
testClose(false);
}
-
-
-
+
public void testAddRemoveConsumer() throws Exception
{
testAddRemoveConsumer(true);
Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/MessagingCodecImplTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/MessagingCodecImplTest.java 2008-06-18 14:36:35 UTC (rev 4517)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/MessagingCodecImplTest.java 2008-06-18 16:38:43 UTC (rev 4518)
@@ -817,7 +817,7 @@
public void testCreateConnectionRequestPacket() throws Exception
{
- CreateConnectionRequest message = new CreateConnectionRequest(RandomUtil.randomInt(), RandomUtil.randomLong(), RandomUtil.randomString(), RandomUtil.randomString());
+ CreateConnectionRequest message = new CreateConnectionRequest(RandomUtil.randomInt(), RandomUtil.randomString(), RandomUtil.randomString());
setHeaders(message);
codec.encode(buff, message);
buff.rewind();
@@ -825,8 +825,7 @@
checkHeaders(message, copy);
assertEquals(message.getUsername(), copy.getUsername());
assertEquals(message.getVersion(), copy.getVersion());
- assertEquals(message.getPassword(), copy.getPassword());
- assertEquals(message.getRemotingSessionID(), copy.getRemotingSessionID());
+ assertEquals(message.getPassword(), copy.getPassword());
}
public void testConsumerFlowCreditMessagePacket() throws Exception
Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/mina/MinaProtocolCodecFilterTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/mina/MinaProtocolCodecFilterTest.java 2008-06-18 14:36:35 UTC (rev 4517)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/mina/MinaProtocolCodecFilterTest.java 2008-06-18 16:38:43 UTC (rev 4518)
@@ -350,22 +350,19 @@
public void testCreateConnectionRequest() throws Exception
{
int version = randomInt();
- long remotingSessionID = randomLong();
String username = null;
String password = null;
CreateConnectionRequest request = new CreateConnectionRequest(version,
- remotingSessionID, username, password);
+ username, password);
Packet decodedPacket = encodeAndCheckBytesAndDecode(request, version,
- remotingSessionID, username, password);
+ username, password);
assertTrue(decodedPacket instanceof CreateConnectionRequest);
CreateConnectionRequest decodedRequest = (CreateConnectionRequest) decodedPacket;
assertEquals(CREATECONNECTION, decodedPacket.getType());
assertEquals(request.getVersion(), decodedRequest.getVersion());
- assertEquals(request.getRemotingSessionID(), decodedRequest
- .getRemotingSessionID());
assertEquals(request.getUsername(), decodedRequest.getUsername());
assertEquals(request.getPassword(), decodedRequest.getPassword());
}
Added: trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/MessagingServerImplTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/MessagingServerImplTest.java (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/MessagingServerImplTest.java 2008-06-18 16:38:43 UTC (rev 4518)
@@ -0,0 +1,446 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.messaging.tests.unit.core.server.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.easymock.EasyMock;
+import org.jboss.messaging.core.config.Configuration;
+import org.jboss.messaging.core.config.impl.ConfigurationImpl;
+import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.persistence.StorageManager;
+import org.jboss.messaging.core.postoffice.impl.PostOfficeImpl;
+import org.jboss.messaging.core.remoting.PacketDispatcher;
+import org.jboss.messaging.core.remoting.PacketReturner;
+import org.jboss.messaging.core.remoting.RemotingService;
+import org.jboss.messaging.core.remoting.impl.wireformat.CreateConnectionResponse;
+import org.jboss.messaging.core.security.CheckType;
+import org.jboss.messaging.core.security.JBMSecurityManager;
+import org.jboss.messaging.core.security.Role;
+import org.jboss.messaging.core.server.ConnectionManager;
+import org.jboss.messaging.core.server.MessagingServer;
+import org.jboss.messaging.core.server.ServerConnection;
+import org.jboss.messaging.core.server.impl.ConnectionManagerImpl;
+import org.jboss.messaging.core.server.impl.MessagingServerImpl;
+import org.jboss.messaging.core.server.impl.MessagingServerPacketHandler;
+import org.jboss.messaging.core.server.impl.QueueFactoryImpl;
+import org.jboss.messaging.core.server.impl.ServerConnectionPacketHandler;
+import org.jboss.messaging.core.version.Version;
+import org.jboss.messaging.tests.util.UnitTestCase;
+import org.jboss.messaging.util.VersionLoader;
+
+/**
+ *
+ * A MessagingServerImplTest
+ *
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ *
+ */
+public class MessagingServerImplTest extends UnitTestCase
+{
+ private static final Logger log = Logger.getLogger(MessagingServerImplTest.class);
+
+
+ // Private -----------------------------------------------------------------------------------------------------------
+
+ public void testConstructor()
+ {
+ MessagingServer server = new MessagingServerImpl();
+
+ Version version = VersionLoader.load();
+
+ assertEquals(version, server.getVersion());
+
+ assertNull(server.getConfiguration());
+ assertNull(server.getConnectionManager());
+ assertNull(server.getExecutorFactory());
+ assertNull(server.getPostOffice());
+ assertNull(server.getQueueSettingsRepository());
+ assertNull(server.getRemotingService());
+ assertNull(server.getResourceManager());
+ assertNull(server.getSecurityManager());
+ assertNull(server.getSecurityRepository());
+ assertNull(server.getSecurityStore());
+ assertNull(server.getStorageManager());
+ }
+
+ public void testSetGetPlugins() throws Exception
+ {
+ MessagingServer server = new MessagingServerImpl();
+
+ Configuration config = EasyMock.createMock(Configuration.class);
+ server.setConfiguration(config);
+ assertTrue(config == server.getConfiguration());
+
+ StorageManager sm = EasyMock.createMock(StorageManager.class);
+ server.setStorageManager(sm);
+ assertTrue(sm == server.getStorageManager());
+
+ RemotingService rs = EasyMock.createMock(RemotingService.class);
+ server.setRemotingService(rs);
+ assertTrue(rs == server.getRemotingService());
+
+ JBMSecurityManager jsm = EasyMock.createMock(JBMSecurityManager.class);
+ server.setSecurityManager(jsm);
+ assertTrue(jsm == server.getSecurityManager());
+ }
+
+ public void testStartStop() throws Exception
+ {
+ MessagingServer server = new MessagingServerImpl();
+
+ try
+ {
+ server.start();
+ fail("Should throw exception");
+ }
+ catch (IllegalStateException e)
+ {
+ //Ok
+ }
+
+ server.setConfiguration(new ConfigurationImpl());
+
+ try
+ {
+ server.start();
+ fail("Should throw exception");
+ }
+ catch (IllegalStateException e)
+ {
+ //Ok
+ }
+
+ StorageManager sm = EasyMock.createMock(StorageManager.class);
+
+ server.setStorageManager(sm);
+
+ try
+ {
+ server.start();
+ fail("Should throw exception");
+ }
+ catch (IllegalStateException e)
+ {
+ //Ok
+ }
+
+ RemotingService rs = EasyMock.createMock(RemotingService.class);
+
+ server.setRemotingService(rs);
+
+ try
+ {
+ server.start();
+ fail("Should throw exception");
+ }
+ catch (IllegalStateException e)
+ {
+ //Ok
+ }
+
+ JBMSecurityManager sem = EasyMock.createMock(JBMSecurityManager.class);
+
+ server.setSecurityManager(sem);
+
+ try
+ {
+ server.start();
+ fail("Should throw exception");
+ }
+ catch (IllegalStateException e)
+ {
+ //Ok
+ }
+
+ EasyMock.reset(sm, rs);
+
+ EasyMock.expect(sm.isStarted()).andStubReturn(true);
+ EasyMock.expect(rs.isStarted()).andStubReturn(false);
+
+ EasyMock.replay(sm, rs);
+
+ try
+ {
+ server.start();
+ fail("Should throw exception");
+ }
+ catch (IllegalStateException e)
+ {
+ //Ok
+ }
+
+ EasyMock.reset(sm, rs);
+
+ EasyMock.expect(sm.isStarted()).andStubReturn(true);
+ EasyMock.expect(rs.isStarted()).andStubReturn(true);
+ rs.addRemotingSessionListener(EasyMock.isA(ConnectionManagerImpl.class));
+ sm.loadBindings(EasyMock.isA(QueueFactoryImpl.class), EasyMock.isA(ArrayList.class), EasyMock.isA(ArrayList.class));
+ sm.loadMessages(EasyMock.isA(PostOfficeImpl.class), EasyMock.isA(Map.class));
+ PacketDispatcher pd = EasyMock.createMock(PacketDispatcher.class);
+ EasyMock.expect(rs.getDispatcher()).andReturn(pd);
+ pd.register(EasyMock.isA(MessagingServerPacketHandler.class));
+
+ EasyMock.replay(sm, rs, pd);
+
+ assertFalse(server.isStarted());
+
+ server.start();
+
+ assertTrue(server.isStarted());
+
+ EasyMock.verify(sm, rs, pd);
+
+ EasyMock.reset(sm, rs, pd);
+
+ //Starting again should do nothing
+
+ EasyMock.replay(sm, rs, pd);
+
+ server.start();
+
+ assertTrue(server.isStarted());
+
+ EasyMock.verify(sm, rs, pd);
+
+ EasyMock.reset(sm, rs, pd);
+
+ //Can't set the plugins when server is started
+
+ try
+ {
+ server.setConfiguration(new ConfigurationImpl());
+ fail("Should throw exception");
+ }
+ catch (IllegalStateException e)
+ {
+ //Ok
+ }
+
+ try
+ {
+ server.setStorageManager(sm);
+ fail("Should throw exception");
+ }
+ catch (IllegalStateException e)
+ {
+ //Ok
+ }
+
+ try
+ {
+ server.setRemotingService(rs);
+ fail("Should throw exception");
+ }
+ catch (IllegalStateException e)
+ {
+ //Ok
+ }
+
+ try
+ {
+ server.setSecurityManager(sem);
+ fail("Should throw exception");
+ }
+ catch (IllegalStateException e)
+ {
+ //Ok
+ }
+
+ EasyMock.expect(rs.getDispatcher()).andReturn(pd);
+ pd.unregister(0);
+ rs.removeRemotingSessionListener(EasyMock.isA(ConnectionManagerImpl.class));
+
+ EasyMock.replay(sm, rs, pd);
+
+ server.stop();
+
+ assertFalse(server.isStarted());
+
+ EasyMock.verify(sm, rs, pd);
+
+ EasyMock.reset(sm, rs, pd);
+
+ //Stopping again should do nothing
+
+ EasyMock.replay(sm, rs, pd);
+
+ server.stop();
+
+ assertFalse(server.isStarted());
+
+ EasyMock.verify(sm, rs, pd);
+ }
+
+ public void testCreateConnectionIncompatibleVersion() throws Exception
+ {
+ Version version = VersionLoader.load();
+
+ MessagingServer server = new MessagingServerImpl();
+
+ try
+ {
+ server.createConnection("hghgh", "hghggh", version.getIncrementingVersion() + 1, null);
+ fail("Should throw exception");
+ }
+ catch (MessagingException e)
+ {
+ assertEquals(MessagingException.INCOMPATIBLE_CLIENT_SERVER_VERSIONS, e.getCode());
+ }
+ }
+
+ public void testCreateConnectionFailAuthentication() throws Exception
+ {
+ MessagingServer server = new MessagingServerImpl();
+
+ server.setConfiguration(new ConfigurationImpl());
+
+ StorageManager sm = EasyMock.createMock(StorageManager.class);
+
+ server.setStorageManager(sm);
+
+ RemotingService rs = EasyMock.createMock(RemotingService.class);
+
+ server.setRemotingService(rs);
+
+ JBMSecurityManager sem = new JBMSecurityManager()
+ {
+ public boolean validateUser(String user, String password)
+ {
+ return false;
+ }
+
+ public boolean validateUserAndRole(String user, String password, Set<Role> roles, CheckType checkType)
+ {
+ return false;
+ }
+ };
+
+ server.setSecurityManager(sem);
+
+ rs.addRemotingSessionListener(EasyMock.isA(ConnectionManagerImpl.class));
+ sm.loadBindings(EasyMock.isA(QueueFactoryImpl.class), EasyMock.isA(ArrayList.class), EasyMock.isA(ArrayList.class));
+ sm.loadMessages(EasyMock.isA(PostOfficeImpl.class), EasyMock.isA(Map.class));
+ PacketDispatcher pd = EasyMock.createMock(PacketDispatcher.class);
+ EasyMock.expect(rs.getDispatcher()).andReturn(pd);
+ pd.register(EasyMock.isA(MessagingServerPacketHandler.class));
+ EasyMock.expect(sm.isStarted()).andStubReturn(true);
+ EasyMock.expect(rs.isStarted()).andStubReturn(true);
+
+ EasyMock.replay(rs, sm, pd);
+
+ server.start();
+
+ EasyMock.verify(rs, sm, pd);
+
+
+ try
+ {
+ server.createConnection("hjhjhj", "jkkjj", 43, null);
+ fail("Should throw exception");
+ }
+ catch (MessagingException e)
+ {
+ assertEquals(MessagingException.SECURITY_EXCEPTION, e.getCode());
+ }
+ }
+
+ public void testCreateConnectionOK() throws Exception
+ {
+ MessagingServer server = new MessagingServerImpl();
+
+ server.setConfiguration(new ConfigurationImpl());
+
+ StorageManager sm = EasyMock.createMock(StorageManager.class);
+
+ server.setStorageManager(sm);
+
+ RemotingService rs = EasyMock.createMock(RemotingService.class);
+
+ server.setRemotingService(rs);
+
+ JBMSecurityManager sem = new JBMSecurityManager()
+ {
+ public boolean validateUser(String user, String password)
+ {
+ return true;
+ }
+
+ public boolean validateUserAndRole(String user, String password, Set<Role> roles, CheckType checkType)
+ {
+ return true;
+ }
+ };
+
+ server.setSecurityManager(sem);
+
+ rs.addRemotingSessionListener(EasyMock.isA(ConnectionManagerImpl.class));
+ sm.loadBindings(EasyMock.isA(QueueFactoryImpl.class), EasyMock.isA(ArrayList.class), EasyMock.isA(ArrayList.class));
+ sm.loadMessages(EasyMock.isA(PostOfficeImpl.class), EasyMock.isA(Map.class));
+ PacketDispatcher pd = EasyMock.createMock(PacketDispatcher.class);
+ EasyMock.expect(rs.getDispatcher()).andReturn(pd);
+ pd.register(EasyMock.isA(MessagingServerPacketHandler.class));
+ EasyMock.expect(sm.isStarted()).andStubReturn(true);
+ EasyMock.expect(rs.isStarted()).andStubReturn(true);
+
+
+ EasyMock.expect(rs.getDispatcher()).andReturn(pd);
+ final long id = 129812;
+ EasyMock.expect(pd.generateID()).andReturn(id);
+ EasyMock.expect(rs.getDispatcher()).andReturn(pd);
+ pd.register(EasyMock.isA(ServerConnectionPacketHandler.class));
+
+ PacketReturner returner = EasyMock.createStrictMock(PacketReturner.class);
+ final long sessionID = 1092812;
+ EasyMock.expect(returner.getSessionID()).andReturn(sessionID);
+
+ EasyMock.replay(rs, sm, pd, returner);
+
+ server.start();
+ final String username = "okasokas";
+ final String password = "oksokasws";
+
+ CreateConnectionResponse resp = server.createConnection(username, password, 43, returner);
+
+ EasyMock.verify(rs, sm, pd, returner);
+
+ assertEquals(VersionLoader.load(), resp.getServerVersion());
+ assertEquals(id, resp.getConnectionTargetID());
+
+ ConnectionManager cm = server.getConnectionManager();
+
+ List<ServerConnection> conns = cm.getActiveConnections();
+ assertEquals(1, conns.size());
+ ServerConnection conn = conns.get(0);
+ assertEquals(id, conn.getID());
+ assertTrue(server == conn.getServer());
+ assertEquals(username, conn.getUsername());
+ assertEquals(password, conn.getPassword());
+ assertEquals(sessionID, conn.getClientSessionID());
+ }
+
+
+}
Added: trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/ServerConnectionImplTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/ServerConnectionImplTest.java (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/ServerConnectionImplTest.java 2008-06-18 16:38:43 UTC (rev 4518)
@@ -0,0 +1,457 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.messaging.tests.unit.core.server.impl;
+
+import org.easymock.EasyMock;
+import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.postoffice.Binding;
+import org.jboss.messaging.core.postoffice.PostOffice;
+import org.jboss.messaging.core.remoting.PacketDispatcher;
+import org.jboss.messaging.core.remoting.PacketReturner;
+import org.jboss.messaging.core.remoting.RemotingService;
+import org.jboss.messaging.core.remoting.impl.wireformat.ConnectionCreateSessionResponseMessage;
+import org.jboss.messaging.core.server.ConnectionManager;
+import org.jboss.messaging.core.server.MessagingServer;
+import org.jboss.messaging.core.server.Queue;
+import org.jboss.messaging.core.server.ServerSession;
+import org.jboss.messaging.core.server.impl.ServerConnectionImpl;
+import org.jboss.messaging.core.server.impl.ServerSessionPacketHandler;
+import org.jboss.messaging.tests.util.UnitTestCase;
+import org.jboss.messaging.util.SimpleString;
+
+/**
+ *
+ * A ServerConnectionImplTest
+ *
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ *
+ */
+public class ServerConnectionImplTest extends UnitTestCase
+{
+ private static final Logger log = Logger.getLogger(ServerConnectionImplTest.class);
+
+ public void testConstructor() throws Exception
+ {
+ createConnection(91821982, "oaksaoks", "asokdasod", 9120912);
+ }
+
+ public void testAddRemoveTemporaryDestinations() throws Exception
+ {
+ ServerConnectionImpl conn = createConnection(8172817, "okooko", "oaksaoks", 812981);
+
+ final SimpleString address1 = new SimpleString("ashaijsaisj");
+ final SimpleString address2 = new SimpleString("iuhasiasa");
+ final SimpleString address3 = new SimpleString("owqdqwoijd");
+
+ assertEquals(0, conn.getTemporaryDestinations().size());
+ conn.addTemporaryDestination(address1);
+ assertEquals(1, conn.getTemporaryDestinations().size());
+ assertTrue(conn.getTemporaryDestinations().contains(address1));
+ conn.addTemporaryDestination(address2);
+ assertEquals(2, conn.getTemporaryDestinations().size());
+ assertTrue(conn.getTemporaryDestinations().contains(address1));
+ assertTrue(conn.getTemporaryDestinations().contains(address2));
+ conn.addTemporaryDestination(address3);
+ assertEquals(3, conn.getTemporaryDestinations().size());
+ assertTrue(conn.getTemporaryDestinations().contains(address1));
+ assertTrue(conn.getTemporaryDestinations().contains(address2));
+ assertTrue(conn.getTemporaryDestinations().contains(address3));
+ try
+ {
+ conn.addTemporaryDestination(address3);
+ fail("Should throw exception");
+ }
+ catch (IllegalStateException e)
+ {
+ //Ok
+ }
+ assertEquals(3, conn.getTemporaryDestinations().size());
+
+ conn.removeTemporaryDestination(address3);
+ assertEquals(2, conn.getTemporaryDestinations().size());
+ assertTrue(conn.getTemporaryDestinations().contains(address1));
+ assertTrue(conn.getTemporaryDestinations().contains(address2));
+ conn.removeTemporaryDestination(address2);
+ assertEquals(1, conn.getTemporaryDestinations().size());
+ assertTrue(conn.getTemporaryDestinations().contains(address1));
+ conn.removeTemporaryDestination(address1);
+ assertEquals(0, conn.getTemporaryDestinations().size());
+
+ try
+ {
+ conn.removeTemporaryDestination(address1);
+ fail("Should throw exeception");
+ }
+ catch (IllegalStateException e)
+ {
+ //Ok
+ }
+
+ try
+ {
+ conn.removeTemporaryDestination(new SimpleString("iwjwiojjoiqwdjqw"));
+ fail("Should throw exeception");
+ }
+ catch (IllegalStateException e)
+ {
+ //Ok
+ }
+ }
+
+ public void testAddRemoveTemporaryQueues() throws Exception
+ {
+ ServerConnectionImpl conn = createConnection(8172178, "ijijji", "aoksoaks", 99182);
+
+ final Queue queue1 = EasyMock.createStrictMock(Queue.class);
+ final Queue queue2 = EasyMock.createStrictMock(Queue.class);
+ final Queue queue3 = EasyMock.createStrictMock(Queue.class);
+
+ assertEquals(0, conn.getTemporaryQueues().size());
+ conn.addTemporaryQueue(queue1);
+ assertEquals(1, conn.getTemporaryQueues().size());
+ assertTrue(conn.getTemporaryQueues().contains(queue1));
+ conn.addTemporaryQueue(queue2);
+ assertEquals(2, conn.getTemporaryQueues().size());
+ assertTrue(conn.getTemporaryQueues().contains(queue1));
+ assertTrue(conn.getTemporaryQueues().contains(queue2));
+ conn.addTemporaryQueue(queue3);
+ assertEquals(3, conn.getTemporaryQueues().size());
+ assertTrue(conn.getTemporaryQueues().contains(queue1));
+ assertTrue(conn.getTemporaryQueues().contains(queue2));
+ assertTrue(conn.getTemporaryQueues().contains(queue3));
+ try
+ {
+ conn.addTemporaryQueue(queue3);
+ fail("Should throw exception");
+ }
+ catch (IllegalStateException e)
+ {
+ //Ok
+ }
+ assertEquals(3, conn.getTemporaryQueues().size());
+
+ conn.removeTemporaryQueue(queue3);
+ assertEquals(2, conn.getTemporaryQueues().size());
+ assertTrue(conn.getTemporaryQueues().contains(queue1));
+ assertTrue(conn.getTemporaryQueues().contains(queue2));
+ conn.removeTemporaryQueue(queue2);
+ assertEquals(1, conn.getTemporaryQueues().size());
+ assertTrue(conn.getTemporaryQueues().contains(queue1));
+ conn.removeTemporaryQueue(queue1);
+ assertEquals(0, conn.getTemporaryQueues().size());
+
+ try
+ {
+ conn.removeTemporaryQueue(queue1);
+ fail("Should throw exeception");
+ }
+ catch (IllegalStateException e)
+ {
+ //Ok
+ }
+
+ try
+ {
+ conn.removeTemporaryQueue(EasyMock.createStrictMock(Queue.class));
+ fail("Should throw exeception");
+ }
+ catch (IllegalStateException e)
+ {
+ //Ok
+ }
+
+ }
+
+ public void testCreateSession() throws Exception
+ {
+ testCreateSession(false, false, false);
+ testCreateSession(true, true, true);
+ }
+
+ public void testStartStop() throws Exception
+ {
+ MessagingServer server = EasyMock.createStrictMock(MessagingServer.class);
+
+ ServerSession session1 = EasyMock.createStrictMock(ServerSession.class);
+ ServerSession session2 = EasyMock.createStrictMock(ServerSession.class);
+ ServerSession session3 = EasyMock.createStrictMock(ServerSession.class);
+
+ RemotingService remoting = EasyMock.createStrictMock(RemotingService.class);
+ PacketDispatcher pd = EasyMock.createStrictMock(PacketDispatcher.class);
+ PostOffice po = EasyMock.createStrictMock(PostOffice.class);
+ ConnectionManager cm = EasyMock.createStrictMock(ConnectionManager.class);
+
+ EasyMock.expect(server.getRemotingService()).andReturn(remoting);
+ EasyMock.expect(remoting.getDispatcher()).andReturn(pd);
+ final long id = 91829182;
+ EasyMock.expect(pd.generateID()).andReturn(id);
+ EasyMock.expect(server.getPostOffice()).andReturn(po);
+ EasyMock.expect(server.getConnectionManager()).andReturn(cm);
+
+ EasyMock.replay(server, remoting, pd, po, cm);
+
+ ServerConnectionImpl conn = new ServerConnectionImpl(server, "uyuiiu", "iuiui", 87788778);
+
+ EasyMock.verify(server, remoting, pd, po, cm);
+
+ conn.addSession(session1);
+ conn.addSession(session2);
+ conn.addSession(session3);
+
+ assertEquals(3, conn.getSessions().size());
+
+ assertFalse(conn.isStarted());
+
+ EasyMock.reset(server, remoting, pd, po, cm);
+
+ session1.setStarted(true);
+ session2.setStarted(true);
+ session3.setStarted(true);
+
+ EasyMock.replay(server, remoting, pd, po, cm, session1, session2, session3);
+
+ conn.start();
+
+ assertTrue(conn.isStarted());
+
+ EasyMock.verify(server, remoting, pd, po, cm, session1, session2, session3);
+
+ EasyMock.reset(server, remoting, pd, po, cm, session1, session2, session3);
+
+ session1.setStarted(false);
+ session2.setStarted(false);
+ session3.setStarted(false);
+
+ EasyMock.replay(server, remoting, pd, po, cm, session1, session2, session3);
+
+ conn.stop();
+
+ EasyMock.verify(server, remoting, pd, po, cm, session1, session2, session3);
+
+ assertFalse(conn.isStarted());
+ }
+
+ public void testClose() throws Exception
+ {
+ MessagingServer server = EasyMock.createStrictMock(MessagingServer.class);
+
+ ServerSession session1 = EasyMock.createStrictMock(ServerSession.class);
+ ServerSession session2 = EasyMock.createStrictMock(ServerSession.class);
+ ServerSession session3 = EasyMock.createStrictMock(ServerSession.class);
+
+ RemotingService remoting = EasyMock.createStrictMock(RemotingService.class);
+ PacketDispatcher pd = EasyMock.createStrictMock(PacketDispatcher.class);
+ PostOffice po = EasyMock.createStrictMock(PostOffice.class);
+ ConnectionManager cm = EasyMock.createStrictMock(ConnectionManager.class);
+
+ EasyMock.expect(server.getRemotingService()).andReturn(remoting);
+ EasyMock.expect(remoting.getDispatcher()).andReturn(pd);
+ final long id = 91829182;
+ EasyMock.expect(pd.generateID()).andReturn(id);
+ EasyMock.expect(server.getPostOffice()).andReturn(po);
+ EasyMock.expect(server.getConnectionManager()).andReturn(cm);
+
+ EasyMock.replay(server, remoting, pd, po, cm);
+
+ final long remotingClientSessionID = 81728172;
+
+ ServerConnectionImpl conn = new ServerConnectionImpl(server, "uyuiiu", "iuiui", remotingClientSessionID);
+
+ EasyMock.verify(server, remoting, pd, po, cm);
+
+ conn.addSession(session1);
+ conn.addSession(session2);
+ conn.addSession(session3);
+
+ SimpleString address1 = new SimpleString("uyuyyu");
+ SimpleString address2 = new SimpleString("ioajiojad");
+ SimpleString address3 = new SimpleString("isjqijs");
+ conn.addTemporaryDestination(address1);
+ conn.addTemporaryDestination(address2);
+ conn.addTemporaryDestination(address3);
+
+ Queue queue1 = EasyMock.createMock(Queue.class);
+ Queue queue2 = EasyMock.createMock(Queue.class);
+ Queue queue3 = EasyMock.createMock(Queue.class);
+ conn.addTemporaryQueue(queue1);
+ conn.addTemporaryQueue(queue2);
+ conn.addTemporaryQueue(queue3);
+
+ assertEquals(3, conn.getSessions().size());
+ assertEquals(3, conn.getTemporaryDestinations().size());
+ assertEquals(3, conn.getTemporaryQueues().size());
+
+ assertFalse(conn.isClosed());
+
+ EasyMock.reset(server, remoting, pd, po, cm);
+
+ session1.close();
+ session2.close();
+ session3.close();
+
+ EasyMock.expect(queue1.getName()).andReturn(new SimpleString("uyuyh1"));
+ EasyMock.expect(queue2.getName()).andReturn(new SimpleString("uyuyh2"));
+ EasyMock.expect(queue3.getName()).andReturn(new SimpleString("uyuyh3"));
+
+ EasyMock.checkOrder(po, false);
+
+ Binding binding1 = EasyMock.createStrictMock(Binding.class);
+ Binding binding2 = EasyMock.createStrictMock(Binding.class);
+ Binding binding3 = EasyMock.createStrictMock(Binding.class);
+
+ EasyMock.expect(po.getBinding(new SimpleString("uyuyh1"))).andReturn(binding1);
+ EasyMock.expect(po.getBinding(new SimpleString("uyuyh2"))).andReturn(binding2);
+ EasyMock.expect(po.getBinding(new SimpleString("uyuyh3"))).andReturn(binding3);
+
+ EasyMock.expect(binding1.getAddress()).andReturn(new SimpleString("ahshs1"));
+ EasyMock.expect(binding2.getAddress()).andReturn(new SimpleString("ahshs2"));
+ EasyMock.expect(binding3.getAddress()).andReturn(new SimpleString("ahshs3"));
+
+ EasyMock.expect(po.removeBinding(new SimpleString("uyuyh1"))).andReturn(null);
+ EasyMock.expect(po.removeBinding(new SimpleString("uyuyh2"))).andReturn(null);
+ EasyMock.expect(po.removeBinding(new SimpleString("uyuyh3"))).andReturn(null);
+
+ EasyMock.expect(po.removeDestination(new SimpleString("ahshs1"), true)).andReturn(true);
+ EasyMock.expect(po.removeDestination(new SimpleString("ahshs2"), true)).andReturn(true);
+ EasyMock.expect(po.removeDestination(new SimpleString("ahshs3"), true)).andReturn(true);
+
+ EasyMock.expect(po.removeDestination(address1, true)).andReturn(true);
+ EasyMock.expect(po.removeDestination(address2, true)).andReturn(true);
+ EasyMock.expect(po.removeDestination(address3, true)).andReturn(true);
+
+ EasyMock.expect(cm.unregisterConnection(remotingClientSessionID, conn)).andReturn(null);
+
+ pd.unregister(id);
+
+ EasyMock.replay(server, remoting, pd, po, cm, session1, session2, session3, queue1, queue2, queue3,
+ binding1, binding2, binding3);
+
+ conn.close();
+
+ assertTrue(conn.isClosed());
+
+ EasyMock.verify(server, remoting, pd, po, cm, session1, session2, session3, queue1, queue2, queue3,
+ binding1, binding2, binding3);
+
+ EasyMock.reset(server, remoting, pd, po, cm, session1, session2, session3, queue1, queue2, queue3,
+ binding1, binding2, binding3);
+
+ //Closing again should do nothing
+
+ EasyMock.replay(server, remoting, pd, po, cm, session1, session2, session3, queue1, queue2, queue3,
+ binding1, binding2, binding3);
+
+ conn.close();
+
+ assertTrue(conn.isClosed());
+
+ EasyMock.verify(server, remoting, pd, po, cm, session1, session2, session3, queue1, queue2, queue3,
+ binding1, binding2, binding3);
+ }
+
+ // Private ----------------------------------------------------------------------------------------
+
+ private void testCreateSession(final boolean xa, final boolean autoCommitSends, final boolean autoCommitAcks) throws Exception
+ {
+ MessagingServer server = EasyMock.createStrictMock(MessagingServer.class);
+
+ final ServerSession session = EasyMock.createStrictMock(ServerSession.class);
+
+ RemotingService remoting = EasyMock.createStrictMock(RemotingService.class);
+ PacketDispatcher pd = EasyMock.createStrictMock(PacketDispatcher.class);
+ PostOffice po = EasyMock.createStrictMock(PostOffice.class);
+ ConnectionManager cm = EasyMock.createStrictMock(ConnectionManager.class);
+
+ EasyMock.expect(server.getRemotingService()).andReturn(remoting);
+ EasyMock.expect(remoting.getDispatcher()).andReturn(pd);
+ final long id = 91829182;
+ EasyMock.expect(pd.generateID()).andReturn(id);
+ EasyMock.expect(server.getPostOffice()).andReturn(po);
+ EasyMock.expect(server.getConnectionManager()).andReturn(cm);
+
+ pd.register(EasyMock.isA(ServerSessionPacketHandler.class));
+
+ final long sessionID = 18927;
+ EasyMock.expect(session.getID()).andReturn(sessionID);
+
+ EasyMock.replay(server, remoting, pd, po, cm, session);
+
+ ServerConnectionImpl conn = new ServerConnectionImpl(server, "uyuiiu", "iuiui", 87788778)
+ {
+ protected ServerSession doCreateSession(final boolean p_autoCommitSends, final boolean p_autoCommitAcks,
+ final boolean p_xa, final PacketReturner p_returner)
+ throws Exception
+ {
+ assertEquals(autoCommitSends, p_autoCommitSends);
+ assertEquals(autoCommitAcks, p_autoCommitAcks);
+ assertEquals(xa, p_xa);
+ return session;
+ }
+ };
+
+ PacketReturner returner = EasyMock.createStrictMock(PacketReturner.class);
+
+ ConnectionCreateSessionResponseMessage resp = conn.createSession(xa, autoCommitSends, autoCommitAcks, returner);
+
+ EasyMock.verify(server, remoting, pd, po, cm, session);
+
+ assertEquals(sessionID, resp.getSessionID());
+
+ assertEquals(1, conn.getSessions().size());
+ assertTrue(session == conn.getSessions().iterator().next());
+ }
+
+ private ServerConnectionImpl createConnection(final long id, final String username, final String password,
+ final long clientSessionID)
+ {
+ MessagingServer server = EasyMock.createStrictMock(MessagingServer.class);
+ RemotingService remoting = EasyMock.createStrictMock(RemotingService.class);
+ PacketDispatcher pd = EasyMock.createStrictMock(PacketDispatcher.class);
+ PostOffice po = EasyMock.createStrictMock(PostOffice.class);
+ ConnectionManager cm = EasyMock.createStrictMock(ConnectionManager.class);
+
+ EasyMock.expect(server.getRemotingService()).andReturn(remoting);
+ EasyMock.expect(remoting.getDispatcher()).andReturn(pd);
+ EasyMock.expect(pd.generateID()).andReturn(id);
+ EasyMock.expect(server.getPostOffice()).andReturn(po);
+ EasyMock.expect(server.getConnectionManager()).andReturn(cm);
+
+ EasyMock.replay(server, remoting, pd, po, cm);
+
+ ServerConnectionImpl conn = new ServerConnectionImpl(server, username, password,
+ clientSessionID);
+
+ EasyMock.verify(server, remoting, pd, po, cm);
+
+ assertTrue(server == conn.getServer());
+ assertEquals(username, conn.getUsername());
+ assertEquals(password, conn.getPassword());
+ assertEquals(clientSessionID, conn.getClientSessionID());
+ assertEquals(id, conn.getID());
+
+ assertTrue(conn.getSessions().isEmpty());
+ assertTrue(conn.getTemporaryDestinations().isEmpty());
+ assertTrue(conn.getTemporaryQueues().isEmpty());
+
+ return conn;
+ }
+}
More information about the jboss-cvs-commits
mailing list