Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id BAEDF200B9D for ; Thu, 13 Oct 2016 20:29:31 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id B9950160AE4; Thu, 13 Oct 2016 18:29:31 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id DAE9E160AD2 for ; Thu, 13 Oct 2016 20:29:30 +0200 (CEST) Received: (qmail 73015 invoked by uid 500); 13 Oct 2016 18:29:29 -0000 Mailing-List: contact commits-help@activemq.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@activemq.apache.org Delivered-To: mailing list commits@activemq.apache.org Received: (qmail 73006 invoked by uid 99); 13 Oct 2016 18:29:29 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 13 Oct 2016 18:29:29 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 96F05E0381; Thu, 13 Oct 2016 18:29:29 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: tabish@apache.org To: commits@activemq.apache.org Message-Id: X-Mailer: ASF-Git Admin Mailer Subject: activemq git commit: NO-JIRA: Add some additional test variations and add some more checks Date: Thu, 13 Oct 2016 18:29:29 +0000 (UTC) archived-at: Thu, 13 Oct 2016 18:29:31 -0000 Repository: activemq Updated Branches: refs/heads/master f71e0ee15 -> 3e237ca73 NO-JIRA: Add some additional test variations and add some more checks Project: http://git-wip-us.apache.org/repos/asf/activemq/repo Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/3e237ca7 Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/3e237ca7 Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/3e237ca7 Branch: refs/heads/master Commit: 3e237ca73a9c9af18191ff4a23c456c1d427511e Parents: f71e0ee Author: Timothy Bish Authored: Thu Oct 13 14:29:13 2016 -0400 Committer: Timothy Bish Committed: Thu Oct 13 14:29:13 2016 -0400 ---------------------------------------------------------------------- .../amqp/interop/AmqpDurableReceiverTest.java | 122 +++++++++++++++++-- 1 file changed, 111 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/activemq/blob/3e237ca7/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpDurableReceiverTest.java ---------------------------------------------------------------------- diff --git a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpDurableReceiverTest.java b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpDurableReceiverTest.java index b016cc5..3db3301 100644 --- a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpDurableReceiverTest.java +++ b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpDurableReceiverTest.java @@ -1,4 +1,4 @@ -/** +/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -31,6 +31,7 @@ import org.apache.activemq.transport.amqp.client.AmqpClientTestSupport; import org.apache.activemq.transport.amqp.client.AmqpConnection; import org.apache.activemq.transport.amqp.client.AmqpReceiver; import org.apache.activemq.transport.amqp.client.AmqpSession; +import org.apache.qpid.proton.amqp.DescribedType; import org.apache.qpid.proton.amqp.messaging.Source; import org.apache.qpid.proton.amqp.messaging.TerminusDurability; import org.apache.qpid.proton.amqp.messaging.TerminusExpiryPolicy; @@ -42,6 +43,8 @@ import org.junit.Test; */ public class AmqpDurableReceiverTest extends AmqpClientTestSupport { + private final String SELECTOR_STRING = "color = red"; + @Override protected boolean isUseOpenWireConnector() { return true; @@ -244,6 +247,103 @@ public class AmqpDurableReceiverTest extends AmqpClientTestSupport { } @Test(timeout = 60000) + public void testLookupExistingSubscriptionWithSelector() throws Exception { + + final BrokerViewMBean brokerView = getProxyToBroker(); + + AmqpClient client = createAmqpClient(); + AmqpConnection connection = trackConnection(client.createConnection()); + connection.setContainerId(getTestName()); + connection.connect(); + + AmqpSession session = connection.createSession(); + AmqpReceiver receiver = session.createDurableReceiver("topic://" + getTestName(), getTestName(), SELECTOR_STRING); + + assertEquals(1, brokerView.getDurableTopicSubscribers().length); + assertEquals(0, brokerView.getInactiveDurableTopicSubscribers().length); + + receiver.detach(); + + assertEquals(0, brokerView.getDurableTopicSubscribers().length); + assertEquals(1, brokerView.getInactiveDurableTopicSubscribers().length); + + receiver = session.lookupSubscription(getTestName()); + + assertNotNull(receiver); + + Receiver protonReceiver = receiver.getReceiver(); + assertNotNull(protonReceiver.getRemoteSource()); + Source remoteSource = (Source) protonReceiver.getRemoteSource(); + + assertNotNull(remoteSource.getFilter()); + assertFalse(remoteSource.getFilter().containsKey(NO_LOCAL_NAME)); + assertTrue(remoteSource.getFilter().containsKey(JMS_SELECTOR_NAME)); + assertEquals(SELECTOR_STRING, ((DescribedType) remoteSource.getFilter().get(JMS_SELECTOR_NAME)).getDescribed()); + + assertEquals(TerminusExpiryPolicy.NEVER, remoteSource.getExpiryPolicy()); + assertEquals(TerminusDurability.UNSETTLED_STATE, remoteSource.getDurable()); + assertEquals(COPY, remoteSource.getDistributionMode()); + + assertEquals(1, brokerView.getDurableTopicSubscribers().length); + assertEquals(0, brokerView.getInactiveDurableTopicSubscribers().length); + + receiver.close(); + + assertEquals(0, brokerView.getDurableTopicSubscribers().length); + assertEquals(0, brokerView.getInactiveDurableTopicSubscribers().length); + + connection.close(); + } + + @Test(timeout = 60000) + public void testLookupExistingSubscriptionWithNoLocal() throws Exception { + + final BrokerViewMBean brokerView = getProxyToBroker(); + + AmqpClient client = createAmqpClient(); + AmqpConnection connection = trackConnection(client.createConnection()); + connection.setContainerId(getTestName()); + connection.connect(); + + AmqpSession session = connection.createSession(); + AmqpReceiver receiver = session.createDurableReceiver("topic://" + getTestName(), getTestName(), null, true); + + assertEquals(1, brokerView.getDurableTopicSubscribers().length); + assertEquals(0, brokerView.getInactiveDurableTopicSubscribers().length); + + receiver.detach(); + + assertEquals(0, brokerView.getDurableTopicSubscribers().length); + assertEquals(1, brokerView.getInactiveDurableTopicSubscribers().length); + + receiver = session.lookupSubscription(getTestName()); + + assertNotNull(receiver); + + Receiver protonReceiver = receiver.getReceiver(); + assertNotNull(protonReceiver.getRemoteSource()); + Source remoteSource = (Source) protonReceiver.getRemoteSource(); + + assertNotNull(remoteSource.getFilter()); + assertTrue(remoteSource.getFilter().containsKey(NO_LOCAL_NAME)); + assertFalse(remoteSource.getFilter().containsKey(JMS_SELECTOR_NAME)); + + assertEquals(TerminusExpiryPolicy.NEVER, remoteSource.getExpiryPolicy()); + assertEquals(TerminusDurability.UNSETTLED_STATE, remoteSource.getDurable()); + assertEquals(COPY, remoteSource.getDistributionMode()); + + assertEquals(1, brokerView.getDurableTopicSubscribers().length); + assertEquals(0, brokerView.getInactiveDurableTopicSubscribers().length); + + receiver.close(); + + assertEquals(0, brokerView.getDurableTopicSubscribers().length); + assertEquals(0, brokerView.getInactiveDurableTopicSubscribers().length); + + connection.close(); + } + + @Test(timeout = 60000) public void testLookupExistingSubscriptionWithSelectorAndNoLocal() throws Exception { final BrokerViewMBean brokerView = getProxyToBroker(); @@ -254,7 +354,7 @@ public class AmqpDurableReceiverTest extends AmqpClientTestSupport { connection.connect(); AmqpSession session = connection.createSession(); - AmqpReceiver receiver = session.createDurableReceiver("topic://" + getTestName(), getTestName(), "color = red", true); + AmqpReceiver receiver = session.createDurableReceiver("topic://" + getTestName(), getTestName(), SELECTOR_STRING, true); assertEquals(1, brokerView.getDurableTopicSubscribers().length); assertEquals(0, brokerView.getInactiveDurableTopicSubscribers().length); @@ -272,10 +372,10 @@ public class AmqpDurableReceiverTest extends AmqpClientTestSupport { assertNotNull(protonReceiver.getRemoteSource()); Source remoteSource = (Source) protonReceiver.getRemoteSource(); - if (remoteSource.getFilter() != null) { - assertTrue(remoteSource.getFilter().containsKey(NO_LOCAL_NAME)); - assertTrue(remoteSource.getFilter().containsKey(JMS_SELECTOR_NAME)); - } + assertNotNull(remoteSource.getFilter()); + assertTrue(remoteSource.getFilter().containsKey(NO_LOCAL_NAME)); + assertTrue(remoteSource.getFilter().containsKey(JMS_SELECTOR_NAME)); + assertEquals(SELECTOR_STRING, ((DescribedType) remoteSource.getFilter().get(JMS_SELECTOR_NAME)).getDescribed()); assertEquals(TerminusExpiryPolicy.NEVER, remoteSource.getExpiryPolicy()); assertEquals(TerminusDurability.UNSETTLED_STATE, remoteSource.getDurable()); @@ -303,7 +403,7 @@ public class AmqpDurableReceiverTest extends AmqpClientTestSupport { connection.connect(); AmqpSession session = connection.createSession(); - AmqpReceiver receiver = session.createDurableReceiver("topic://" + getTestName(), getTestName(), "color = red", true); + AmqpReceiver receiver = session.createDurableReceiver("topic://" + getTestName(), getTestName(), SELECTOR_STRING, true); assertEquals(1, brokerView.getDurableTopicSubscribers().length); assertEquals(0, brokerView.getInactiveDurableTopicSubscribers().length); @@ -328,10 +428,10 @@ public class AmqpDurableReceiverTest extends AmqpClientTestSupport { assertNotNull(protonReceiver.getRemoteSource()); Source remoteSource = (Source) protonReceiver.getRemoteSource(); - if (remoteSource.getFilter() != null) { - assertTrue(remoteSource.getFilter().containsKey(NO_LOCAL_NAME)); - assertTrue(remoteSource.getFilter().containsKey(JMS_SELECTOR_NAME)); - } + assertNotNull(remoteSource.getFilter()); + assertTrue(remoteSource.getFilter().containsKey(NO_LOCAL_NAME)); + assertTrue(remoteSource.getFilter().containsKey(JMS_SELECTOR_NAME)); + assertEquals(SELECTOR_STRING, ((DescribedType) remoteSource.getFilter().get(JMS_SELECTOR_NAME)).getDescribed()); assertEquals(TerminusExpiryPolicy.NEVER, remoteSource.getExpiryPolicy()); assertEquals(TerminusDurability.UNSETTLED_STATE, remoteSource.getDurable());