Repository: qpid-broker-j
Updated Branches:
  refs/heads/master c38f9eee2 -> 40a7fdbe4


QPID-8038: [Broker-J] [AMQP 0-8..0-91] Enhance queue bind tests


Project: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/commit/755dda5e
Tree: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/tree/755dda5e
Diff: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/diff/755dda5e

Branch: refs/heads/master
Commit: 755dda5ee33d28219094c373b9b042616bfd2531
Parents: c4fd686
Author: Keith Wall <[email protected]>
Authored: Thu Dec 28 19:52:25 2017 +0000
Committer: Keith Wall <[email protected]>
Committed: Thu Dec 28 19:56:19 2017 +0000

----------------------------------------------------------------------
 .../tests/protocol/v0_8/QueueInteraction.java   |  6 ++
 .../qpid/tests/protocol/v0_8/QueueTest.java     | 58 ++++++++++++++++++++
 2 files changed, 64 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/755dda5e/systests/protocol-tests-amqp-0-8/src/main/java/org/apache/qpid/tests/protocol/v0_8/QueueInteraction.java
----------------------------------------------------------------------
diff --git 
a/systests/protocol-tests-amqp-0-8/src/main/java/org/apache/qpid/tests/protocol/v0_8/QueueInteraction.java
 
b/systests/protocol-tests-amqp-0-8/src/main/java/org/apache/qpid/tests/protocol/v0_8/QueueInteraction.java
index cbf3a1a..3f8a4fc 100644
--- 
a/systests/protocol-tests-amqp-0-8/src/main/java/org/apache/qpid/tests/protocol/v0_8/QueueInteraction.java
+++ 
b/systests/protocol-tests-amqp-0-8/src/main/java/org/apache/qpid/tests/protocol/v0_8/QueueInteraction.java
@@ -165,6 +165,12 @@ public class QueueInteraction
         return this;
     }
 
+    public QueueInteraction bindArguments(final Map<String, Object> args)
+    {
+        _bindArguments = args == null ? Collections.emptyMap() : new 
HashMap<>(args);
+        return this;
+    }
+
     public Interaction bind() throws Exception
     {
         return _interaction.sendPerformative(new QueueBindBody(0,

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/755dda5e/systests/protocol-tests-amqp-0-8/src/test/java/org/apache/qpid/tests/protocol/v0_8/QueueTest.java
----------------------------------------------------------------------
diff --git 
a/systests/protocol-tests-amqp-0-8/src/test/java/org/apache/qpid/tests/protocol/v0_8/QueueTest.java
 
b/systests/protocol-tests-amqp-0-8/src/test/java/org/apache/qpid/tests/protocol/v0_8/QueueTest.java
index cdb2dd5..0ac0aeb 100644
--- 
a/systests/protocol-tests-amqp-0-8/src/test/java/org/apache/qpid/tests/protocol/v0_8/QueueTest.java
+++ 
b/systests/protocol-tests-amqp-0-8/src/test/java/org/apache/qpid/tests/protocol/v0_8/QueueTest.java
@@ -30,12 +30,15 @@ import static org.junit.Assume.assumeThat;
 
 import java.net.InetSocketAddress;
 import java.util.Collections;
+import java.util.Map;
 
 import org.hamcrest.Matchers;
 import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Test;
 
+import org.apache.qpid.server.exchange.ExchangeDefaults;
+import org.apache.qpid.server.filter.AMQPFilterTypes;
 import org.apache.qpid.server.protocol.ErrorCodes;
 import org.apache.qpid.server.protocol.v0_8.AMQShortString;
 import org.apache.qpid.server.protocol.v0_8.transport.BasicCancelOkBody;
@@ -51,6 +54,8 @@ import 
org.apache.qpid.server.protocol.v0_8.transport.QueueDeclareOkBody;
 import org.apache.qpid.server.protocol.v0_8.transport.QueueDeleteOkBody;
 import org.apache.qpid.server.protocol.v0_8.transport.QueuePurgeOkBody;
 import org.apache.qpid.server.protocol.v0_8.transport.QueueUnbindOkBody;
+import org.apache.qpid.server.protocol.v0_8.transport.TxCommitOkBody;
+import org.apache.qpid.server.protocol.v0_8.transport.TxSelectOkBody;
 import org.apache.qpid.tests.protocol.SpecificationTest;
 import org.apache.qpid.tests.utils.BrokerAdmin;
 import org.apache.qpid.tests.utils.BrokerAdminUsingTestBase;
@@ -836,4 +841,57 @@ public class QueueTest extends BrokerAdminUsingTestBase
             assertThat(response.getReplyCode(), 
is(equalTo(ErrorCodes.NOT_FOUND)));
         }
     }
+
+    /** Qpid specific extension */
+    @Test
+    public void topicExchangeInstancesAllowRebindWithDifferentArguments() 
throws Exception
+    {
+        getBrokerAdmin().createQueue(BrokerAdmin.TEST_QUEUE_NAME);
+
+        final String content = "content";
+        final String routingKey = "rk1";
+        try(FrameTransport transport = new 
FrameTransport(_brokerAddress).connect())
+        {
+            final Interaction interaction = transport.newInteraction();
+            final Map<String, Object> messageProps = 
Collections.singletonMap("prop", 0);
+            interaction.openAnonymousConnection()
+                       
.channel().open().consumeResponse(ChannelOpenOkBody.class)
+                       .tx().select()
+                       .consumeResponse(TxSelectOkBody.class)
+                       .queue()
+                       .bindName(ExchangeDefaults.TOPIC_EXCHANGE_NAME)
+                       .bindRoutingKey(routingKey)
+                       .bindQueueName(BrokerAdmin.TEST_QUEUE_NAME)
+                       
.bindArguments(Collections.singletonMap(AMQPFilterTypes.JMS_SELECTOR.getValue(),
 "prop = 1"))
+                       .bind()
+                       .consumeResponse(QueueBindOkBody.class)
+                       .basic()
+                       .publishExchange(ExchangeDefaults.TOPIC_EXCHANGE_NAME)
+                       .publishRoutingKey(routingKey)
+                       .content(content)
+                       .contentHeaderPropertiesHeaders(messageProps)
+                       .publishMessage()
+                       .tx().commit()
+                       .consumeResponse(TxCommitOkBody.class);
+
+            
assertThat(getBrokerAdmin().getQueueDepthMessages(BrokerAdmin.TEST_QUEUE_NAME), 
is(equalTo(0)));
+
+            interaction.queue()
+                       .bindName(ExchangeDefaults.TOPIC_EXCHANGE_NAME)
+                       .bindRoutingKey(routingKey)
+                       .bindQueueName(BrokerAdmin.TEST_QUEUE_NAME)
+                       
.bindArguments(Collections.singletonMap(AMQPFilterTypes.JMS_SELECTOR.getValue(),
 "prop = 0"))
+                       .bind()
+                       .consumeResponse(QueueBindOkBody.class)
+                       
.basic().publishExchange(ExchangeDefaults.TOPIC_EXCHANGE_NAME)
+                       .publishRoutingKey(routingKey)
+                       .content(content)
+                       .contentHeaderPropertiesHeaders(messageProps)
+                       .publishMessage()
+                       .tx().commit()
+                       .consumeResponse(TxCommitOkBody.class);
+
+            
assertThat(getBrokerAdmin().getQueueDepthMessages(BrokerAdmin.TEST_QUEUE_NAME), 
is(equalTo(1)));
+        }
+    }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to