summaryrefslogtreecommitdiff
path: root/java/systests/src
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2014-09-23 13:00:05 +0000
committerRobert Godfrey <rgodfrey@apache.org>2014-09-23 13:00:05 +0000
commite78cd3d73d0ce9407ead5a9f91f9cb771affac52 (patch)
treef6881bcc5816e324d3c1f0c0c6e60a26f1742271 /java/systests/src
parent822f0622694b341b44845e798c058990a9f69b8d (diff)
downloadqpid-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.java39
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: