Add STOMP-MQTT cross protocol tests
Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/8507a5c6 Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/8507a5c6 Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/8507a5c6 Branch: refs/heads/master Commit: 8507a5c6f0487bf6e0d36880d9a4d459ec421fca Parents: e453aae Author: Martyn Taylor <[email protected]> Authored: Wed May 25 20:32:03 2016 +0100 Committer: Clebert Suconic <[email protected]> Committed: Wed May 25 15:37:20 2016 -0400 ---------------------------------------------------------------------- .../tests/integration/stomp/StompTest.java | 57 +++++++++++++++++++- .../tests/integration/stomp/StompTestBase.java | 2 + 2 files changed, 58 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/8507a5c6/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/stomp/StompTest.java ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/stomp/StompTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/stomp/StompTest.java index 2ad2b9d..81b5511 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/stomp/StompTest.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/stomp/StompTest.java @@ -33,9 +33,11 @@ import java.util.regex.Pattern; import org.apache.activemq.artemis.api.core.SimpleString; import org.apache.activemq.artemis.api.core.management.ResourceNames; import org.apache.activemq.artemis.api.jms.ActiveMQJMSClient; +import org.apache.activemq.artemis.core.protocol.stomp.Stomp; import org.apache.activemq.artemis.tests.integration.IntegrationTestLogger; +import org.apache.activemq.artemis.tests.integration.mqtt.imported.FuseMQTTClientProvider; +import org.apache.activemq.artemis.tests.integration.mqtt.imported.MQTTClientProvider; import org.apache.activemq.artemis.utils.RandomUtil; -import org.apache.activemq.artemis.core.protocol.stomp.Stomp; import org.junit.Assert; import org.junit.Test; @@ -146,6 +148,59 @@ public class StompTest extends StompTestBase { } @Test + public void sendSTOMPReceiveMQTT() throws Exception { + String address = "myTestAddress"; + + // Set up MQTT Subscription + MQTTClientProvider clientProvider = new FuseMQTTClientProvider(); + clientProvider.connect("tcp://localhost:61616"); + clientProvider.subscribe(address, 0); + + String stompPayload = "This is a test message"; + + // Set up STOMP connection and send STOMP Message + String frame = "CONNECT\n" + "login: brianm\n" + "passcode: wombats\n\n" + Stomp.NULL; + sendFrame(frame); + + frame = "SEND\n" + "destination:" + address + "\n\n" + stompPayload + Stomp.NULL; + sendFrame(frame); + + // Recieve MQTT Message + byte[] mqttPayload = clientProvider.receive(10000); + clientProvider.disconnect(); + + assertEquals(stompPayload, new String(mqttPayload, "UTF-8")); + clientProvider.disconnect(); + } + + @Test + public void sendMQTTReceiveSTOMP() throws Exception { + String address = "myTestAddress"; + String payload = "This is a test message"; + + server.getActiveMQServer().createQueue(new SimpleString(address), new SimpleString(address), null, false, false); + + // Set up STOMP subscription + String frame = "CONNECT\n" + "login: brianm\n" + "passcode: wombats\n\n" + Stomp.NULL; + sendFrame(frame); + + frame = "SUBSCRIBE\n" + "destination:" + address + "\n" + "ack:auto\n\n" + Stomp.NULL; + sendFrame(frame); + receiveFrame(1000); + + // Send MQTT Message + MQTTClientProvider clientProvider = new FuseMQTTClientProvider(); + clientProvider.connect("tcp://localhost:61616"); + clientProvider.publish(address, payload.getBytes(), 0); + clientProvider.disconnect(); + + // Receive STOMP Message + frame = receiveFrame(1000); + assertTrue(frame.contains(payload)); + + } + + @Test public void testSendMessageToNonExistentQueue() throws Exception { String nonExistentQueue = RandomUtil.randomString(); String frame = "CONNECT\n" + "login: brianm\n" + "passcode: wombats\n\n" + Stomp.NULL; http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/8507a5c6/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/stomp/StompTestBase.java ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/stomp/StompTestBase.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/stomp/StompTestBase.java index 4e024ed..827bf68 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/stomp/StompTestBase.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/stomp/StompTestBase.java @@ -183,8 +183,10 @@ public abstract class StompTestBase extends ActiveMQTestBase { params.put(TransportConstants.PORT_PROP_NAME, TransportConstants.DEFAULT_STOMP_PORT); params.put(TransportConstants.STOMP_CONSUMERS_CREDIT, "-1"); TransportConfiguration stompTransport = new TransportConfiguration(NettyAcceptorFactory.class.getName(), params); + TransportConfiguration allTransport = new TransportConfiguration(NettyAcceptorFactory.class.getName()); Configuration config = createBasicConfig().setPersistenceEnabled(false).addAcceptorConfiguration(stompTransport).addAcceptorConfiguration(new TransportConfiguration(InVMAcceptorFactory.class.getName())); + config.addAcceptorConfiguration(allTransport); ActiveMQServer activeMQServer = addServer(ActiveMQServers.newActiveMQServer(config, defUser, defPass));
