summaryrefslogtreecommitdiff
path: root/qpid/java/systests/src
diff options
context:
space:
mode:
authorKeith Wall <kwall@apache.org>2014-09-03 08:14:55 +0000
committerKeith Wall <kwall@apache.org>2014-09-03 08:14:55 +0000
commitc314d42848570748b339a71303a8de8288cc2923 (patch)
treecfc29a4e84d7c1371735136b10d9b39d44db51ab /qpid/java/systests/src
parentd67b476dcb97b16e784d0008f5c641132969ed51 (diff)
downloadqpid-python-c314d42848570748b339a71303a8de8288cc2923.tar.gz
QPID-6066: [Java Client] 0-8..0-9-1 only - Add system property to allow call to exchange.bound during AMQSession#getQueueDepth to be omitted
This prevents interoperabiliy problem with older Java Brokers, and gives users a change to restore old behaviour (AMQChannelException in the event that the queue does not exist) if desired. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1622176 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/systests/src')
-rw-r--r--qpid/java/systests/src/test/java/org/apache/qpid/test/unit/client/AMQSessionTest.java77
1 files changed, 56 insertions, 21 deletions
diff --git a/qpid/java/systests/src/test/java/org/apache/qpid/test/unit/client/AMQSessionTest.java b/qpid/java/systests/src/test/java/org/apache/qpid/test/unit/client/AMQSessionTest.java
index 0d81b66be0..d6ec3794d9 100644
--- a/qpid/java/systests/src/test/java/org/apache/qpid/test/unit/client/AMQSessionTest.java
+++ b/qpid/java/systests/src/test/java/org/apache/qpid/test/unit/client/AMQSessionTest.java
@@ -20,19 +20,23 @@
*/
package org.apache.qpid.test.unit.client;
+import org.apache.qpid.AMQChannelClosedException;
+import org.apache.qpid.AMQException;
import org.apache.qpid.client.AMQConnection;
+import org.apache.qpid.client.AMQDestination;
import org.apache.qpid.client.AMQQueue;
import org.apache.qpid.client.AMQSession;
+import org.apache.qpid.client.AMQSession_0_8;
import org.apache.qpid.client.AMQTopic;
+import org.apache.qpid.configuration.ClientProperties;
+import org.apache.qpid.protocol.AMQConstant;
import org.apache.qpid.test.utils.QpidBrokerTestCase;
import javax.jms.JMSException;
import javax.jms.QueueReceiver;
import javax.jms.TopicSubscriber;
-/**
- * Tests for QueueReceiver and TopicSubscriber creation methods on AMQSession
- */
+
public class AMQSessionTest extends QpidBrokerTestCase
{
@@ -44,23 +48,10 @@ public class AMQSessionTest extends QpidBrokerTestCase
protected void setUp() throws Exception
{
super.setUp();
- _connection = (AMQConnection) getConnection("guest", "guest");
- _topic = new AMQTopic(_connection,"mytopic");
- _queue = new AMQQueue(_connection,"myqueue");
- _session = (AMQSession) _connection.createSession(false, AMQSession.NO_ACKNOWLEDGE);
- }
-
- protected void tearDown() throws Exception
- {
- try
- {
- _connection.close();
- }
- catch (JMSException e)
- {
- //just close
- }
- super.tearDown();
+ _connection = (AMQConnection) getConnection();
+ _topic = new AMQTopic(_connection, "mytopic");
+ _queue = new AMQQueue(_connection, "myqueue");
+ _session = (AMQSession) _connection.createSession(true, AMQSession.SESSION_TRANSACTED);
}
public void testCreateSubscriber() throws JMSException
@@ -69,7 +60,9 @@ public class AMQSessionTest extends QpidBrokerTestCase
assertEquals("Topic names should match from TopicSubscriber", _topic.getTopicName(), subscriber.getTopic().getTopicName());
subscriber = _session.createSubscriber(_topic, "abc", false);
- assertEquals("Topic names should match from TopicSubscriber with selector", _topic.getTopicName(), subscriber.getTopic().getTopicName());
+ assertEquals("Topic names should match from TopicSubscriber with selector",
+ _topic.getTopicName(),
+ subscriber.getTopic().getTopicName());
}
public void testCreateDurableSubscriber() throws JMSException
@@ -101,4 +94,46 @@ public class AMQSessionTest extends QpidBrokerTestCase
assertEquals("Queue names should match from QueueReceiver with selector", _queue.getQueueName(), receiver.getQueue().getQueueName());
}
+ public void testQueueDepthForQueueWithDepth() throws Exception
+ {
+ AMQDestination dest = (AMQDestination) _session.createQueue(getTestQueueName());
+ _session.createConsumer(dest).close();
+
+ long depth = _session.getQueueDepth(dest);
+ assertEquals("Unexpected queue depth for empty queue", 0 , depth);
+
+ sendMessage(_session, dest, 1);
+
+ depth = _session.getQueueDepth(dest);
+ assertEquals("Unexpected queue depth for empty queue", 1, depth);
+ }
+
+ public void testQueueDepthForQueueThatDoesNotExist() throws Exception
+ {
+ AMQDestination dest = (AMQDestination) _session.createQueue(getTestQueueName());
+
+ long depth = _session.getQueueDepth(dest);
+ assertEquals("Unexpected queue depth for non-existent queue", 0 , depth);
+ }
+
+ public void testQueueDepthForQueueThatDoesNotExistLegacyBehaviour_08_091() throws Exception
+ {
+ _session.close();
+
+ setTestClientSystemProperty(ClientProperties.QPID_USE_LEGACY_GETQUEUEDEPTH_BEHAVIOUR, "true");
+ _session = (AMQSession) _connection.createSession(true, AMQSession.SESSION_TRANSACTED);
+
+ AMQDestination dest = (AMQDestination) _session.createQueue(getTestQueueName());
+
+ try
+ {
+ _session.getQueueDepth(dest);
+ fail("Exception not thrown");
+ }
+ catch(AMQChannelClosedException cce)
+ {
+ assertEquals(AMQConstant.NOT_FOUND, cce.getErrorCode());
+ }
+ }
+
}