summaryrefslogtreecommitdiff
path: root/java/client/src/test
diff options
context:
space:
mode:
authorRajith Muditha Attapattu <rajith@apache.org>2012-10-12 17:17:41 +0000
committerRajith Muditha Attapattu <rajith@apache.org>2012-10-12 17:17:41 +0000
commit9fa42896bf3b21eb31534d193c0caa0802448e55 (patch)
tree72de43d56fb5f0879993548ca5f52060c82c9000 /java/client/src/test
parentbfc00675eb62dd9cc92942cb12c3a9db0e416668 (diff)
downloadqpid-python-9fa42896bf3b21eb31534d193c0caa0802448e55.tar.gz
QPID-3317 Modified the code to implement correct behavior for link
bindings. Added unit tests for Address Helper and two specific test cases for verifying link behavior (bindings and customization of subscription queues). Review request : https://reviews.apache.org/r/7412/ git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1397651 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/client/src/test')
-rw-r--r--java/client/src/test/java/org/apache/qpid/client/messaging/address/AddressHelperTest.java126
1 files changed, 126 insertions, 0 deletions
diff --git a/java/client/src/test/java/org/apache/qpid/client/messaging/address/AddressHelperTest.java b/java/client/src/test/java/org/apache/qpid/client/messaging/address/AddressHelperTest.java
new file mode 100644
index 0000000000..a602dcbfd4
--- /dev/null
+++ b/java/client/src/test/java/org/apache/qpid/client/messaging/address/AddressHelperTest.java
@@ -0,0 +1,126 @@
+package org.apache.qpid.client.messaging.address;
+
+import org.apache.qpid.client.AMQDestination;
+import org.apache.qpid.client.AMQDestination.AddressOption;
+import org.apache.qpid.client.AMQDestination.Binding;
+import org.apache.qpid.client.messaging.address.Link.Reliability;
+import org.apache.qpid.messaging.Address;
+import org.apache.qpid.test.utils.QpidTestCase;
+
+public class AddressHelperTest extends QpidTestCase
+{
+ public void testAddressOptions() throws Exception
+ {
+ Address addr = Address.parse("queue/test;{create:sender, assert:always, delete:receiver, mode:browse}");
+ AddressHelper helper = new AddressHelper(addr);
+ assertEquals(AddressOption.SENDER,AddressOption.getOption(helper.getCreate()));
+ assertEquals(AddressOption.ALWAYS,AddressOption.getOption(helper.getAssert()));
+ assertEquals(AddressOption.RECEIVER,AddressOption.getOption(helper.getDelete()));
+ assertTrue("'mode' option wasn't read properly",helper.isBrowseOnly());
+ }
+
+ public void testNodeProperties() throws Exception
+ {
+ Address addr = Address.parse("my-queue;{" +
+ "node: " +
+ "{" +
+ "type: queue ," +
+ "durable: true ," +
+ "x-declare: " +
+ "{" +
+ "exclusive: true," +
+ "auto-delete: true," +
+ "alternate-exchange: 'amq.fanout'," +
+ "arguments: {" +
+ "'qpid.max_size': 1000," +
+ "'qpid.max_count': 100" +
+ "}" +
+ "}, " +
+ "x-bindings: [{exchange : 'amq.direct', queue:my-queue, key : test}, " +
+ "{exchange : 'amq.fanout', queue:my-queue}," +
+ "{exchange: 'amq.match', queue:my-queue, arguments: {x-match: any, dep: sales, loc: CA}}," +
+ "{exchange : 'amq.topic',queue:my-queue, key : 'a.#'}" +
+ "]" +
+
+ "}" +
+ "}");
+ AddressHelper helper = new AddressHelper(addr);
+ Node node = helper.getNode();
+ assertEquals("'type' property wasn't read properly",AMQDestination.QUEUE_TYPE,helper.getNodeType());
+ assertTrue("'durable' property wasn't read properly",node.isDurable());
+ assertTrue("'auto-delete' property wasn't read properly",node.isAutoDelete());
+ assertTrue("'exclusive' property wasn't read properly",node.isExclusive());
+ assertEquals("'alternate-exchange' property wasn't read properly","amq.fanout",node.getAlternateExchange());
+ assertEquals("'arguments' in 'x-declare' property wasn't read properly",2,node.getDeclareArgs().size());
+ assertEquals("'bindings' property wasn't read properly",4,node.getBindings().size());
+ for (Binding binding: node.getBindings())
+ {
+ assertTrue("property 'exchange' in bindings wasn't read properly",binding.getExchange().startsWith("amq."));
+ assertEquals("property 'queue' in bindings wasn't read properly","my-queue",binding.getQueue());
+ if (binding.getExchange().equals("amq.direct"))
+ {
+ assertEquals("'key' property in bindings wasn't read properly","test",binding.getBindingKey());
+ }
+ if (binding.getExchange().equals("amq.match"))
+ {
+ assertEquals("'arguments' property in bindings wasn't read properly",3,binding.getArgs().size());
+ }
+ }
+ }
+
+ public void testLinkProperties() throws Exception
+ {
+ Address addr = Address.parse("my-queue;{" +
+ "link: " +
+ "{" +
+ "name: my-queue ," +
+ "durable: true ," +
+ "reliability: at-least-once," +
+ "capacity: {source:10, target:15}," +
+ "x-declare: " +
+ "{" +
+ "exclusive: true," +
+ "auto-delete: true," +
+ "alternate-exchange: 'amq.fanout'," +
+ "arguments: {" +
+ "'qpid.max_size': 1000," +
+ "'qpid.max_count': 100" +
+ "}" +
+ "}, " +
+ "x-bindings: [{exchange : 'amq.direct', queue:my-queue, key : test}, " +
+ "{exchange : 'amq.fanout', queue:my-queue}," +
+ "{exchange: 'amq.match', queue:my-queue, arguments: {x-match: any, dep: sales, loc: CA}}," +
+ "{exchange : 'amq.topic',queue:my-queue, key : 'a.#'}" +
+ "]," +
+ "x-subscribes:{exclusive: true, arguments: {a:b,x:y}}" +
+ "}" +
+ "}");
+
+ AddressHelper helper = new AddressHelper(addr);
+ Link link = helper.getLink();
+ assertEquals("'name' property wasn't read properly","my-queue",link.getName());
+ assertTrue("'durable' property wasn't read properly",link.isDurable());
+ assertEquals("'reliability' property wasn't read properly",Reliability.AT_LEAST_ONCE,link.getReliability());
+ assertTrue("'auto-delete' property in 'x-declare' wasn't read properly",link.getSubscriptionQueue().isAutoDelete());
+ assertTrue("'exclusive' property in 'x-declare' wasn't read properly",link.getSubscriptionQueue().isExclusive());
+ assertEquals("'alternate-exchange' property in 'x-declare' wasn't read properly","amq.fanout",link.getSubscriptionQueue().getAlternateExchange());
+ assertEquals("'arguments' in 'x-declare' property wasn't read properly",2,link.getSubscriptionQueue().getDeclareArgs().size());
+ assertEquals("'bindings' property wasn't read properly",4,link.getBindings().size());
+ for (Binding binding: link.getBindings())
+ {
+ assertTrue("property 'exchange' in bindings wasn't read properly",binding.getExchange().startsWith("amq."));
+ assertEquals("property 'queue' in bindings wasn't read properly","my-queue",binding.getQueue());
+ if (binding.getExchange().equals("amq.direct"))
+ {
+ assertEquals("'key' property in bindings wasn't read properly","test",binding.getBindingKey());
+ }
+ if (binding.getExchange().equals("amq.match"))
+ {
+ assertEquals("'arguments' property in bindings wasn't read properly",3,binding.getArgs().size());
+ }
+ }
+ assertTrue("'exclusive' property in 'x-subscribe' wasn't read properly",link.getSubscription().isExclusive());
+ assertEquals("'arguments' in 'x-subscribe' property wasn't read properly",2,link.getSubscription().getArgs().size());
+ }
+
+}