From fbc287bd02a6bb91b709b798abfb859d8223fc43 Mon Sep 17 00:00:00 2001 From: Robert Godfrey Date: Tue, 23 Sep 2014 13:00:05 +0000 Subject: 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@1626995 13f79535-47bb-0310-9956-ffa450edef68 --- .../destination/AddressBasedDestinationTest.java | 39 ++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'qpid/java/systests/src') diff --git a/qpid/java/systests/src/test/java/org/apache/qpid/test/client/destination/AddressBasedDestinationTest.java b/qpid/java/systests/src/test/java/org/apache/qpid/test/client/destination/AddressBasedDestinationTest.java index 1161e8dd59..0458313a4c 100644 --- a/qpid/java/systests/src/test/java/org/apache/qpid/test/client/destination/AddressBasedDestinationTest.java +++ b/qpid/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: -- cgit v1.2.1