You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ta...@apache.org on 2016/06/16 20:00:16 UTC

activemq git commit: Add some additional tests for dynamic sender / receiver links

Repository: activemq
Updated Branches:
  refs/heads/master 9ac5f8347 -> 27d955501


Add some additional tests for dynamic sender / receiver links

Project: http://git-wip-us.apache.org/repos/asf/activemq/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/27d95550
Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/27d95550
Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/27d95550

Branch: refs/heads/master
Commit: 27d955501febd1357d3f3e5dfd4695272616ca55
Parents: 9ac5f83
Author: Timothy Bish <ta...@gmail.com>
Authored: Thu Jun 16 15:59:56 2016 -0400
Committer: Timothy Bish <ta...@gmail.com>
Committed: Thu Jun 16 15:59:56 2016 -0400

----------------------------------------------------------------------
 .../amqp/interop/AmqpTempDestinationTest.java   | 107 +++++++++++++++++++
 1 file changed, 107 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq/blob/27d95550/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpTempDestinationTest.java
----------------------------------------------------------------------
diff --git a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpTempDestinationTest.java b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpTempDestinationTest.java
index ea68639..900d01f 100644
--- a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpTempDestinationTest.java
+++ b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpTempDestinationTest.java
@@ -25,11 +25,13 @@ import static org.junit.Assert.fail;
 
 import java.util.HashMap;
 import java.util.Map;
+import java.util.concurrent.TimeUnit;
 
 import org.apache.activemq.broker.jmx.BrokerViewMBean;
 import org.apache.activemq.transport.amqp.client.AmqpClient;
 import org.apache.activemq.transport.amqp.client.AmqpClientTestSupport;
 import org.apache.activemq.transport.amqp.client.AmqpConnection;
+import org.apache.activemq.transport.amqp.client.AmqpMessage;
 import org.apache.activemq.transport.amqp.client.AmqpReceiver;
 import org.apache.activemq.transport.amqp.client.AmqpSender;
 import org.apache.activemq.transport.amqp.client.AmqpSession;
@@ -248,6 +250,111 @@ public class AmqpTempDestinationTest extends AmqpClientTestSupport {
         connection.close();
     }
 
+    @Test(timeout = 60000)
+    public void TestCreateDynamicQueueSenderAndPublish() throws Exception {
+        doTestCreateDynamicSenderAndPublish(false);
+    }
+
+    @Test(timeout = 60000)
+    public void TestCreateDynamicTopicSenderAndPublish() throws Exception {
+        doTestCreateDynamicSenderAndPublish(true);
+    }
+
+    protected void doTestCreateDynamicSenderAndPublish(boolean topic) throws Exception {
+        Target target = createDynamicTarget(topic);
+
+        final BrokerViewMBean brokerView = getProxyToBroker();
+
+        AmqpClient client = createAmqpClient();
+        AmqpConnection connection = client.connect();
+        AmqpSession session = connection.createSession();
+
+        AmqpSender sender = session.createSender(target);
+        assertNotNull(sender);
+
+        if (topic) {
+            assertEquals(1, brokerView.getTemporaryTopics().length);
+        } else {
+            assertEquals(1, brokerView.getTemporaryQueues().length);
+        }
+
+        // Get the new address
+        String address = sender.getSender().getRemoteTarget().getAddress();
+        LOG.info("New dynamic sender address -> {}", address);
+
+        // Create a message and send to a receive that is listening on the newly
+        // created dynamic link address.
+        AmqpMessage message = new AmqpMessage();
+        message.setMessageId("msg-1");
+        message.setText("Test-Message");
+
+        AmqpReceiver receiver = session.createReceiver(address);
+        receiver.flow(1);
+
+        sender.send(message);
+
+        AmqpMessage received = receiver.receive(5, TimeUnit.SECONDS);
+        assertNotNull("Should have read a message", received);
+        received.accept();
+
+        receiver.close();
+        sender.close();
+
+        connection.close();
+    }
+
+    @Test(timeout = 60000)
+    public void testCreateDynamicReceiverToTopicAndSend() throws Exception {
+        doTestCreateDynamicSender(true);
+    }
+
+    @Test(timeout = 60000)
+    public void testCreateDynamicReceiverToQueueAndSend() throws Exception {
+        doTestCreateDynamicSender(false);
+    }
+
+    protected void doTestCreateDynamicReceiverAndSend(boolean topic) throws Exception {
+        Source source = createDynamicSource(topic);
+
+        final BrokerViewMBean brokerView = getProxyToBroker();
+
+        AmqpClient client = createAmqpClient();
+        AmqpConnection connection = client.connect();
+        AmqpSession session = connection.createSession();
+
+        AmqpReceiver receiver = session.createReceiver(source);
+        assertNotNull(receiver);
+
+        if (topic) {
+            assertEquals(1, brokerView.getTemporaryTopics().length);
+        } else {
+            assertEquals(1, brokerView.getTemporaryQueues().length);
+        }
+
+        // Get the new address
+        String address = receiver.getReceiver().getRemoteSource().getAddress();
+        LOG.info("New dynamic receiver address -> {}", address);
+
+        // Create a message and send to a receive that is listening on the newly
+        // created dynamic link address.
+        AmqpMessage message = new AmqpMessage();
+        message.setMessageId("msg-1");
+        message.setText("Test-Message");
+
+        AmqpSender sender = session.createSender(address);
+        sender.send(message);
+
+        receiver.flow(1);
+        AmqpMessage received = receiver.receive(5, TimeUnit.SECONDS);
+        assertNotNull("Should have read a message", received);
+        received.accept();
+
+        sender.close();
+        receiver.close();
+
+        connection.close();
+    }
+
     protected Source createDynamicSource(boolean topic) {
 
         Source source = new Source();