Add MQTT Test for MaxConsumer threshold
Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/be04eac3 Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/be04eac3 Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/be04eac3 Branch: refs/heads/ARTEMIS-780 Commit: be04eac33f1c4ad60438c01aa8282e857aa0b2d8 Parents: 1b89801 Author: Martyn Taylor <[email protected]> Authored: Tue Nov 1 11:40:29 2016 +0000 Committer: Clebert Suconic <[email protected]> Committed: Mon Nov 7 11:28:07 2016 -0500 ---------------------------------------------------------------------- .../integration/mqtt/imported/MQTTTest.java | 27 ++++++++++++++++++++ .../mqtt/imported/MQTTTestSupport.java | 4 +++ 2 files changed, 31 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/be04eac3/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/mqtt/imported/MQTTTest.java ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/mqtt/imported/MQTTTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/mqtt/imported/MQTTTest.java index b809df0..6406955 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/mqtt/imported/MQTTTest.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/mqtt/imported/MQTTTest.java @@ -22,6 +22,7 @@ import javax.jms.Destination; import javax.jms.MessageConsumer; import javax.jms.MessageProducer; import javax.jms.Session; +import java.io.EOFException; import java.lang.reflect.Field; import java.net.ProtocolException; import java.util.ArrayList; @@ -34,8 +35,10 @@ import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; import java.util.regex.Pattern; +import org.apache.activemq.artemis.api.core.SimpleString; import org.apache.activemq.artemis.core.protocol.mqtt.MQTTConnectionManager; import org.apache.activemq.artemis.core.protocol.mqtt.MQTTSession; +import org.apache.activemq.artemis.core.server.impl.AddressInfo; import org.apache.activemq.artemis.tests.integration.mqtt.imported.util.Wait; import org.fusesource.mqtt.client.BlockingConnection; import org.fusesource.mqtt.client.MQTT; @@ -1612,4 +1615,28 @@ public class MQTTTest extends MQTTTestSupport { connection.disconnect(); } + + @Test(timeout = 60 * 1000) + public void testClientDisconnectedOnMaxConsumerLimitReached() throws Exception { + Exception peerDisconnectedException = null; + try { + SimpleString coreAddress = new SimpleString("foo.bar"); + Topic[] mqttSubscription = new Topic[]{new Topic("foo/bar", QoS.AT_LEAST_ONCE)}; + + AddressInfo addressInfo = new AddressInfo(coreAddress); + addressInfo.setDefaultMaxConsumers(0); + getServer().createOrUpdateAddressInfo(addressInfo); + + MQTT mqtt = createMQTTConnection(); + mqtt.setClientId("test-mqtt"); + mqtt.setKeepAlive((short) 2); + final BlockingConnection connection = mqtt.blockingConnection(); + connection.connect(); + connection.subscribe(mqttSubscription); + } catch (EOFException e) { + peerDisconnectedException = e; + } + assertNotNull(peerDisconnectedException); + assertTrue(peerDisconnectedException.getMessage().contains("Peer disconnected")); + } } http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/be04eac3/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/mqtt/imported/MQTTTestSupport.java ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/mqtt/imported/MQTTTestSupport.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/mqtt/imported/MQTTTestSupport.java index 27ebde0..15cb8b6 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/mqtt/imported/MQTTTestSupport.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/mqtt/imported/MQTTTestSupport.java @@ -92,6 +92,10 @@ public class MQTTTestSupport extends ActiveMQTestBase { return name.getMethodName(); } + public ActiveMQServer getServer() { + return server; + } + @Override @Before public void setUp() throws Exception {
