[jboss-cvs] JBoss Messaging SVN: r4481 - in trunk: src/main/org/jboss/messaging/jms/client and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Jun 16 09:21:53 EDT 2008
Author: jmesnil
Date: 2008-06-16 09:21:53 -0400 (Mon, 16 Jun 2008)
New Revision: 4481
Modified:
trunk/src/main/org/jboss/messaging/jms/JBossDestination.java
trunk/src/main/org/jboss/messaging/jms/JBossTemporaryQueue.java
trunk/src/main/org/jboss/messaging/jms/JBossTemporaryTopic.java
trunk/src/main/org/jboss/messaging/jms/client/JBossSession.java
trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossSessionTest.java
Log:
added unit tests for JBossSession + refactoring
Modified: trunk/src/main/org/jboss/messaging/jms/JBossDestination.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/JBossDestination.java 2008-06-16 13:19:19 UTC (rev 4480)
+++ trunk/src/main/org/jboss/messaging/jms/JBossDestination.java 2008-06-16 13:21:53 UTC (rev 4481)
@@ -46,6 +46,10 @@
protected static String escape(final String input)
{
+ if (input == null)
+ {
+ return "";
+ }
return input.replace("\\", "\\\\").replace(".", "\\.");
}
Modified: trunk/src/main/org/jboss/messaging/jms/JBossTemporaryQueue.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/JBossTemporaryQueue.java 2008-06-16 13:19:19 UTC (rev 4480)
+++ trunk/src/main/org/jboss/messaging/jms/JBossTemporaryQueue.java 2008-06-16 13:21:53 UTC (rev 4481)
@@ -59,7 +59,7 @@
public void delete() throws JMSException
{
- session.deleteTemporaryDestination(this);
+ session.deleteTemporaryQueue(this);
}
// Public --------------------------------------------------------
Modified: trunk/src/main/org/jboss/messaging/jms/JBossTemporaryTopic.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/JBossTemporaryTopic.java 2008-06-16 13:19:19 UTC (rev 4480)
+++ trunk/src/main/org/jboss/messaging/jms/JBossTemporaryTopic.java 2008-06-16 13:21:53 UTC (rev 4481)
@@ -55,11 +55,11 @@
this.session = session;
}
- // TemporaryQueue implementation ------------------------------------------
+ // TemporaryTopic implementation ------------------------------------------
public void delete() throws JMSException
{
- session.deleteTemporaryDestination(this);
+ session.deleteTemporaryTopic(this);
}
// Public --------------------------------------------------------
Modified: trunk/src/main/org/jboss/messaging/jms/client/JBossSession.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/client/JBossSession.java 2008-06-16 13:19:19 UTC (rev 4480)
+++ trunk/src/main/org/jboss/messaging/jms/client/JBossSession.java 2008-06-16 13:21:53 UTC (rev 4481)
@@ -439,7 +439,14 @@
public TopicSubscriber createDurableSubscriber(final Topic topic, final String name) throws JMSException
{
- //As per spec. section 4.11
+ return createDurableSubscriber(topic, name, null, false);
+ }
+
+ public TopicSubscriber createDurableSubscriber(final Topic topic, final String name,
+ String messageSelector, final boolean noLocal)
+ throws JMSException
+ {
+ // As per spec. section 4.11
if (sessionType == TYPE_QUEUE_SESSION)
{
throw new IllegalStateException("Cannot create a durable subscriber on a QueueSession");
@@ -452,14 +459,18 @@
{
throw new InvalidDestinationException("Not a JBossTopic:" + topic);
}
-
+ if ("".equals(messageSelector))
+ {
+ messageSelector = null;
+ }
+
JBossDestination jbdest = (JBossDestination)topic;
-
- ClientConsumer cd = createConsumer(jbdest, name, null, false);
- return new JBossMessageConsumer(this, cd, false, topic, null, false);
+ ClientConsumer cd = createConsumer(jbdest, name, messageSelector, noLocal);
+
+ return new JBossMessageConsumer(this, cd, noLocal, topic, messageSelector, false);
}
-
+
private ClientConsumer createConsumer(final JBossDestination dest,
final String subscriptionName, String selectorString,
final boolean noLocal)
@@ -582,35 +593,6 @@
}
}
- public TopicSubscriber createDurableSubscriber(final Topic topic, final String name,
- String messageSelector, final boolean noLocal)
- throws JMSException
- {
- //As per spec. section 4.11
- if (sessionType == TYPE_QUEUE_SESSION)
- {
- throw new IllegalStateException("Cannot create a durable subscriber on a QueueSession");
- }
- if (topic == null)
- {
- throw new InvalidDestinationException("Cannot create a durable subscriber on a null topic");
- }
- if (!(topic instanceof JBossTopic))
- {
- throw new InvalidDestinationException("Not a JBossTopic:" + topic);
- }
- if ("".equals(messageSelector))
- {
- messageSelector = null;
- }
-
- JBossDestination jbdest = (JBossDestination)topic;
-
- ClientConsumer cd = createConsumer(jbdest, name, messageSelector, noLocal);
-
- return new JBossMessageConsumer(this, cd, noLocal, topic, messageSelector, false);
- }
-
public QueueBrowser createBrowser(final Queue queue) throws JMSException
{
return createBrowser(queue, null);
@@ -823,43 +805,24 @@
this.recoverCalled = recoverCalled;
}
- public void deleteTemporaryDestination(final JBossDestination destination) throws JMSException
+ public void deleteTemporaryTopic(final JBossTemporaryTopic tempTopic) throws JMSException
{
try
{
- if (destination instanceof Topic)
+ SessionBindingQueryResponseMessage response = session.bindingQuery(tempTopic.getSimpleAddress());
+
+ if (!response.isExists())
{
- SessionBindingQueryResponseMessage response = session.bindingQuery(destination.getSimpleAddress());
-
- if (!response.isExists())
- {
- throw new InvalidDestinationException("Cannot delete temporary topic " +
- destination.getName() + " does not exist");
- }
-
- if (!response.getQueueNames().isEmpty())
- {
- throw new IllegalStateException("Cannot delete temporary topic " +
- destination.getName() + " since it has subscribers");
- }
+ throw new InvalidDestinationException("Cannot delete temporary topic " +
+ tempTopic.getName() + " does not exist");
}
- else
+
+ if (!response.getQueueNames().isEmpty())
{
- SessionQueueQueryResponseMessage response = session.queueQuery(destination.getSimpleAddress());
-
- if (!response.isExists())
- {
- throw new InvalidDestinationException("Cannot delete temporary queue " +
- destination.getName() + " does not exist");
- }
-
- if (response.getConsumerCount() > 0)
- {
- throw new IllegalStateException("Cannot delete temporary queue " +
- destination.getName() + " since it has subscribers");
- }
- }
- session.removeDestination(destination.getSimpleAddress(), true);
+ throw new IllegalStateException("Cannot delete temporary topic " +
+ tempTopic.getName() + " since it has subscribers");
+ }
+ session.removeDestination(tempTopic.getSimpleAddress(), true);
}
catch (MessagingException e)
{
@@ -867,6 +830,31 @@
}
}
+ public void deleteTemporaryQueue(final JBossTemporaryQueue tempQueue) throws JMSException
+ {
+ try
+ {
+ SessionQueueQueryResponseMessage response = session.queueQuery(tempQueue.getSimpleAddress());
+
+ if (!response.isExists())
+ {
+ throw new InvalidDestinationException("Cannot delete temporary queue " +
+ tempQueue.getName() + " does not exist");
+ }
+
+ if (response.getConsumerCount() > 0)
+ {
+ throw new IllegalStateException("Cannot delete temporary queue " +
+ tempQueue.getName() + " since it has subscribers");
+ }
+ session.removeDestination(tempQueue.getSimpleAddress(), true);
+ }
+ catch (MessagingException e)
+ {
+ throw JMSExceptionHelper.convertFromMessagingException(e);
+ }
+ }
+
// Package protected ---------------------------------------------
/*
Modified: trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossSessionTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossSessionTest.java 2008-06-16 13:19:19 UTC (rev 4480)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossSessionTest.java 2008-06-16 13:21:53 UTC (rev 4481)
@@ -7,21 +7,28 @@
package org.jboss.messaging.tests.unit.jms.client;
import static org.easymock.EasyMock.createStrictMock;
+import static org.easymock.EasyMock.eq;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.expectLastCall;
+import static org.easymock.EasyMock.isA;
+import static org.easymock.EasyMock.isNull;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.verify;
+import static org.jboss.messaging.tests.util.RandomUtil.randomSimpleString;
import static org.jboss.messaging.tests.util.RandomUtil.randomString;
import java.util.ArrayList;
+import java.util.List;
import javax.jms.BytesMessage;
import javax.jms.Destination;
import javax.jms.IllegalStateException;
+import javax.jms.InvalidClientIDException;
import javax.jms.InvalidDestinationException;
import javax.jms.JMSException;
import javax.jms.MapMessage;
import javax.jms.Message;
+import javax.jms.MessageConsumer;
import javax.jms.MessageListener;
import javax.jms.MessageProducer;
import javax.jms.ObjectMessage;
@@ -31,6 +38,8 @@
import javax.jms.QueueSession;
import javax.jms.Session;
import javax.jms.StreamMessage;
+import javax.jms.TemporaryQueue;
+import javax.jms.TemporaryTopic;
import javax.jms.TextMessage;
import javax.jms.Topic;
import javax.jms.TopicPublisher;
@@ -39,9 +48,9 @@
import junit.framework.TestCase;
-import org.easymock.EasyMock;
import org.jboss.messaging.core.client.ClientBrowser;
import org.jboss.messaging.core.client.ClientConnection;
+import org.jboss.messaging.core.client.ClientConsumer;
import org.jboss.messaging.core.client.ClientProducer;
import org.jboss.messaging.core.client.ClientSession;
import org.jboss.messaging.core.exception.MessagingException;
@@ -49,9 +58,12 @@
import org.jboss.messaging.core.remoting.impl.wireformat.SessionQueueQueryResponseMessage;
import org.jboss.messaging.jms.JBossDestination;
import org.jboss.messaging.jms.JBossQueue;
+import org.jboss.messaging.jms.JBossTemporaryQueue;
+import org.jboss.messaging.jms.JBossTemporaryTopic;
import org.jboss.messaging.jms.JBossTopic;
import org.jboss.messaging.jms.client.JBossConnection;
import org.jboss.messaging.jms.client.JBossSession;
+import org.jboss.messaging.tests.util.RandomUtil;
import org.jboss.messaging.util.SimpleString;
/**
@@ -72,37 +84,51 @@
// Public --------------------------------------------------------
+ private ClientConnection mockClientConn;
+ private ClientSession mockClientSession;
+
+ @Override
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+
+ mockClientConn = createStrictMock(ClientConnection.class);
+ mockClientSession = createStrictMock(ClientSession.class);
+ }
+
+ @Override
+ protected void tearDown() throws Exception
+ {
+ verify(mockClientConn, mockClientSession);
+
+ super.tearDown();
+ }
+
public void testClose() throws Exception
{
- ClientConnection clientConn = createStrictMock(ClientConnection.class);
- ClientSession clientSession = createStrictMock(ClientSession.class);
- clientSession.close();
+ mockClientSession.close();
- replay(clientConn, clientSession);
+ replay(mockClientConn, mockClientSession);
- JBossConnection connection = new JBossConnection(clientConn,
+ JBossConnection connection = new JBossConnection(mockClientConn,
JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
Session session = new JBossSession(connection, false, false,
- Session.AUTO_ACKNOWLEDGE, clientSession,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
JBossSession.TYPE_GENERIC_SESSION);
session.close();
-
- verify(clientConn, clientSession);
}
public void testCloseThrowsException() throws Exception
{
- ClientConnection clientConn = createStrictMock(ClientConnection.class);
- ClientSession clientSession = createStrictMock(ClientSession.class);
- clientSession.close();
+ mockClientSession.close();
expectLastCall().andThrow(new MessagingException());
- replay(clientConn, clientSession);
+ replay(mockClientConn, mockClientSession);
- JBossConnection connection = new JBossConnection(clientConn,
+ JBossConnection connection = new JBossConnection(mockClientConn,
JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
Session session = new JBossSession(connection, true, false,
- Session.DUPS_OK_ACKNOWLEDGE, clientSession,
+ Session.DUPS_OK_ACKNOWLEDGE, mockClientSession,
JBossSession.TYPE_GENERIC_SESSION);
try
@@ -112,23 +138,19 @@
} catch (JMSException e)
{
}
-
- verify(clientConn, clientSession);
}
public void testClosedSession() throws Exception
{
- ClientConnection clientConn = createStrictMock(ClientConnection.class);
- ClientSession clientSession = createStrictMock(ClientSession.class);
- clientSession.close();
- expect(clientSession.isClosed()).andReturn(true);
+ mockClientSession.close();
+ expect(mockClientSession.isClosed()).andReturn(true);
- replay(clientConn, clientSession);
+ replay(mockClientConn, mockClientSession);
- JBossConnection connection = new JBossConnection(clientConn,
+ JBossConnection connection = new JBossConnection(mockClientConn,
JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
Session session = new JBossSession(connection, false, false,
- Session.AUTO_ACKNOWLEDGE, clientSession,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
JBossSession.TYPE_GENERIC_SESSION);
session.close();
@@ -140,78 +162,62 @@
} catch (IllegalStateException e)
{
}
-
- verify(clientConn, clientSession);
}
public void testGetTransacted() throws Exception
{
- ClientConnection clientConn = createStrictMock(ClientConnection.class);
- ClientSession clientSession = createStrictMock(ClientSession.class);
- expect(clientSession.isClosed()).andReturn(false);
+ expect(mockClientSession.isClosed()).andReturn(false);
- replay(clientConn, clientSession);
+ replay(mockClientConn, mockClientSession);
- JBossConnection connection = new JBossConnection(clientConn,
+ JBossConnection connection = new JBossConnection(mockClientConn,
JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
Session session = new JBossSession(connection, true, false, 0,
- clientSession, JBossSession.TYPE_GENERIC_SESSION);
+ mockClientSession, JBossSession.TYPE_GENERIC_SESSION);
assertEquals(true, session.getTransacted());
-
- verify(clientConn, clientSession);
}
public void testGetAcknowledgeMode() throws Exception
{
- ClientConnection clientConn = createStrictMock(ClientConnection.class);
- ClientSession clientSession = createStrictMock(ClientSession.class);
- expect(clientSession.isClosed()).andReturn(false);
+ expect(mockClientSession.isClosed()).andReturn(false);
- replay(clientConn, clientSession);
+ replay(mockClientConn, mockClientSession);
- JBossConnection connection = new JBossConnection(clientConn,
+ JBossConnection connection = new JBossConnection(mockClientConn,
JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
Session session = new JBossSession(connection, false, false,
- Session.DUPS_OK_ACKNOWLEDGE, clientSession,
+ Session.DUPS_OK_ACKNOWLEDGE, mockClientSession,
JBossSession.TYPE_GENERIC_SESSION);
assertEquals(Session.DUPS_OK_ACKNOWLEDGE, session.getAcknowledgeMode());
-
- verify(clientConn, clientSession);
}
public void testCommitOnTransactedSession() throws Exception
{
- ClientConnection clientConn = createStrictMock(ClientConnection.class);
- ClientSession clientSession = createStrictMock(ClientSession.class);
- clientSession.commit();
+ mockClientSession.commit();
- replay(clientConn, clientSession);
+ replay(mockClientConn, mockClientSession);
- JBossConnection connection = new JBossConnection(clientConn,
+ JBossConnection connection = new JBossConnection(mockClientConn,
JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
Session session = new JBossSession(connection, true, false,
- Session.DUPS_OK_ACKNOWLEDGE, clientSession,
+ Session.DUPS_OK_ACKNOWLEDGE, mockClientSession,
JBossSession.TYPE_GENERIC_SESSION);
session.commit();
-
- verify(clientConn, clientSession);
}
public void testCommitThrowsException() throws Exception
{
- ClientConnection clientConn = createStrictMock(ClientConnection.class);
- ClientSession clientSession = createStrictMock(ClientSession.class);
- clientSession.commit();
+ mockClientSession.commit();
expectLastCall().andThrow(new MessagingException());
- replay(clientConn, clientSession);
+ replay(mockClientConn, mockClientSession);
- JBossConnection connection = new JBossConnection(clientConn,
+ JBossConnection connection = new JBossConnection(mockClientConn,
JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
Session session = new JBossSession(connection, true, false,
- Session.DUPS_OK_ACKNOWLEDGE, clientSession,
+ Session.DUPS_OK_ACKNOWLEDGE, mockClientSession,
JBossSession.TYPE_GENERIC_SESSION);
try
@@ -221,21 +227,16 @@
} catch (JMSException e)
{
}
-
- verify(clientConn, clientSession);
}
public void testCommitOnNonTransactedSession() throws Exception
{
- ClientConnection clientConn = createStrictMock(ClientConnection.class);
- ClientSession clientSession = createStrictMock(ClientSession.class);
+ replay(mockClientConn, mockClientSession);
- replay(clientConn, clientSession);
-
- JBossConnection connection = new JBossConnection(clientConn,
+ JBossConnection connection = new JBossConnection(mockClientConn,
JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
Session session = new JBossSession(connection, false, false,
- Session.DUPS_OK_ACKNOWLEDGE, clientSession,
+ Session.DUPS_OK_ACKNOWLEDGE, mockClientSession,
JBossSession.TYPE_GENERIC_SESSION);
try
@@ -245,21 +246,16 @@
} catch (IllegalStateException e)
{
}
-
- verify(clientConn, clientSession);
}
public void testCommitOnXASession() throws Exception
{
- ClientConnection clientConn = createStrictMock(ClientConnection.class);
- ClientSession clientSession = createStrictMock(ClientSession.class);
+ replay(mockClientConn, mockClientSession);
- replay(clientConn, clientSession);
-
- JBossConnection connection = new JBossConnection(clientConn,
+ JBossConnection connection = new JBossConnection(mockClientConn,
JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
Session session = new JBossSession(connection, true, true, 0,
- clientSession, JBossSession.TYPE_GENERIC_SESSION);
+ mockClientSession, JBossSession.TYPE_GENERIC_SESSION);
try
{
@@ -268,41 +264,33 @@
} catch (TransactionInProgressException e)
{
}
-
- verify(clientConn, clientSession);
}
public void testRollbackOnTransactedSession() throws Exception
{
- ClientConnection clientConn = createStrictMock(ClientConnection.class);
- ClientSession clientSession = createStrictMock(ClientSession.class);
- clientSession.rollback();
+ mockClientSession.rollback();
- replay(clientConn, clientSession);
+ replay(mockClientConn, mockClientSession);
- JBossConnection connection = new JBossConnection(clientConn,
+ JBossConnection connection = new JBossConnection(mockClientConn,
JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
Session session = new JBossSession(connection, true, false,
- Session.DUPS_OK_ACKNOWLEDGE, clientSession,
+ Session.DUPS_OK_ACKNOWLEDGE, mockClientSession,
JBossSession.TYPE_GENERIC_SESSION);
session.rollback();
-
- verify(clientConn, clientSession);
}
public void testRollbackThrowsException() throws Exception
{
- ClientConnection clientConn = createStrictMock(ClientConnection.class);
- ClientSession clientSession = createStrictMock(ClientSession.class);
- clientSession.rollback();
+ mockClientSession.rollback();
expectLastCall().andThrow(new MessagingException());
- replay(clientConn, clientSession);
+ replay(mockClientConn, mockClientSession);
- JBossConnection connection = new JBossConnection(clientConn,
+ JBossConnection connection = new JBossConnection(mockClientConn,
JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
Session session = new JBossSession(connection, true, false,
- Session.DUPS_OK_ACKNOWLEDGE, clientSession,
+ Session.DUPS_OK_ACKNOWLEDGE, mockClientSession,
JBossSession.TYPE_GENERIC_SESSION);
try
@@ -312,21 +300,16 @@
} catch (JMSException e)
{
}
-
- verify(clientConn, clientSession);
}
public void testRollbackOnNonTransactedSession() throws Exception
{
- ClientConnection clientConn = createStrictMock(ClientConnection.class);
- ClientSession clientSession = createStrictMock(ClientSession.class);
+ replay(mockClientConn, mockClientSession);
- replay(clientConn, clientSession);
-
- JBossConnection connection = new JBossConnection(clientConn,
+ JBossConnection connection = new JBossConnection(mockClientConn,
JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
Session session = new JBossSession(connection, false, false,
- Session.DUPS_OK_ACKNOWLEDGE, clientSession,
+ Session.DUPS_OK_ACKNOWLEDGE, mockClientSession,
JBossSession.TYPE_GENERIC_SESSION);
try
@@ -336,21 +319,16 @@
} catch (IllegalStateException e)
{
}
-
- verify(clientConn, clientSession);
}
public void testRollbackOnXASession() throws Exception
{
- ClientConnection clientConn = createStrictMock(ClientConnection.class);
- ClientSession clientSession = createStrictMock(ClientSession.class);
+ replay(mockClientConn, mockClientSession);
- replay(clientConn, clientSession);
-
- JBossConnection connection = new JBossConnection(clientConn,
+ JBossConnection connection = new JBossConnection(mockClientConn,
JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
Session session = new JBossSession(connection, true, true, 0,
- clientSession, JBossSession.TYPE_GENERIC_SESSION);
+ mockClientSession, JBossSession.TYPE_GENERIC_SESSION);
try
{
@@ -359,20 +337,16 @@
} catch (TransactionInProgressException e)
{
}
-
- verify(clientConn, clientSession);
}
public void testRecoverOnTransactedSession() throws Exception
{
- ClientConnection clientConn = createStrictMock(ClientConnection.class);
- ClientSession clientSession = createStrictMock(ClientSession.class);
- replay(clientConn, clientSession);
+ replay(mockClientConn, mockClientSession);
- JBossConnection connection = new JBossConnection(clientConn,
+ JBossConnection connection = new JBossConnection(mockClientConn,
JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
Session session = new JBossSession(connection, true, false,
- Session.DUPS_OK_ACKNOWLEDGE, clientSession,
+ Session.DUPS_OK_ACKNOWLEDGE, mockClientSession,
JBossSession.TYPE_GENERIC_SESSION);
try
@@ -382,40 +356,32 @@
} catch (IllegalStateException e)
{
}
-
- verify(clientConn, clientSession);
}
public void testRecoverOnNonTransactedSession() throws Exception
{
- ClientConnection clientConn = createStrictMock(ClientConnection.class);
- ClientSession clientSession = createStrictMock(ClientSession.class);
- clientSession.rollback();
- replay(clientConn, clientSession);
+ mockClientSession.rollback();
+ replay(mockClientConn, mockClientSession);
- JBossConnection connection = new JBossConnection(clientConn,
+ JBossConnection connection = new JBossConnection(mockClientConn,
JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
Session session = new JBossSession(connection, false, false,
- Session.DUPS_OK_ACKNOWLEDGE, clientSession,
+ Session.DUPS_OK_ACKNOWLEDGE, mockClientSession,
JBossSession.TYPE_GENERIC_SESSION);
session.recover();
-
- verify(clientConn, clientSession);
}
public void testRecoverThrowsException() throws Exception
{
- ClientConnection clientConn = createStrictMock(ClientConnection.class);
- ClientSession clientSession = createStrictMock(ClientSession.class);
- clientSession.rollback();
+ mockClientSession.rollback();
expectLastCall().andThrow(new MessagingException());
- replay(clientConn, clientSession);
+ replay(mockClientConn, mockClientSession);
- JBossConnection connection = new JBossConnection(clientConn,
+ JBossConnection connection = new JBossConnection(mockClientConn,
JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
Session session = new JBossSession(connection, false, false,
- Session.DUPS_OK_ACKNOWLEDGE, clientSession,
+ Session.DUPS_OK_ACKNOWLEDGE, mockClientSession,
JBossSession.TYPE_GENERIC_SESSION);
try
@@ -425,28 +391,24 @@
} catch (JMSException e)
{
}
-
- verify(clientConn, clientSession);
}
public void testMessageListener() throws Exception
{
- ClientConnection clientConn = createStrictMock(ClientConnection.class);
- ClientSession clientSession = createStrictMock(ClientSession.class);
- expect(clientSession.isClosed()).andStubReturn(false);
+ expect(mockClientSession.isClosed()).andStubReturn(false);
MessageListener listener = createStrictMock(MessageListener.class);
- replay(clientConn, clientSession, listener);
+ replay(mockClientConn, mockClientSession, listener);
- JBossConnection connection = new JBossConnection(clientConn,
+ JBossConnection connection = new JBossConnection(mockClientConn,
JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
Session session = new JBossSession(connection, false, false,
- Session.DUPS_OK_ACKNOWLEDGE, clientSession,
+ Session.DUPS_OK_ACKNOWLEDGE, mockClientSession,
JBossSession.TYPE_GENERIC_SESSION);
assertNull(session.getMessageListener());
session.setMessageListener(listener);
assertSame(listener, session.getMessageListener());
- verify(clientConn, clientSession, listener);
+ verify(listener);
}
public void testCreateMessage() throws Exception
@@ -555,41 +517,37 @@
public void testCreateProducer() throws Exception
{
JBossDestination destination = new JBossQueue(randomString());
- ClientConnection clientConn = createStrictMock(ClientConnection.class);
- ClientSession clientSession = createStrictMock(ClientSession.class);
ClientProducer clientProducer = createStrictMock(ClientProducer.class);
- expect(clientSession.createProducer(destination.getSimpleAddress()))
+ expect(mockClientSession.createProducer(destination.getSimpleAddress()))
.andReturn(clientProducer);
- replay(clientConn, clientSession, clientProducer);
+ replay(mockClientConn, mockClientSession, clientProducer);
- JBossConnection connection = new JBossConnection(clientConn,
+ JBossConnection connection = new JBossConnection(mockClientConn,
JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
Session session = new JBossSession(connection, false, false,
- Session.AUTO_ACKNOWLEDGE, clientSession,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
JBossSession.TYPE_GENERIC_SESSION);
MessageProducer producer = session.createProducer(destination);
assertNotNull(producer);
- EasyMock.verify(clientConn, clientSession, clientProducer);
+ verify(clientProducer);
}
public void testCreateProducerThrowsException() throws Exception
{
JBossDestination destination = new JBossQueue(randomString());
- ClientConnection clientConn = createStrictMock(ClientConnection.class);
- ClientSession clientSession = createStrictMock(ClientSession.class);
ClientProducer clientProducer = createStrictMock(ClientProducer.class);
- expect(clientSession.createProducer(destination.getSimpleAddress()))
+ expect(mockClientSession.createProducer(destination.getSimpleAddress()))
.andThrow(new MessagingException());
- replay(clientConn, clientSession, clientProducer);
+ replay(mockClientConn, mockClientSession, clientProducer);
- JBossConnection connection = new JBossConnection(clientConn,
+ JBossConnection connection = new JBossConnection(mockClientConn,
JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
Session session = new JBossSession(connection, false, false,
- Session.AUTO_ACKNOWLEDGE, clientSession,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
JBossSession.TYPE_GENERIC_SESSION);
try
@@ -600,21 +558,19 @@
{
}
- EasyMock.verify(clientConn, clientSession, clientProducer);
+ verify(clientProducer);
}
public void testCreateProducerWithInvalidDestination() throws Exception
{
- ClientConnection clientConn = createStrictMock(ClientConnection.class);
- ClientSession clientSession = createStrictMock(ClientSession.class);
Destination destination = createStrictMock(Destination.class);
- replay(clientConn, clientSession, destination);
+ replay(mockClientConn, mockClientSession, destination);
- JBossConnection connection = new JBossConnection(clientConn,
+ JBossConnection connection = new JBossConnection(mockClientConn,
JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
Session session = new JBossSession(connection, false, false,
- Session.AUTO_ACKNOWLEDGE, clientSession,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
JBossSession.TYPE_GENERIC_SESSION);
try
@@ -625,113 +581,651 @@
{
}
- EasyMock.verify(clientConn, clientSession, destination);
+ verify(destination);
}
public void testCreateProducerWithNullDestination() throws Exception
{
- ClientConnection clientConn = createStrictMock(ClientConnection.class);
- ClientSession clientSession = createStrictMock(ClientSession.class);
ClientProducer clientProducer = createStrictMock(ClientProducer.class);
- expect(clientSession.createProducer(null)).andReturn(clientProducer);
+ expect(mockClientSession.createProducer(null)).andReturn(clientProducer);
- replay(clientConn, clientSession, clientProducer);
+ replay(mockClientConn, mockClientSession, clientProducer);
- JBossConnection connection = new JBossConnection(clientConn,
+ JBossConnection connection = new JBossConnection(mockClientConn,
JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
Session session = new JBossSession(connection, false, false,
- Session.AUTO_ACKNOWLEDGE, clientSession,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
JBossSession.TYPE_GENERIC_SESSION);
session.createProducer(null);
- EasyMock.verify(clientConn, clientSession, clientProducer);
+ verify(clientProducer);
}
public void testCreatePublisher() throws Exception
{
JBossTopic topic = new JBossTopic(randomString());
- ClientConnection clientConn = createStrictMock(ClientConnection.class);
- ClientSession clientSession = createStrictMock(ClientSession.class);
ClientProducer clientProducer = createStrictMock(ClientProducer.class);
- expect(clientSession.createProducer(topic.getSimpleAddress())).andReturn(
- clientProducer);
+ expect(mockClientSession.createProducer(topic.getSimpleAddress()))
+ .andReturn(clientProducer);
- replay(clientConn, clientSession, clientProducer);
+ replay(mockClientConn, mockClientSession, clientProducer);
- JBossConnection connection = new JBossConnection(clientConn,
+ JBossConnection connection = new JBossConnection(mockClientConn,
JBossConnection.TYPE_TOPIC_CONNECTION, null, -1);
TopicSession session = new JBossSession(connection, false, false,
- Session.AUTO_ACKNOWLEDGE, clientSession,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
JBossSession.TYPE_TOPIC_SESSION);
TopicPublisher publisher = session.createPublisher(topic);
assertNotNull(publisher);
- EasyMock.verify(clientConn, clientSession, clientProducer);
+ verify(clientProducer);
}
public void testCreateSender() throws Exception
{
JBossQueue queue = new JBossQueue(randomString());
- ClientConnection clientConn = createStrictMock(ClientConnection.class);
- ClientSession clientSession = createStrictMock(ClientSession.class);
ClientProducer clientProducer = createStrictMock(ClientProducer.class);
- expect(clientSession.createProducer(queue.getSimpleAddress())).andReturn(
- clientProducer);
+ expect(mockClientSession.createProducer(queue.getSimpleAddress()))
+ .andReturn(clientProducer);
- replay(clientConn, clientSession, clientProducer);
+ replay(mockClientConn, mockClientSession, clientProducer);
- JBossConnection connection = new JBossConnection(clientConn,
+ JBossConnection connection = new JBossConnection(mockClientConn,
JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
QueueSession session = new JBossSession(connection, false, false,
- Session.AUTO_ACKNOWLEDGE, clientSession,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
JBossSession.TYPE_QUEUE_SESSION);
QueueSender sender = session.createSender(queue);
assertNotNull(sender);
- EasyMock.verify(clientConn, clientSession, clientProducer);
+ verify(clientProducer);
}
+ public void testCreateConsumer() throws Exception
+ {
+ JBossDestination destination = new JBossQueue(randomString());
+ ClientConsumer clientConsumer = createStrictMock(ClientConsumer.class);
+
+ // isExists() will return true
+ SessionQueueQueryResponseMessage resp = new SessionQueueQueryResponseMessage(
+ false, false, -1, -1, 1, null, destination.getSimpleAddress());
+ expect(mockClientSession.queueQuery(destination.getSimpleAddress()))
+ .andReturn(resp);
+ expect(
+ mockClientSession.createConsumer(destination.getSimpleAddress(),
+ null, false, false, false)).andReturn(clientConsumer);
+ expect(mockClientSession.isClosed()).andReturn(false);
+
+ replay(mockClientConn, mockClientSession, clientConsumer);
+
+ JBossConnection connection = new JBossConnection(mockClientConn,
+ JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
+ Session session = new JBossSession(connection, false, false,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
+ JBossSession.TYPE_GENERIC_SESSION);
+
+ MessageConsumer consumer = session.createConsumer(destination);
+ assertNotNull(consumer);
+
+ verify(clientConsumer);
+ }
+
+ public void testCreateConsumerWithMessageSelector() throws Exception
+ {
+ String selector = "color = 'red";
+ doTestCreateConsumerWithSelector(selector, new SimpleString(selector));
+ }
+
+ public void testCreateConsumerWithEmptyMessageSelector() throws Exception
+ {
+ doTestCreateConsumerWithSelector("", null);
+ }
+
+ public void testCreateConsumerThrowsException() throws Exception
+ {
+ JBossDestination destination = new JBossQueue(randomString());
+ expect(mockClientSession.queueQuery(destination.getSimpleAddress())).andThrow(new MessagingException());
+ replay(mockClientConn, mockClientSession);
+
+ JBossConnection connection = new JBossConnection(mockClientConn,
+ JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
+ Session session = new JBossSession(connection, false, false,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
+ JBossSession.TYPE_GENERIC_SESSION);
+
+ try
+ {
+ session.createConsumer(destination);
+ fail("must throw an JMSException");
+ } catch (JMSException e)
+ {
+ }
+ }
+
+ public void testCreateConsumerWithNullDestination() throws Exception
+ {
+ replay(mockClientConn, mockClientSession);
+
+ JBossConnection connection = new JBossConnection(mockClientConn,
+ JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
+ Session session = new JBossSession(connection, false, false,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
+ JBossSession.TYPE_GENERIC_SESSION);
+
+ try
+ {
+ session.createConsumer(null);
+ fail("must throw an InvalidDestinationException");
+ } catch (InvalidDestinationException e)
+ {
+ }
+ }
+
+ public void testCreateConsumerWithInvalidDestination() throws Exception
+ {
+ Destination invalidDestination = createStrictMock(Destination.class);
+ replay(mockClientConn, mockClientSession, invalidDestination);
+
+ JBossConnection connection = new JBossConnection(mockClientConn,
+ JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
+ Session session = new JBossSession(connection, false, false,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
+ JBossSession.TYPE_GENERIC_SESSION);
+
+ try
+ {
+ session.createConsumer(invalidDestination);
+ fail("only instances of JBossDestination are allowed");
+ } catch (InvalidDestinationException e)
+ {
+ }
+
+ verify(invalidDestination);
+ }
+
+ public void testCreateConsumerWithUnknownQueue() throws Exception
+ {
+ JBossDestination destination = new JBossQueue(randomString());
+
+ // isExists() will return false
+ SessionQueueQueryResponseMessage resp = new SessionQueueQueryResponseMessage();
+ expect(mockClientSession.queueQuery(destination.getSimpleAddress()))
+ .andReturn(resp);
+
+ replay(mockClientConn, mockClientSession);
+
+ JBossConnection connection = new JBossConnection(mockClientConn,
+ JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
+ Session session = new JBossSession(connection, false, false,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
+ JBossSession.TYPE_GENERIC_SESSION);
+
+ try
+ {
+ session.createConsumer(destination);
+ fail("should throw an InvalidDestinationException");
+ } catch (InvalidDestinationException e)
+ {
+ }
+ }
+
+ public void testCreateConsumerWithUnknownTopic() throws Exception
+ {
+ JBossDestination destination = new JBossTopic(randomString());
+
+ // isExists() will return false
+ SessionBindingQueryResponseMessage resp = new SessionBindingQueryResponseMessage();
+ expect(mockClientSession.bindingQuery(destination.getSimpleAddress()))
+ .andReturn(resp);
+
+ replay(mockClientConn, mockClientSession);
+
+ JBossConnection connection = new JBossConnection(mockClientConn,
+ JBossConnection.TYPE_TOPIC_CONNECTION, null, -1);
+ Session session = new JBossSession(connection, false, false,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
+ JBossSession.TYPE_TOPIC_SESSION);
+
+ try
+ {
+ session.createConsumer(destination);
+ fail("should throw an InvalidDestinationException");
+ } catch (InvalidDestinationException e)
+ {
+ }
+ }
+
+ public void testCreateConsumerForTopic() throws Exception
+ {
+ JBossDestination destination = new JBossTopic(randomString());
+ ClientConsumer clientConsumer = createStrictMock(ClientConsumer.class);
+
+ // isExists() will return true
+ SessionBindingQueryResponseMessage resp = new SessionBindingQueryResponseMessage(
+ true, new ArrayList<SimpleString>());
+ expect(mockClientSession.bindingQuery(destination.getSimpleAddress()))
+ .andReturn(resp);
+ mockClientSession.createQueue(eq(destination.getSimpleAddress()),
+ isA(SimpleString.class), (SimpleString) isNull(), eq(false),
+ eq(false));
+ expect(
+ mockClientSession.createConsumer(isA(SimpleString.class),
+ (SimpleString) isNull(), eq(false), eq(true), eq(false)))
+ .andReturn(clientConsumer);
+ expect(mockClientSession.isClosed()).andReturn(false);
+
+ replay(mockClientConn, mockClientSession, clientConsumer);
+
+ JBossConnection connection = new JBossConnection(mockClientConn,
+ JBossConnection.TYPE_TOPIC_CONNECTION, null, -1);
+ Session session = new JBossSession(connection, false, false,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
+ JBossSession.TYPE_TOPIC_SESSION);
+
+ MessageConsumer consumer = session.createConsumer(destination);
+ assertNotNull(consumer);
+
+ verify(clientConsumer);
+ }
+
+
+ public void testCreateDurableSubscriberFromQueueSession() throws Exception
+ {
+ JBossTopic topic = new JBossTopic(randomString());
+ replay(mockClientConn, mockClientSession);
+
+ JBossConnection connection = new JBossConnection(mockClientConn,
+ JBossConnection.TYPE_TOPIC_CONNECTION, null, -1);
+ Session session = new JBossSession(connection, false, false,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
+ JBossSession.TYPE_QUEUE_SESSION);
+
+ try
+ {
+ session.createDurableSubscriber(topic, randomString());
+ fail("cannot create a durable subscriber on a QueueSession");
+ } catch (IllegalStateException e)
+ {
+ }
+ }
+
+ public void testCreateDurableSubscriberForNullTopic() throws Exception
+ {
+ replay(mockClientConn, mockClientSession);
+
+ JBossConnection connection = new JBossConnection(mockClientConn,
+ JBossConnection.TYPE_TOPIC_CONNECTION, null, -1);
+ Session session = new JBossSession(connection, false, false,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
+ JBossSession.TYPE_TOPIC_SESSION);
+
+ try
+ {
+ session.createDurableSubscriber(null, randomString());
+ fail("cannot create a durable subscriber on a null topict");
+ } catch (InvalidDestinationException e)
+ {
+ }
+ }
+
+ public void testCreateDurableSubscriberForInvalidTopic() throws Exception
+ {
+ Topic invalidTopic = createStrictMock(Topic.class);
+ replay(mockClientConn, mockClientSession, invalidTopic);
+
+ JBossConnection connection = new JBossConnection(mockClientConn,
+ JBossConnection.TYPE_TOPIC_CONNECTION, null, -1);
+ Session session = new JBossSession(connection, false, false,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
+ JBossSession.TYPE_TOPIC_SESSION);
+
+ try
+ {
+ session.createDurableSubscriber(invalidTopic, randomString());
+ fail("only instances of JBossTopic are allowed");
+ } catch (InvalidDestinationException e)
+ {
+ }
+
+ verify(invalidTopic);
+ }
+
+ public void testCreateDurableSubscriber() throws Exception
+ {
+ String subscriptionName = randomString();
+ String clientID = randomString();
+ JBossTopic topic = new JBossTopic(randomString());
+ ClientConsumer clientConsumer = createStrictMock(ClientConsumer.class);
+
+ expect(mockClientConn.isClosed()).andStubReturn(false);
+ expect(mockClientSession.isClosed()).andStubReturn(false);
+
+ // isExists() will return true
+ SessionBindingQueryResponseMessage bindingResp = new SessionBindingQueryResponseMessage(
+ true, new ArrayList<SimpleString>());
+ expect(mockClientSession.bindingQuery(topic.getSimpleAddress()))
+ .andReturn(bindingResp);
+ SessionQueueQueryResponseMessage queryResp = new SessionQueueQueryResponseMessage();
+ expect(mockClientSession.queueQuery(isA(SimpleString.class))).andReturn(queryResp);
+ mockClientSession.createQueue(eq(topic.getSimpleAddress()),
+ isA(SimpleString.class), (SimpleString) isNull(), eq(true),
+ eq(false));
+ expect(
+ mockClientSession.createConsumer(isA(SimpleString.class),
+ (SimpleString) isNull(), eq(false), eq(false), eq(false)))
+ .andReturn(clientConsumer);
+
+ replay(mockClientConn, mockClientSession, clientConsumer);
+
+ JBossConnection connection = new JBossConnection(mockClientConn,
+ JBossConnection.TYPE_TOPIC_CONNECTION, clientID, -1);
+ Session session = new JBossSession(connection, false, false,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
+ JBossSession.TYPE_TOPIC_SESSION);
+
+ MessageConsumer consumer = session.createDurableSubscriber(topic, subscriptionName);
+ assertNotNull(consumer);
+
+ verify(clientConsumer);
+ }
+
+ public void testCreateDurableSubscriberWithNullClientID() throws Exception
+ {
+ String subscriptionName = randomString();
+ String clientID = null;
+ JBossTopic topic = new JBossTopic(randomString());
+
+ expect(mockClientConn.isClosed()).andStubReturn(false);
+ expect(mockClientSession.isClosed()).andStubReturn(false);
+
+ // isExists() will return true
+ SessionBindingQueryResponseMessage bindingResp = new SessionBindingQueryResponseMessage(
+ true, new ArrayList<SimpleString>());
+ expect(mockClientSession.bindingQuery(topic.getSimpleAddress()))
+ .andReturn(bindingResp);
+ replay(mockClientConn, mockClientSession);
+
+ JBossConnection connection = new JBossConnection(mockClientConn,
+ JBossConnection.TYPE_TOPIC_CONNECTION, clientID, -1);
+ Session session = new JBossSession(connection, false, false,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
+ JBossSession.TYPE_TOPIC_SESSION);
+
+ try {
+ session.createDurableSubscriber(topic, subscriptionName);
+ fail("clientID must be set to create a durable subscriber");
+ } catch (InvalidClientIDException e)
+ {
+ }
+ }
+
+ public void testCreateDurableSubscriberWithTemporaryTopic() throws Exception
+ {
+ String topicName = randomString();
+ SimpleString topicAddress = new SimpleString(
+ JBossTemporaryTopic.JMS_TEMP_TOPIC_ADDRESS_PREFIX + topicName);
+
+ String subscriptionName = randomString();
+ String clientID = randomString();
+ expect(mockClientConn.isClosed()).andStubReturn(false);
+ expect(mockClientSession.isClosed()).andStubReturn(false);
+
+ // isExists() will return true
+ SessionBindingQueryResponseMessage bindingResp = new SessionBindingQueryResponseMessage(
+ true, new ArrayList<SimpleString>());
+ expect(mockClientSession.bindingQuery(topicAddress))
+ .andReturn(bindingResp);
+ replay(mockClientConn, mockClientSession);
+
+ JBossConnection connection = new JBossConnection(mockClientConn,
+ JBossConnection.TYPE_TOPIC_CONNECTION, clientID, -1);
+ JBossSession session = new JBossSession(connection, false, false,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
+ JBossSession.TYPE_TOPIC_SESSION);
+ JBossTopic tempTopic = new JBossTemporaryTopic(session, topicName);
+
+
+ try {
+ session.createDurableSubscriber(tempTopic, subscriptionName);
+ fail("can not create a durable subscriber for a temporary topic");
+ } catch (InvalidDestinationException e)
+ {
+ }
+ }
+
+ public void testCreateDurableSubscriberWithAlreadyReigsteredSubscriber() throws Exception
+ {
+ String subscriptionName = randomString();
+ String clientID = randomString();
+ JBossTopic topic = new JBossTopic(randomString());
+
+ expect(mockClientConn.isClosed()).andStubReturn(false);
+ expect(mockClientSession.isClosed()).andStubReturn(false);
+
+ // isExists() will return true
+ SessionBindingQueryResponseMessage bindingResp = new SessionBindingQueryResponseMessage(
+ true, new ArrayList<SimpleString>());
+ expect(mockClientSession.bindingQuery(topic.getSimpleAddress()))
+ .andReturn(bindingResp);
+ // already 1 durable subscriber
+ SessionQueueQueryResponseMessage queryResp = new SessionQueueQueryResponseMessage(true, false, -1, 1, 0, null, topic.getSimpleAddress());
+ expect(mockClientSession.queueQuery(isA(SimpleString.class))).andReturn(queryResp);
+
+ replay(mockClientConn, mockClientSession);
+
+ JBossConnection connection = new JBossConnection(mockClientConn,
+ JBossConnection.TYPE_TOPIC_CONNECTION, clientID, -1);
+ Session session = new JBossSession(connection, false, false,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
+ JBossSession.TYPE_TOPIC_SESSION);
+
+ try
+ {
+ session.createDurableSubscriber(topic, subscriptionName);
+ fail("can not create a durable subscriber when another is already registered");
+ } catch (IllegalStateException e)
+ {
+ }
+ }
+
+ public void testCreateDurableSubscriberWithEmptyMessageSelector() throws Exception
+ {
+ String subscriptionName = randomString();
+ String clientID = randomString();
+ String selector = "";
+ JBossTopic topic = new JBossTopic(randomString());
+ ClientConsumer clientConsumer = createStrictMock(ClientConsumer.class);
+
+ expect(mockClientConn.isClosed()).andStubReturn(false);
+ expect(mockClientSession.isClosed()).andStubReturn(false);
+
+ // isExists() will return true
+ SessionBindingQueryResponseMessage bindingResp = new SessionBindingQueryResponseMessage(
+ true, new ArrayList<SimpleString>());
+ expect(mockClientSession.bindingQuery(topic.getSimpleAddress()))
+ .andReturn(bindingResp);
+ SessionQueueQueryResponseMessage queryResp = new SessionQueueQueryResponseMessage();
+ expect(mockClientSession.queueQuery(isA(SimpleString.class))).andReturn(queryResp);
+ mockClientSession.createQueue(eq(topic.getSimpleAddress()),
+ isA(SimpleString.class), (SimpleString) isNull(), eq(true),
+ eq(false));
+ expect(
+ mockClientSession.createConsumer(isA(SimpleString.class),
+ (SimpleString) isNull(), eq(false), eq(false), eq(false)))
+ .andReturn(clientConsumer);
+
+ replay(mockClientConn, mockClientSession, clientConsumer);
+
+ JBossConnection connection = new JBossConnection(mockClientConn,
+ JBossConnection.TYPE_TOPIC_CONNECTION, clientID, -1);
+ Session session = new JBossSession(connection, false, false,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
+ JBossSession.TYPE_TOPIC_SESSION);
+
+ MessageConsumer consumer = session.createDurableSubscriber(topic, subscriptionName, selector, false);
+ assertNotNull(consumer);
+
+ verify(clientConsumer);
+ }
+
+ public void testCreateDurableSubscriberWhichWasAlreadyRegistered() throws Exception
+ {
+ String subscriptionName = randomString();
+ String clientID = randomString();
+ JBossTopic topic = new JBossTopic(randomString());
+ ClientConsumer clientConsumer = createStrictMock(ClientConsumer.class);
+
+ expect(mockClientConn.isClosed()).andStubReturn(false);
+ expect(mockClientSession.isClosed()).andStubReturn(false);
+
+ // isExists() will return true
+ SessionBindingQueryResponseMessage bindingResp = new SessionBindingQueryResponseMessage(
+ true, new ArrayList<SimpleString>());
+ expect(mockClientSession.bindingQuery(topic.getSimpleAddress()))
+ .andReturn(bindingResp);
+ // isExists will return true
+ SessionQueueQueryResponseMessage queryResp = new SessionQueueQueryResponseMessage(true, false, -1, 0, 0, null, topic.getSimpleAddress());
+ expect(mockClientSession.queueQuery(isA(SimpleString.class))).andReturn(queryResp);
+ expect(
+ mockClientSession.createConsumer(isA(SimpleString.class),
+ (SimpleString) isNull(), eq(false), eq(false), eq(false)))
+ .andReturn(clientConsumer);
+
+ replay(mockClientConn, mockClientSession, clientConsumer);
+
+ JBossConnection connection = new JBossConnection(mockClientConn,
+ JBossConnection.TYPE_TOPIC_CONNECTION, clientID, -1);
+ Session session = new JBossSession(connection, false, false,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
+ JBossSession.TYPE_TOPIC_SESSION);
+
+ MessageConsumer consumer = session.createDurableSubscriber(topic, subscriptionName);
+ assertNotNull(consumer);
+
+ verify(clientConsumer);
+ }
+
+ public void testCreateDurableSubscriberWhichWasAlreadyRegisteredWithAnotherTopic() throws Exception
+ {
+ String subscriptionName = randomString();
+ String clientID = randomString();
+ JBossTopic oldTopic = new JBossTopic(randomString());
+ JBossTopic newTopic = new JBossTopic(randomString());
+ ClientConsumer clientConsumer = createStrictMock(ClientConsumer.class);
+
+ expect(mockClientConn.isClosed()).andStubReturn(false);
+ expect(mockClientSession.isClosed()).andStubReturn(false);
+
+ // isExists() will return true
+ SessionBindingQueryResponseMessage bindingResp = new SessionBindingQueryResponseMessage(
+ true, new ArrayList<SimpleString>());
+ expect(mockClientSession.bindingQuery(newTopic.getSimpleAddress()))
+ .andReturn(bindingResp);
+ // isExists will return true
+ SessionQueueQueryResponseMessage queryResp = new SessionQueueQueryResponseMessage(true, false, -1, 0, 0, null, oldTopic.getSimpleAddress());
+ expect(mockClientSession.queueQuery(isA(SimpleString.class))).andReturn(queryResp);
+ // queue address of the old topic
+ mockClientSession.deleteQueue(isA(SimpleString.class));
+ mockClientSession.createQueue(eq(newTopic.getSimpleAddress()), isA(SimpleString.class), (SimpleString) isNull(), eq(true), eq(false));
+ expect(
+ mockClientSession.createConsumer(isA(SimpleString.class),
+ (SimpleString) isNull(), eq(false), eq(false), eq(false)))
+ .andReturn(clientConsumer);
+
+ replay(mockClientConn, mockClientSession, clientConsumer);
+
+ JBossConnection connection = new JBossConnection(mockClientConn,
+ JBossConnection.TYPE_TOPIC_CONNECTION, clientID, -1);
+ Session session = new JBossSession(connection, false, false,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
+ JBossSession.TYPE_TOPIC_SESSION);
+
+ MessageConsumer consumer = session.createDurableSubscriber(newTopic, subscriptionName);
+ assertNotNull(consumer);
+
+ verify(clientConsumer);
+ }
+
+ public void testCreateDurableSubscriberWhichWasAlreadyRegisteredWithAnotherMessageSelector() throws Exception
+ {
+ String subscriptionName = randomString();
+ String clientID = randomString();
+ JBossTopic topic = new JBossTopic(randomString());
+ SimpleString oldSelector = new SimpleString("color = 'red'");
+ SimpleString newSelector = new SimpleString("color = 'blue'");
+ ClientConsumer clientConsumer = createStrictMock(ClientConsumer.class);
+
+ expect(mockClientConn.isClosed()).andStubReturn(false);
+ expect(mockClientSession.isClosed()).andStubReturn(false);
+
+ // isExists() will return true
+ SessionBindingQueryResponseMessage bindingResp = new SessionBindingQueryResponseMessage(
+ true, new ArrayList<SimpleString>());
+ expect(mockClientSession.bindingQuery(topic.getSimpleAddress()))
+ .andReturn(bindingResp);
+ // isExists will return true
+ SessionQueueQueryResponseMessage queryResp = new SessionQueueQueryResponseMessage(true, false, -1, 0, 0, oldSelector, topic.getSimpleAddress());
+ expect(mockClientSession.queueQuery(isA(SimpleString.class))).andReturn(queryResp);
+ // queue address of the old topic
+ mockClientSession.deleteQueue(isA(SimpleString.class));
+ mockClientSession.createQueue(eq(topic.getSimpleAddress()), isA(SimpleString.class), eq(newSelector), eq(true), eq(false));
+ expect(
+ mockClientSession.createConsumer(isA(SimpleString.class),
+ (SimpleString) isNull(), eq(false), eq(false), eq(false)))
+ .andReturn(clientConsumer);
+
+ replay(mockClientConn, mockClientSession, clientConsumer);
+
+ JBossConnection connection = new JBossConnection(mockClientConn,
+ JBossConnection.TYPE_TOPIC_CONNECTION, clientID, -1);
+ Session session = new JBossSession(connection, false, false,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
+ JBossSession.TYPE_TOPIC_SESSION);
+
+ MessageConsumer consumer = session.createDurableSubscriber(topic, subscriptionName, newSelector.toString(), false);
+ assertNotNull(consumer);
+
+ verify(clientConsumer);
+ }
+
+
public void testCreateBrowser() throws Exception
{
JBossQueue queue = new JBossQueue(randomString());
- ClientConnection clientConn = createStrictMock(ClientConnection.class);
- ClientSession clientSession = createStrictMock(ClientSession.class);
ClientBrowser clientBrowser = createStrictMock(ClientBrowser.class);
- expect(clientSession.createBrowser(queue.getSimpleAddress(), null))
+ expect(mockClientSession.createBrowser(queue.getSimpleAddress(), null))
.andReturn(clientBrowser);
- replay(clientConn, clientSession, clientBrowser);
+ replay(mockClientConn, mockClientSession, clientBrowser);
- JBossConnection connection = new JBossConnection(clientConn,
+ JBossConnection connection = new JBossConnection(mockClientConn,
JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
QueueSession session = new JBossSession(connection, false, false,
- Session.AUTO_ACKNOWLEDGE, clientSession,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
JBossSession.TYPE_QUEUE_SESSION);
QueueBrowser browser = session.createBrowser(queue);
assertNotNull(browser);
- EasyMock.verify(clientConn, clientSession, clientBrowser);
+ verify(clientBrowser);
}
public void testCreateBrowserThrowsException() throws Exception
{
JBossQueue queue = new JBossQueue(randomString());
- ClientConnection clientConn = createStrictMock(ClientConnection.class);
- ClientSession clientSession = createStrictMock(ClientSession.class);
ClientBrowser clientBrowser = createStrictMock(ClientBrowser.class);
- expect(clientSession.createBrowser(queue.getSimpleAddress(), null))
+ expect(mockClientSession.createBrowser(queue.getSimpleAddress(), null))
.andThrow(new MessagingException());
- replay(clientConn, clientSession, clientBrowser);
+ replay(mockClientConn, mockClientSession, clientBrowser);
- JBossConnection connection = new JBossConnection(clientConn,
+ JBossConnection connection = new JBossConnection(mockClientConn,
JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
QueueSession session = new JBossSession(connection, false, false,
- Session.AUTO_ACKNOWLEDGE, clientSession,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
JBossSession.TYPE_QUEUE_SESSION);
try
@@ -742,69 +1236,63 @@
{
}
- EasyMock.verify(clientConn, clientSession, clientBrowser);
+ verify(clientBrowser);
}
public void testCreateBrowserWithEmptyFilter() throws Exception
{
JBossQueue queue = new JBossQueue(randomString());
- ClientConnection clientConn = createStrictMock(ClientConnection.class);
- ClientSession clientSession = createStrictMock(ClientSession.class);
ClientBrowser clientBrowser = createStrictMock(ClientBrowser.class);
- expect(clientSession.createBrowser(queue.getSimpleAddress(), null))
+ expect(mockClientSession.createBrowser(queue.getSimpleAddress(), null))
.andReturn(clientBrowser);
- replay(clientConn, clientSession, clientBrowser);
+ replay(mockClientConn, mockClientSession, clientBrowser);
- JBossConnection connection = new JBossConnection(clientConn,
+ JBossConnection connection = new JBossConnection(mockClientConn,
JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
QueueSession session = new JBossSession(connection, false, false,
- Session.AUTO_ACKNOWLEDGE, clientSession,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
JBossSession.TYPE_QUEUE_SESSION);
QueueBrowser browser = session.createBrowser(queue, "");
assertNotNull(browser);
- EasyMock.verify(clientConn, clientSession, clientBrowser);
+ verify(clientBrowser);
}
public void testCreateBrowserWithFilter() throws Exception
{
String filter = "color = 'red'";
JBossQueue queue = new JBossQueue(randomString());
- ClientConnection clientConn = createStrictMock(ClientConnection.class);
- ClientSession clientSession = createStrictMock(ClientSession.class);
ClientBrowser clientBrowser = createStrictMock(ClientBrowser.class);
expect(
- clientSession.createBrowser(queue.getSimpleAddress(),
+ mockClientSession.createBrowser(queue.getSimpleAddress(),
new SimpleString(filter))).andReturn(clientBrowser);
- replay(clientConn, clientSession, clientBrowser);
+ replay(mockClientConn, mockClientSession, clientBrowser);
- JBossConnection connection = new JBossConnection(clientConn,
+ JBossConnection connection = new JBossConnection(mockClientConn,
JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
QueueSession session = new JBossSession(connection, false, false,
- Session.AUTO_ACKNOWLEDGE, clientSession,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
JBossSession.TYPE_QUEUE_SESSION);
QueueBrowser browser = session.createBrowser(queue, filter);
assertNotNull(browser);
- EasyMock.verify(clientConn, clientSession, clientBrowser);
+ verify(clientBrowser);
}
public void testCreateBrowserFromTopicSession() throws Exception
{
Queue queue = new JBossQueue(randomString());
- ClientConnection clientConn = createStrictMock(ClientConnection.class);
- ClientSession clientSession = createStrictMock(ClientSession.class);
- replay(clientConn, clientSession);
+ replay(mockClientConn, mockClientSession);
- JBossConnection connection = new JBossConnection(clientConn,
+ JBossConnection connection = new JBossConnection(mockClientConn,
JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
QueueSession session = new JBossSession(connection, false, false,
- Session.AUTO_ACKNOWLEDGE, clientSession,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
JBossSession.TYPE_TOPIC_SESSION);
try
@@ -814,21 +1302,16 @@
} catch (IllegalStateException e)
{
}
-
- EasyMock.verify(clientConn, clientSession);
}
public void testCreateBrowserForNullQueue() throws Exception
{
- ClientConnection clientConn = createStrictMock(ClientConnection.class);
- ClientSession clientSession = createStrictMock(ClientSession.class);
+ replay(mockClientConn, mockClientSession);
- replay(clientConn, clientSession);
-
- JBossConnection connection = new JBossConnection(clientConn,
+ JBossConnection connection = new JBossConnection(mockClientConn,
JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
QueueSession session = new JBossSession(connection, false, false,
- Session.AUTO_ACKNOWLEDGE, clientSession,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
JBossSession.TYPE_QUEUE_SESSION);
try
@@ -838,22 +1321,17 @@
} catch (InvalidDestinationException e)
{
}
-
- EasyMock.verify(clientConn, clientSession);
}
public void testCreateBrowserForInvalidQueue() throws Exception
{
Queue queue = createStrictMock(Queue.class);
- ClientConnection clientConn = createStrictMock(ClientConnection.class);
- ClientSession clientSession = createStrictMock(ClientSession.class);
+ replay(mockClientConn, mockClientSession, queue);
- replay(clientConn, clientSession, queue);
-
- JBossConnection connection = new JBossConnection(clientConn,
+ JBossConnection connection = new JBossConnection(mockClientConn,
JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
QueueSession session = new JBossSession(connection, false, false,
- Session.AUTO_ACKNOWLEDGE, clientSession,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
JBossSession.TYPE_QUEUE_SESSION);
try
@@ -864,7 +1342,7 @@
{
}
- EasyMock.verify(clientConn, clientSession, queue);
+ verify(queue);
}
public void testCreateQueue() throws Exception
@@ -873,25 +1351,21 @@
SimpleString queueAddress = new SimpleString(
JBossQueue.JMS_QUEUE_ADDRESS_PREFIX + queueName);
- ClientConnection clientConn = createStrictMock(ClientConnection.class);
- ClientSession clientSession = createStrictMock(ClientSession.class);
// isExists() will return true
SessionQueueQueryResponseMessage resp = new SessionQueueQueryResponseMessage(
false, false, -1, -1, 1, null, queueAddress);
- expect(clientSession.queueQuery(queueAddress)).andReturn(resp);
+ expect(mockClientSession.queueQuery(queueAddress)).andReturn(resp);
- replay(clientConn, clientSession);
+ replay(mockClientConn, mockClientSession);
- JBossConnection connection = new JBossConnection(clientConn,
+ JBossConnection connection = new JBossConnection(mockClientConn,
JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
QueueSession session = new JBossSession(connection, false, false,
- Session.AUTO_ACKNOWLEDGE, clientSession,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
JBossSession.TYPE_QUEUE_SESSION);
Queue queue = session.createQueue(queueName);
assertNotNull(queue);
-
- EasyMock.verify(clientConn, clientSession);
}
public void testCreateQueueThrowsException() throws Exception
@@ -900,17 +1374,15 @@
SimpleString queueAddress = new SimpleString(
JBossQueue.JMS_QUEUE_ADDRESS_PREFIX + queueName);
- ClientConnection clientConn = createStrictMock(ClientConnection.class);
- ClientSession clientSession = createStrictMock(ClientSession.class);
- expect(clientSession.queueQuery(queueAddress)).andThrow(
+ expect(mockClientSession.queueQuery(queueAddress)).andThrow(
new MessagingException());
- replay(clientConn, clientSession);
+ replay(mockClientConn, mockClientSession);
- JBossConnection connection = new JBossConnection(clientConn,
+ JBossConnection connection = new JBossConnection(mockClientConn,
JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
QueueSession session = new JBossSession(connection, false, false,
- Session.AUTO_ACKNOWLEDGE, clientSession,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
JBossSession.TYPE_QUEUE_SESSION);
try
@@ -920,8 +1392,6 @@
} catch (JMSException e)
{
}
-
- EasyMock.verify(clientConn, clientSession);
}
public void testCreateQueueWithUnknownName() throws Exception
@@ -930,18 +1400,16 @@
SimpleString queueAddress = new SimpleString(
JBossQueue.JMS_QUEUE_ADDRESS_PREFIX + queueName);
- ClientConnection clientConn = createStrictMock(ClientConnection.class);
- ClientSession clientSession = createStrictMock(ClientSession.class);
// isExists() will return false
SessionQueueQueryResponseMessage resp = new SessionQueueQueryResponseMessage();
- expect(clientSession.queueQuery(queueAddress)).andReturn(resp);
+ expect(mockClientSession.queueQuery(queueAddress)).andReturn(resp);
- replay(clientConn, clientSession);
+ replay(mockClientConn, mockClientSession);
- JBossConnection connection = new JBossConnection(clientConn,
+ JBossConnection connection = new JBossConnection(mockClientConn,
JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
QueueSession session = new JBossSession(connection, false, false,
- Session.AUTO_ACKNOWLEDGE, clientSession,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
JBossSession.TYPE_QUEUE_SESSION);
try
@@ -951,21 +1419,16 @@
} catch (JMSException e)
{
}
-
- EasyMock.verify(clientConn, clientSession);
}
public void testCreateQueueFromTopicSession() throws Exception
{
- ClientConnection clientConn = createStrictMock(ClientConnection.class);
- ClientSession clientSession = createStrictMock(ClientSession.class);
+ replay(mockClientConn, mockClientSession);
- replay(clientConn, clientSession);
-
- JBossConnection connection = new JBossConnection(clientConn,
+ JBossConnection connection = new JBossConnection(mockClientConn,
JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
QueueSession session = new JBossSession(connection, false, false,
- Session.AUTO_ACKNOWLEDGE, clientSession,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
JBossSession.TYPE_TOPIC_SESSION);
try
@@ -975,8 +1438,6 @@
} catch (IllegalStateException e)
{
}
-
- EasyMock.verify(clientConn, clientSession);
}
public void testCreateTopic() throws Exception
@@ -985,24 +1446,20 @@
SimpleString topicAddress = new SimpleString(
JBossTopic.JMS_TOPIC_ADDRESS_PREFIX + topicName);
- ClientConnection clientConn = createStrictMock(ClientConnection.class);
- ClientSession clientSession = createStrictMock(ClientSession.class);
SessionBindingQueryResponseMessage resp = new SessionBindingQueryResponseMessage(
true, new ArrayList<SimpleString>());
- expect(clientSession.bindingQuery(topicAddress)).andReturn(resp);
+ expect(mockClientSession.bindingQuery(topicAddress)).andReturn(resp);
- replay(clientConn, clientSession);
+ replay(mockClientConn, mockClientSession);
- JBossConnection connection = new JBossConnection(clientConn,
+ JBossConnection connection = new JBossConnection(mockClientConn,
JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
QueueSession session = new JBossSession(connection, false, false,
- Session.AUTO_ACKNOWLEDGE, clientSession,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
JBossSession.TYPE_TOPIC_SESSION);
Topic topic = session.createTopic(topicName);
assertNotNull(topic);
-
- EasyMock.verify(clientConn, clientSession);
}
public void testCreateTopicThrowsException() throws Exception
@@ -1011,17 +1468,15 @@
SimpleString topicAddress = new SimpleString(
JBossTopic.JMS_TOPIC_ADDRESS_PREFIX + topicName);
- ClientConnection clientConn = createStrictMock(ClientConnection.class);
- ClientSession clientSession = createStrictMock(ClientSession.class);
- expect(clientSession.bindingQuery(topicAddress)).andThrow(
+ expect(mockClientSession.bindingQuery(topicAddress)).andThrow(
new MessagingException());
- replay(clientConn, clientSession);
+ replay(mockClientConn, mockClientSession);
- JBossConnection connection = new JBossConnection(clientConn,
+ JBossConnection connection = new JBossConnection(mockClientConn,
JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
QueueSession session = new JBossSession(connection, false, false,
- Session.AUTO_ACKNOWLEDGE, clientSession,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
JBossSession.TYPE_TOPIC_SESSION);
try
@@ -1031,8 +1486,6 @@
} catch (JMSException e)
{
}
-
- EasyMock.verify(clientConn, clientSession);
}
public void testCreateTopicWithUnknownName() throws Exception
@@ -1041,18 +1494,16 @@
SimpleString topicAddress = new SimpleString(
JBossTopic.JMS_TOPIC_ADDRESS_PREFIX + topicName);
- ClientConnection clientConn = createStrictMock(ClientConnection.class);
- ClientSession clientSession = createStrictMock(ClientSession.class);
SessionBindingQueryResponseMessage resp = new SessionBindingQueryResponseMessage(
false, new ArrayList<SimpleString>());
- expect(clientSession.bindingQuery(topicAddress)).andReturn(resp);
+ expect(mockClientSession.bindingQuery(topicAddress)).andReturn(resp);
- replay(clientConn, clientSession);
+ replay(mockClientConn, mockClientSession);
- JBossConnection connection = new JBossConnection(clientConn,
+ JBossConnection connection = new JBossConnection(mockClientConn,
JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
QueueSession session = new JBossSession(connection, false, false,
- Session.AUTO_ACKNOWLEDGE, clientSession,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
JBossSession.TYPE_TOPIC_SESSION);
try
@@ -1062,21 +1513,16 @@
} catch (JMSException e)
{
}
-
- EasyMock.verify(clientConn, clientSession);
}
public void testCreateTopicFromQueueSession() throws Exception
{
- ClientConnection clientConn = createStrictMock(ClientConnection.class);
- ClientSession clientSession = createStrictMock(ClientSession.class);
+ replay(mockClientConn, mockClientSession);
- replay(clientConn, clientSession);
-
- JBossConnection connection = new JBossConnection(clientConn,
+ JBossConnection connection = new JBossConnection(mockClientConn,
JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
QueueSession session = new JBossSession(connection, false, false,
- Session.AUTO_ACKNOWLEDGE, clientSession,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
JBossSession.TYPE_QUEUE_SESSION);
try
@@ -1086,12 +1532,459 @@
} catch (IllegalStateException e)
{
}
+ }
+
+ public void testCreateTemporaryQueue() throws Exception
+ {
+ mockClientSession.createQueue(isA(SimpleString.class), isA(SimpleString.class), (SimpleString) isNull(), eq(false), eq(true));
+ mockClientSession.addDestination(isA(SimpleString.class), eq(true));
+ replay(mockClientConn, mockClientSession);
- EasyMock.verify(clientConn, clientSession);
+ JBossConnection connection = new JBossConnection(mockClientConn,
+ JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
+ QueueSession session = new JBossSession(connection, false, false,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
+ JBossSession.TYPE_QUEUE_SESSION);
+
+ TemporaryQueue topic = session.createTemporaryQueue();
+ assertNotNull(topic);
}
+
+ public void testCreateTemporaryQueueThrowsException() throws Exception
+ {
+ mockClientSession.createQueue(isA(SimpleString.class), isA(SimpleString.class), (SimpleString) isNull(), eq(false), eq(true));
+ expectLastCall().andThrow(new MessagingException());
+ replay(mockClientConn, mockClientSession);
- // Package protected ---------------------------------------------
+ JBossConnection connection = new JBossConnection(mockClientConn,
+ JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
+ QueueSession session = new JBossSession(connection, false, false,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
+ JBossSession.TYPE_QUEUE_SESSION);
+ try
+ {
+ session.createTemporaryQueue();
+ fail("must throw a JMSException");
+ } catch (JMSException e)
+ {
+ }
+ }
+
+ public void testCreateTemporaryQueueFromTopicSession() throws Exception
+ {
+ replay(mockClientConn, mockClientSession);
+ JBossConnection connection = new JBossConnection(mockClientConn,
+ JBossConnection.TYPE_TOPIC_CONNECTION, null, -1);
+ QueueSession session = new JBossSession(connection, false, false,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
+ JBossSession.TYPE_TOPIC_SESSION);
+ try
+ {
+ session.createTemporaryQueue();
+ fail("must throw a JMSException");
+ } catch (JMSException e)
+ {
+ }
+ }
+
+ public void testCreateTemporaryTopic() throws Exception
+ {
+ mockClientSession.addDestination(isA(SimpleString.class), eq(true));
+ replay(mockClientConn, mockClientSession);
+
+ JBossConnection connection = new JBossConnection(mockClientConn,
+ JBossConnection.TYPE_TOPIC_CONNECTION, null, -1);
+ QueueSession session = new JBossSession(connection, false, false,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
+ JBossSession.TYPE_TOPIC_SESSION);
+
+ TemporaryTopic topic = session.createTemporaryTopic();
+ assertNotNull(topic);
+ }
+
+ public void testCreateTemporaryTopicThrowsException() throws Exception
+ {
+ mockClientSession.addDestination(isA(SimpleString.class), eq(true));
+ expectLastCall().andThrow(new MessagingException());
+ replay(mockClientConn, mockClientSession);
+
+ JBossConnection connection = new JBossConnection(mockClientConn,
+ JBossConnection.TYPE_TOPIC_CONNECTION, null, -1);
+ QueueSession session = new JBossSession(connection, false, false,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
+ JBossSession.TYPE_TOPIC_SESSION);
+
+ try
+ {
+ session.createTemporaryTopic();
+ fail("must throw a JMSException");
+ } catch (JMSException e)
+ {
+ }
+ }
+
+ public void testCreateTemporaryTopicFromQueueSession() throws Exception
+ {
+ replay(mockClientConn, mockClientSession);
+
+ JBossConnection connection = new JBossConnection(mockClientConn,
+ JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
+ QueueSession session = new JBossSession(connection, false, false,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
+ JBossSession.TYPE_QUEUE_SESSION);
+
+ try
+ {
+ session.createTemporaryTopic();
+ fail("must throw a JMSException");
+ } catch (JMSException e)
+ {
+ }
+ }
+
+ public void testDeleteTemporaryQueue() throws Exception
+ {
+ String queueName = randomString();
+ SimpleString queueAddress = new SimpleString(JBossTemporaryQueue.JMS_TEMP_QUEUE_ADDRESS_PREFIX + queueName);
+
+ // isExists() will return true
+ SessionQueueQueryResponseMessage resp = new SessionQueueQueryResponseMessage(
+ false, false, -1, -1, 1, null, queueAddress);
+ expect(mockClientSession.queueQuery(queueAddress)).andReturn(resp);
+ mockClientSession.removeDestination(queueAddress, true);
+ replay(mockClientConn, mockClientSession);
+
+ JBossConnection connection = new JBossConnection(mockClientConn,
+ JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
+ JBossSession session = new JBossSession(connection, false, false,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
+ JBossSession.TYPE_QUEUE_SESSION);
+ JBossTemporaryQueue tempQueue = new JBossTemporaryQueue(session, queueName);
+
+ session.deleteTemporaryQueue(tempQueue);
+ }
+
+ public void testDeleteTemporaryQueueWithUnknownQueue() throws Exception
+ {
+ String queueName = randomString();
+ SimpleString queueAddress = new SimpleString(JBossTemporaryQueue.JMS_TEMP_QUEUE_ADDRESS_PREFIX + queueName);
+
+ // isExists() will return false
+ SessionQueueQueryResponseMessage resp = new SessionQueueQueryResponseMessage();
+ expect(mockClientSession.queueQuery(queueAddress)).andReturn(resp);
+ replay(mockClientConn, mockClientSession);
+
+ JBossConnection connection = new JBossConnection(mockClientConn,
+ JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
+ JBossSession session = new JBossSession(connection, false, false,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
+ JBossSession.TYPE_QUEUE_SESSION);
+ JBossTemporaryQueue tempQueue = new JBossTemporaryQueue(session, queueName);
+
+ try
+ {
+ session.deleteTemporaryQueue(tempQueue);
+ fail("can not delete a temp queue which does not exist");
+ } catch (InvalidDestinationException e)
+ {
+ }
+ }
+
+ public void testDeleteTemporaryQueueWithConsumers() throws Exception
+ {
+ String queueName = randomString();
+ int consumerCount = 1;
+ SimpleString queueAddress = new SimpleString(JBossTemporaryQueue.JMS_TEMP_QUEUE_ADDRESS_PREFIX + queueName);
+
+
+ SessionQueueQueryResponseMessage resp = new SessionQueueQueryResponseMessage(false, true, 0, consumerCount, 0, null, queueAddress);
+ expect(mockClientSession.queueQuery(queueAddress)).andReturn(resp);
+ replay(mockClientConn, mockClientSession);
+
+ JBossConnection connection = new JBossConnection(mockClientConn,
+ JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
+ JBossSession session = new JBossSession(connection, false, false,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
+ JBossSession.TYPE_QUEUE_SESSION);
+ JBossTemporaryQueue tempQueue = new JBossTemporaryQueue(session, queueName);
+
+ try
+ {
+ session.deleteTemporaryQueue(tempQueue);
+ fail("can not delete a temp queue which has consumers");
+ } catch (IllegalStateException e)
+ {
+ }
+ }
+
+ public void testDeleteTemporaryQueueThrowsException() throws Exception
+ {
+ expect(mockClientSession.queueQuery(isA(SimpleString.class))).andThrow(new MessagingException());
+ replay(mockClientConn, mockClientSession);
+
+ JBossConnection connection = new JBossConnection(mockClientConn,
+ JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
+ JBossSession session = new JBossSession(connection, false, false,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
+ JBossSession.TYPE_QUEUE_SESSION);
+ JBossTemporaryQueue tempQueue = new JBossTemporaryQueue(session, randomString());
+
+ try
+ {
+ session.deleteTemporaryQueue(tempQueue);
+ fail("must throw a JMSException");
+ } catch (JMSException e)
+ {
+ }
+ }
+
+ public void testDeleteTemporaryTopic() throws Exception
+ {
+ String topicName = randomString();
+ SimpleString topicAddress = new SimpleString(JBossTemporaryTopic.JMS_TEMP_TOPIC_ADDRESS_PREFIX + topicName);
+
+ SessionBindingQueryResponseMessage resp = new SessionBindingQueryResponseMessage(true, new ArrayList<SimpleString>());
+ expect(mockClientSession.bindingQuery(topicAddress)).andReturn(resp);
+ mockClientSession.removeDestination(topicAddress, true);
+ replay(mockClientConn, mockClientSession);
+
+ JBossConnection connection = new JBossConnection(mockClientConn,
+ JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
+ JBossSession session = new JBossSession(connection, false, false,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
+ JBossSession.TYPE_QUEUE_SESSION);
+ JBossTemporaryTopic tempTopic = new JBossTemporaryTopic(session, topicName);
+
+ session.deleteTemporaryTopic(tempTopic);
+ }
+
+ public void testDeleteTemporaryTopicWithUnknownTopic() throws Exception
+ {
+ String topicName = randomString();
+ SimpleString topicAddress = new SimpleString(JBossTemporaryTopic.JMS_TEMP_TOPIC_ADDRESS_PREFIX + topicName);
+
+ SessionBindingQueryResponseMessage resp = new SessionBindingQueryResponseMessage(false, new ArrayList<SimpleString>());
+ expect(mockClientSession.bindingQuery(topicAddress)).andReturn(resp);
+ replay(mockClientConn, mockClientSession);
+
+ JBossConnection connection = new JBossConnection(mockClientConn,
+ JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
+ JBossSession session = new JBossSession(connection, false, false,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
+ JBossSession.TYPE_QUEUE_SESSION);
+ JBossTemporaryTopic tempTopic = new JBossTemporaryTopic(session, topicName);
+
+ try
+ {
+ session.deleteTemporaryTopic(tempTopic);
+ fail("can not delete a temp topic which does not exist");
+ } catch (InvalidDestinationException e)
+ {
+ }
+ }
+
+ public void testDeleteTemporaryTopicWhichHasSubscribers() throws Exception
+ {
+ String topicName = randomString();
+ SimpleString topicAddress = new SimpleString(JBossTemporaryTopic.JMS_TEMP_TOPIC_ADDRESS_PREFIX + topicName);
+ List<SimpleString> queueNames = new ArrayList<SimpleString>();
+ queueNames.add(randomSimpleString());
+
+ SessionBindingQueryResponseMessage resp = new SessionBindingQueryResponseMessage(true, queueNames);
+ expect(mockClientSession.bindingQuery(topicAddress)).andReturn(resp);
+ replay(mockClientConn, mockClientSession);
+
+ JBossConnection connection = new JBossConnection(mockClientConn,
+ JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
+ JBossSession session = new JBossSession(connection, false, false,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
+ JBossSession.TYPE_QUEUE_SESSION);
+ JBossTemporaryTopic tempTopic = new JBossTemporaryTopic(session, topicName);
+
+ try
+ {
+ session.deleteTemporaryTopic(tempTopic);
+ fail("can not delete a temp topic which has subscribers");
+ } catch (IllegalStateException e)
+ {
+ }
+ }
+
+ public void testDeleteTemporaryTopicWhichThrowsException() throws Exception
+ {
+ String topicName = randomString();
+
+ expect(mockClientSession.bindingQuery(isA(SimpleString.class))).andThrow(new MessagingException());
+ replay(mockClientConn, mockClientSession);
+
+ JBossConnection connection = new JBossConnection(mockClientConn,
+ JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
+ JBossSession session = new JBossSession(connection, false, false,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
+ JBossSession.TYPE_QUEUE_SESSION);
+ JBossTemporaryTopic tempTopic = new JBossTemporaryTopic(session, topicName);
+
+ try
+ {
+ session.deleteTemporaryTopic(tempTopic);
+ fail("must throw a JMSException");
+ } catch (JMSException e)
+ {
+ }
+ }
+
+ public void testGetSessionOnXASession() throws Exception
+ {
+ boolean isXA = true;
+ replay(mockClientConn, mockClientSession);
+
+ JBossConnection connection = new JBossConnection(mockClientConn,
+ JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
+ JBossSession session = new JBossSession(connection, false, isXA,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
+ JBossSession.TYPE_QUEUE_SESSION);
+
+ Session sess = session.getSession();
+ assertNotNull(sess);
+ }
+
+ public void testGetSessionOnNonXASession() throws Exception
+ {
+ boolean isXA = false;
+ replay(mockClientConn, mockClientSession);
+
+ JBossConnection connection = new JBossConnection(mockClientConn,
+ JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
+ JBossSession session = new JBossSession(connection, false, isXA,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
+ JBossSession.TYPE_QUEUE_SESSION);
+
+ try
+ {
+ session.getSession();
+ fail("can not get the session on a non-XA session");
+ } catch (IllegalStateException e)
+ {
+ }
+ }
+
+ public void testUnsubscribe() throws Exception
+ {
+ String subName = randomString();
+ String clientID = randomString();
+ SimpleString queueAddres = new SimpleString(JBossTopic.createQueueNameForDurableSubscription(clientID, subName));
+ expect(mockClientConn.isClosed()).andReturn(false);
+ SessionQueueQueryResponseMessage resp = new SessionQueueQueryResponseMessage(false, true, 0, 0, 0, null, queueAddres);
+ expect(mockClientSession.queueQuery(queueAddres)).andReturn(resp );
+ mockClientSession.deleteQueue(queueAddres);
+ replay(mockClientConn, mockClientSession);
+
+ JBossConnection connection = new JBossConnection(mockClientConn,
+ JBossConnection.TYPE_TOPIC_CONNECTION, clientID, -1);
+ JBossSession session = new JBossSession(connection, false, false,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
+ JBossSession.TYPE_TOPIC_SESSION);
+
+ session.unsubscribe(subName);
+ }
+
+ public void testUnsubscribeWithUnknownSubscription() throws Exception
+ {
+ String clientID = randomString();
+ expect(mockClientConn.isClosed()).andReturn(false);
+ // isExists() will return false
+ SessionQueueQueryResponseMessage resp = new SessionQueueQueryResponseMessage();
+ expect(mockClientSession.queueQuery(isA(SimpleString.class))).andReturn(resp );
+ replay(mockClientConn, mockClientSession);
+
+ JBossConnection connection = new JBossConnection(mockClientConn,
+ JBossConnection.TYPE_TOPIC_CONNECTION, clientID, -1);
+ JBossSession session = new JBossSession(connection, false, false,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
+ JBossSession.TYPE_TOPIC_SESSION);
+
+ try
+ {
+ session.unsubscribe(randomString());
+ fail("can not unsubscribe from an unknown subscription");
+ } catch (InvalidDestinationException e)
+ {
+ }
+ }
+
+ public void testUnsubscribeWithActiveSubscribers() throws Exception
+ {
+ String clientID = randomString();
+ String subName = randomString();
+ SimpleString queueAddres = new SimpleString(JBossTopic.createQueueNameForDurableSubscription(clientID, subName));
+ int consumerCount = 1;
+ expect(mockClientConn.isClosed()).andReturn(false);
+
+ SessionQueueQueryResponseMessage resp = new SessionQueueQueryResponseMessage(true, false, 0, consumerCount, 0, null, queueAddres);
+ expect(mockClientSession.queueQuery(isA(SimpleString.class))).andReturn(resp );
+ replay(mockClientConn, mockClientSession);
+
+ JBossConnection connection = new JBossConnection(mockClientConn,
+ JBossConnection.TYPE_TOPIC_CONNECTION, clientID, -1);
+ JBossSession session = new JBossSession(connection, false, false,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
+ JBossSession.TYPE_TOPIC_SESSION);
+
+ try
+ {
+ session.unsubscribe(randomString());
+ fail("can not unsubscribe when there are active subscribers");
+ } catch (IllegalStateException e)
+ {
+ }
+ }
+
+ public void testUnsubscribeThrowsException() throws Exception
+ {
+ String clientID = randomString();
+ expect(mockClientConn.isClosed()).andReturn(false);
+
+ expect(mockClientSession.queueQuery(isA(SimpleString.class))).andThrow(new MessagingException());
+ replay(mockClientConn, mockClientSession);
+
+ JBossConnection connection = new JBossConnection(mockClientConn,
+ JBossConnection.TYPE_TOPIC_CONNECTION, clientID, -1);
+ JBossSession session = new JBossSession(connection, false, false,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
+ JBossSession.TYPE_TOPIC_SESSION);
+
+ try
+ {
+ session.unsubscribe(randomString());
+ fail("must throw a JMSException");
+ } catch (JMSException e)
+ {
+ }
+ }
+
+ public void testUnsubscribeFromQueueSession() throws Exception
+ {
+ String subName = randomString();
+ replay(mockClientConn, mockClientSession);
+
+ JBossConnection connection = new JBossConnection(mockClientConn,
+ JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
+ JBossSession session = new JBossSession(connection, false, false,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
+ JBossSession.TYPE_QUEUE_SESSION);
+
+ try
+ {
+ session.unsubscribe(subName);
+ fail("can not unsubscribe from a queue session");
+ } catch (IllegalStateException e)
+ {
+ }
+ }
+
+ // Package protected ---------------------------------------------
+
// Protected -----------------------------------------------------
// Private -------------------------------------------------------
@@ -1099,20 +1992,47 @@
private void doTestCreateMessage(MessageCreation creation)
throws JMSException
{
- ClientConnection clientConn = createStrictMock(ClientConnection.class);
- ClientSession clientSession = createStrictMock(ClientSession.class);
- expect(clientSession.isClosed()).andReturn(false);
- replay(clientConn, clientSession);
+ expect(mockClientSession.isClosed()).andReturn(false);
+ replay(mockClientConn, mockClientSession);
- JBossConnection connection = new JBossConnection(clientConn,
+ JBossConnection connection = new JBossConnection(mockClientConn,
JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
Session session = new JBossSession(connection, false, false,
- Session.AUTO_ACKNOWLEDGE, clientSession,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
JBossSession.TYPE_GENERIC_SESSION);
Message message = creation.createMessage(session);
assertNotNull(message);
+ }
- EasyMock.verify(clientConn, clientSession);
+ private void doTestCreateConsumerWithSelector(String selector,
+ SimpleString expectedSelector) throws Exception
+ {
+ JBossDestination destination = new JBossQueue(randomString());
+ ClientConsumer clientConsumer = createStrictMock(ClientConsumer.class);
+
+ // isExists() will return true
+ SessionQueueQueryResponseMessage resp = new SessionQueueQueryResponseMessage(
+ false, false, -1, -1, 1, null, destination.getSimpleAddress());
+ expect(mockClientSession.queueQuery(destination.getSimpleAddress()))
+ .andReturn(resp);
+ expect(
+ mockClientSession.createConsumer(destination.getSimpleAddress(),
+ expectedSelector, false, false, false)).andReturn(
+ clientConsumer);
+ expect(mockClientSession.isClosed()).andReturn(false);
+
+ replay(mockClientConn, mockClientSession, clientConsumer);
+
+ JBossConnection connection = new JBossConnection(mockClientConn,
+ JBossConnection.TYPE_QUEUE_CONNECTION, null, -1);
+ Session session = new JBossSession(connection, false, false,
+ Session.AUTO_ACKNOWLEDGE, mockClientSession,
+ JBossSession.TYPE_GENERIC_SESSION);
+
+ MessageConsumer consumer = session.createConsumer(destination, selector);
+ assertNotNull(consumer);
+
+ verify(clientConsumer);
}
// Inner classes -------------------------------------------------
More information about the jboss-cvs-commits
mailing list