diff options
| author | Keith Wall <kwall@apache.org> | 2014-09-03 08:14:55 +0000 |
|---|---|---|
| committer | Keith Wall <kwall@apache.org> | 2014-09-03 08:14:55 +0000 |
| commit | c314d42848570748b339a71303a8de8288cc2923 (patch) | |
| tree | cfc29a4e84d7c1371735136b10d9b39d44db51ab /qpid/java/systests/src | |
| parent | d67b476dcb97b16e784d0008f5c641132969ed51 (diff) | |
| download | qpid-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.java | 77 |
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()); + } + } + } |
