diff options
author | Robert Godfrey <rgodfrey@apache.org> | 2014-09-23 13:00:05 +0000 |
---|---|---|
committer | Robert Godfrey <rgodfrey@apache.org> | 2014-09-23 13:00:05 +0000 |
commit | e78cd3d73d0ce9407ead5a9f91f9cb771affac52 (patch) | |
tree | f6881bcc5816e324d3c1f0c0c6e60a26f1742271 /java/systests/src | |
parent | 822f0622694b341b44845e798c058990a9f69b8d (diff) | |
download | qpid-python-e78cd3d73d0ce9407ead5a9f91f9cb771affac52.tar.gz |
QPID-3678 : [Java Client] Add support for setting link capacity to zero in ADDR addresses
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1626995 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/systests/src')
-rw-r--r-- | java/systests/src/test/java/org/apache/qpid/test/client/destination/AddressBasedDestinationTest.java | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/java/systests/src/test/java/org/apache/qpid/test/client/destination/AddressBasedDestinationTest.java b/java/systests/src/test/java/org/apache/qpid/test/client/destination/AddressBasedDestinationTest.java index 1161e8dd59..0458313a4c 100644 --- a/java/systests/src/test/java/org/apache/qpid/test/client/destination/AddressBasedDestinationTest.java +++ b/java/systests/src/test/java/org/apache/qpid/test/client/destination/AddressBasedDestinationTest.java @@ -454,6 +454,45 @@ public class AddressBasedDestinationTest extends QpidBrokerTestCase checkQueueForBindings(jmsSession,dest2,headersBinding); } + public void testZeroCapacityForSynchronousReceive() throws Exception + { + Session session1 = _connection.createSession(false, Session.AUTO_ACKNOWLEDGE); + Session session2 = _connection.createSession(false, Session.AUTO_ACKNOWLEDGE); + String addressString = "ADDR:my-queue; {create: always, link:{capacity: 0}}"; + Queue session1queue = session1.createQueue(addressString); + Queue session2queue = session1.createQueue(addressString); + MessageConsumer consumer1 = session1.createConsumer(session1queue); + MessageConsumer consumer1withSelector = session1.createConsumer(session1queue, "key1 = 1"); + MessageConsumer consumer2withSelector = session2.createConsumer(session2queue, "key2 = 2"); + + _connection.start(); + + MessageProducer producer = session1.createProducer(session1queue); + + Message m = session1.createMessage(); + m.setIntProperty("key1", 1); + m.setIntProperty("key2", 2); + producer.send(m); + + m = session1.createMessage(); + m.setIntProperty("key1", 1); + producer.send(m); + + m = session1.createMessage(); + producer.send(m); + + m = session1.createMessage(); + m.setIntProperty("key2", 2); + producer.send(m); + + assertNotNull("First message from queue should be received",consumer1withSelector.receive(1000l)); + assertNotNull("Last message on queue should be received", consumer2withSelector.receive(1000l)); + assertNotNull("Second message from queue should be received", consumer1.receive(1000l)); + assertNull("Only message remaining shouldn't match selector",consumer1withSelector.receive(500l)); + assertNotNull("Should have been one message remaining on queue",consumer1.receive(1000l)); + assertNull("No messages should be remaining on queue",consumer1.receive(500l)); + } + /** * Test goal: Verifies the capacity property in address string is handled properly. * Test strategy: |