broker/ServerIntegrationPahoTest: code formatter used

This commit is contained in:
Andreas Mager
2017-02-01 17:13:42 +01:00
parent 5823bdae46
commit dab5efea30
@@ -13,6 +13,7 @@
* *
* You may elect to redistribute this code under either of these licenses. * You may elect to redistribute this code under either of these licenses.
*/ */
package io.moquette.server; package io.moquette.server;
import io.moquette.server.config.IConfig; import io.moquette.server.config.IConfig;
@@ -22,11 +23,9 @@ import org.eclipse.paho.client.mqttv3.persist.MqttDefaultFilePersistence;
import org.junit.*; import org.junit.*;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.util.Properties; import java.util.Properties;
import static org.junit.Assert.*; import static org.junit.Assert.*;
public class ServerIntegrationPahoTest { public class ServerIntegrationPahoTest {
@@ -35,7 +34,7 @@ public class ServerIntegrationPahoTest {
static MqttClientPersistence s_dataStore; static MqttClientPersistence s_dataStore;
static MqttClientPersistence s_pubDataStore; static MqttClientPersistence s_pubDataStore;
Server m_server; Server m_server;
IMqttClient m_client; IMqttClient m_client;
IMqttClient m_publisher; IMqttClient m_publisher;
@@ -113,7 +112,6 @@ public class ServerIntegrationPahoTest {
assertEquals("/topic", m_messagesCollector.getTopic()); assertEquals("/topic", m_messagesCollector.getTopic());
} }
@Test @Test
public void testCleanSession_maintainClientSubscriptions() throws Exception { public void testCleanSession_maintainClientSubscriptions() throws Exception {
@@ -124,7 +122,7 @@ public class ServerIntegrationPahoTest {
m_client.subscribe("/topic", 0); m_client.subscribe("/topic", 0);
m_client.disconnect(); m_client.disconnect();
//reconnect and publish // reconnect and publish
MqttClient anotherClient = new MqttClient("tcp://localhost:1883", "TestClient", s_dataStore); MqttClient anotherClient = new MqttClient("tcp://localhost:1883", "TestClient", s_dataStore);
m_messagesCollector = new MessageCollector(); m_messagesCollector = new MessageCollector();
anotherClient.setCallback(m_messagesCollector); anotherClient.setCallback(m_messagesCollector);
@@ -134,7 +132,6 @@ public class ServerIntegrationPahoTest {
assertEquals("/topic", m_messagesCollector.getTopic()); assertEquals("/topic", m_messagesCollector.getTopic());
} }
@Test @Test
public void testCleanSession_maintainClientSubscriptions_againstClientDestruction() throws Exception { public void testCleanSession_maintainClientSubscriptions_againstClientDestruction() throws Exception {
LOG.info("*** testCleanSession_maintainClientSubscriptions_againstClientDestruction ***"); LOG.info("*** testCleanSession_maintainClientSubscriptions_againstClientDestruction ***");
@@ -144,7 +141,7 @@ public class ServerIntegrationPahoTest {
m_client.subscribe("/topic", 0); m_client.subscribe("/topic", 0);
m_client.disconnect(); m_client.disconnect();
//reconnect and publish // reconnect and publish
m_client.connect(options); m_client.connect(options);
m_client.publish("/topic", "Test my payload".getBytes(), 0, false); m_client.publish("/topic", "Test my payload".getBytes(), 0, false);
@@ -152,9 +149,9 @@ public class ServerIntegrationPahoTest {
} }
/** /**
* Check that after a client has connected with clean session false, subscribed * Check that after a client has connected with clean session false, subscribed to some topic
* to some topic and exited, if it reconnects with clean session true, the m_server * and exited, if it reconnects with clean session true, the m_server correctly cleanup every
* correctly cleanup every previous subscription * previous subscription
*/ */
@Test @Test
public void testCleanSession_correctlyClientSubscriptions() throws Exception { public void testCleanSession_correctlyClientSubscriptions() throws Exception {
@@ -165,17 +162,17 @@ public class ServerIntegrationPahoTest {
m_client.subscribe("/topic", 0); m_client.subscribe("/topic", 0);
m_client.disconnect(); m_client.disconnect();
//reconnect and publish // reconnect and publish
//options.setCleanSession(false); // options.setCleanSession(false);
m_client = new MqttClient("tcp://localhost:1883", "TestClient", s_dataStore); m_client = new MqttClient("tcp://localhost:1883", "TestClient", s_dataStore);
MessageCollector subListener = new MessageCollector(); MessageCollector subListener = new MessageCollector();
m_client.setCallback(subListener); m_client.setCallback(subListener);
m_client.connect(options); m_client.connect(options);
m_client.publish("/topic", "Test my payload".getBytes(), 0, false); m_client.publish("/topic", "Test my payload".getBytes(), 0, false);
//Ugly, we need to get self notified after the publish // Ugly, we need to get self notified after the publish
assertEquals("Test my payload", new String(subListener.waitMessage(1).getPayload())); assertEquals("Test my payload", new String(subListener.waitMessage(1).getPayload()));
//close // close
m_client.disconnect(); m_client.disconnect();
} }
@@ -192,7 +189,7 @@ public class ServerIntegrationPahoTest {
m_server.startServer(IntegrationUtils.prepareTestProperties()); m_server.startServer(IntegrationUtils.prepareTestProperties());
//reconnect and publish // reconnect and publish
m_client.connect(options); m_client.connect(options);
m_client.publish("/topic", "Test my payload".getBytes(), 0, false); m_client.publish("/topic", "Test my payload".getBytes(), 0, false);
@@ -206,7 +203,7 @@ public class ServerIntegrationPahoTest {
m_client.publish("/topic", "Test my payload".getBytes(), 1, true); m_client.publish("/topic", "Test my payload".getBytes(), 1, true);
m_client.disconnect(); m_client.disconnect();
//reconnect and publish // reconnect and publish
m_client.connect(); m_client.connect();
m_client.subscribe("/topic", 0); m_client.subscribe("/topic", 0);
@@ -221,7 +218,7 @@ public class ServerIntegrationPahoTest {
m_client.connect(options); m_client.connect(options);
m_client.subscribe("/topic", 0); m_client.subscribe("/topic", 0);
m_client.publish("/topic", "Test my payload".getBytes(), 0, false); m_client.publish("/topic", "Test my payload".getBytes(), 0, false);
//m_client.disconnect(); // m_client.disconnect();
assertEquals("/topic", m_messagesCollector.getTopic()); assertEquals("/topic", m_messagesCollector.getTopic());
m_client.unsubscribe("/topic"); m_client.unsubscribe("/topic");
@@ -239,7 +236,7 @@ public class ServerIntegrationPahoTest {
m_client.connect(options); m_client.connect(options);
m_client.subscribe("/topic", 0); m_client.subscribe("/topic", 0);
m_client.publish("/topic", "Test my payload".getBytes(), 0, false); m_client.publish("/topic", "Test my payload".getBytes(), 0, false);
//m_client.disconnect(); // m_client.disconnect();
assertEquals("/topic", m_messagesCollector.getTopic()); assertEquals("/topic", m_messagesCollector.getTopic());
m_client.unsubscribe("/topic"); m_client.unsubscribe("/topic");
@@ -260,7 +257,7 @@ public class ServerIntegrationPahoTest {
m_client.publish("/topic", "Hello MQTT".getBytes(), 1, false); m_client.publish("/topic", "Hello MQTT".getBytes(), 1, false);
m_client.disconnect(); m_client.disconnect();
//reconnect and publish // reconnect and publish
MqttMessage message = m_messagesCollector.waitMessage(1); MqttMessage message = m_messagesCollector.waitMessage(1);
assertEquals("Hello MQTT", message.toString()); assertEquals("Hello MQTT", message.toString());
assertEquals(1, message.getQos()); assertEquals(1, message.getQos());
@@ -275,7 +272,7 @@ public class ServerIntegrationPahoTest {
m_client.subscribe("/topic", 1); m_client.subscribe("/topic", 1);
m_client.disconnect(); m_client.disconnect();
//publish a QoS 1 message another client publish a message on the topic // publish a QoS 1 message another client publish a message on the topic
publishFromAnotherClient("/topic", "Hello MQTT".getBytes(), 1); publishFromAnotherClient("/topic", "Hello MQTT".getBytes(), 1);
m_client.connect(options); m_client.connect(options);
@@ -283,7 +280,6 @@ public class ServerIntegrationPahoTest {
assertEquals("Hello MQTT", m_messagesCollector.waitMessage(1).toString()); assertEquals("Hello MQTT", m_messagesCollector.waitMessage(1).toString());
} }
@Test @Test
public void checkReceivePublishedMessage_after_a_reconnect_with_notCleanSession() throws Exception { public void checkReceivePublishedMessage_after_a_reconnect_with_notCleanSession() throws Exception {
LOG.info("*** checkReceivePublishedMessage_after_a_reconnect_with_notCleanSession ***"); LOG.info("*** checkReceivePublishedMessage_after_a_reconnect_with_notCleanSession ***");
@@ -296,10 +292,10 @@ public class ServerIntegrationPahoTest {
m_client.connect(options); m_client.connect(options);
m_client.subscribe("/topic", 1); m_client.subscribe("/topic", 1);
//publish a QoS 1 message another client publish a message on the topic // publish a QoS 1 message another client publish a message on the topic
publishFromAnotherClient("/topic", "Hello MQTT".getBytes(), 1); publishFromAnotherClient("/topic", "Hello MQTT".getBytes(), 1);
//Verify that after a reconnection the client receive the message // Verify that after a reconnection the client receive the message
MqttMessage message = m_messagesCollector.waitMessage(1); MqttMessage message = m_messagesCollector.waitMessage(1);
assertNotNull(message); assertNotNull(message);
assertEquals("Hello MQTT", message.toString()); assertEquals("Hello MQTT", message.toString());
@@ -321,7 +317,7 @@ public class ServerIntegrationPahoTest {
m_client.subscribe("/topic", 2); m_client.subscribe("/topic", 2);
m_client.disconnect(); m_client.disconnect();
//publish a QoS 1 message another client publish a message on the topic // publish a QoS 1 message another client publish a message on the topic
publishFromAnotherClient("/topic", "Hello MQTT".getBytes(), 2); publishFromAnotherClient("/topic", "Hello MQTT".getBytes(), 2);
m_messagesCollector.reinit(); m_messagesCollector.reinit();
m_client.connect(options); m_client.connect(options);
@@ -340,7 +336,7 @@ public class ServerIntegrationPahoTest {
m_client.subscribe("/topic", 2); m_client.subscribe("/topic", 2);
m_client.disconnect(); m_client.disconnect();
//publish a QoS 2 message another client publish a message on the topic // publish a QoS 2 message another client publish a message on the topic
publishFromAnotherClient("/topic", "Hello MQTT".getBytes(), 2); publishFromAnotherClient("/topic", "Hello MQTT".getBytes(), 2);
m_messagesCollector.reinit(); m_messagesCollector.reinit();
m_client.connect(options); m_client.connect(options);
@@ -370,10 +366,10 @@ public class ServerIntegrationPahoTest {
assertEquals("Hello MQTT 1", message.toString()); assertEquals("Hello MQTT 1", message.toString());
m_client.disconnect(); m_client.disconnect();
//publish other message // publish other message
publishFromAnotherClient("/topic", "Hello MQTT 2".getBytes(), 1); publishFromAnotherClient("/topic", "Hello MQTT 2".getBytes(), 1);
//reconnect the second time // reconnect the second time
m_messagesCollector.reinit(); m_messagesCollector.reinit();
m_client.connect(options); m_client.connect(options);
assertNotNull(m_messagesCollector); assertNotNull(m_messagesCollector);
@@ -383,11 +379,9 @@ public class ServerIntegrationPahoTest {
} }
/** /**
* subscriber A connect and subscribe on "a/b" QoS 1 * subscriber A connect and subscribe on "a/b" QoS 1 subscriber B connect and subscribe on "a/+"
* subscriber B connect and subscribe on "a/+" BUT with QoS 2 * BUT with QoS 2 publisher connects and send a message "hello" on "a/b" subscriber A must
* publisher connects and send a message "hello" on "a/b" * receive a notification with QoS1 subscriber B must receive a notification with QoS2
* subscriber A must receive a notification with QoS1
* subscriber B must receive a notification with QoS2
*/ */
@Test @Test
public void checkSubscribersGetCorrectQosNotifications() throws Exception { public void checkSubscribersGetCorrectQosNotifications() throws Exception {
@@ -410,7 +404,6 @@ public class ServerIntegrationPahoTest {
subscriberB.connect(); subscriberB.connect();
subscriberB.subscribe("a/+", 2); subscriberB.subscribe("a/+", 2);
m_client.connect(); m_client.connect();
m_client.publish("a/b", "Hello world MQTT!!".getBytes(), 2, false); m_client.publish("a/b", "Hello world MQTT!!".getBytes(), 2, false);
@@ -429,8 +422,9 @@ public class ServerIntegrationPahoTest {
public void testSubcriptionDoesntStayActiveAfterARestart() throws Exception { public void testSubcriptionDoesntStayActiveAfterARestart() throws Exception {
LOG.info("*** testSubcriptionDoesntStayActiveAfterARestart ***"); LOG.info("*** testSubcriptionDoesntStayActiveAfterARestart ***");
String tmpDir = System.getProperty("java.io.tmpdir"); String tmpDir = System.getProperty("java.io.tmpdir");
//clientForSubscribe1 connect and subscribe to /topic QoS2 // clientForSubscribe1 connect and subscribe to /topic QoS2
MqttClientPersistence dsSubscriberA = new MqttDefaultFilePersistence(tmpDir + File.separator + "clientForSubscribe1"); MqttClientPersistence dsSubscriberA = new MqttDefaultFilePersistence(
tmpDir + File.separator + "clientForSubscribe1");
MqttClient clientForSubscribe1 = new MqttClient("tcp://localhost:1883", "clientForSubscribe1", dsSubscriberA); MqttClient clientForSubscribe1 = new MqttClient("tcp://localhost:1883", "clientForSubscribe1", dsSubscriberA);
MessageCollector cbSubscriber1 = new MessageCollector(); MessageCollector cbSubscriber1 = new MessageCollector();
@@ -438,27 +432,29 @@ public class ServerIntegrationPahoTest {
clientForSubscribe1.connect(); clientForSubscribe1.connect();
clientForSubscribe1.subscribe("topic", 0); clientForSubscribe1.subscribe("topic", 0);
//server stop // server stop
m_server.stopServer(); m_server.stopServer();
System.out.println("\n\n SEVER REBOOTING \n\n"); System.out.println("\n\n SEVER REBOOTING \n\n");
//server start // server start
startServer(); startServer();
//clientForSubscribe2 connect and subscribe to /topic QoS2 // clientForSubscribe2 connect and subscribe to /topic QoS2
MqttClientPersistence dsSubscriberB = new MqttDefaultFilePersistence(tmpDir + File.separator + "clientForSubscribe2"); MqttClientPersistence dsSubscriberB = new MqttDefaultFilePersistence(
tmpDir + File.separator + "clientForSubscribe2");
MqttClient clientForSubscribe2 = new MqttClient("tcp://localhost:1883", "clientForSubscribe2", dsSubscriberB); MqttClient clientForSubscribe2 = new MqttClient("tcp://localhost:1883", "clientForSubscribe2", dsSubscriberB);
MessageCollector cbSubscriber2 = new MessageCollector(); MessageCollector cbSubscriber2 = new MessageCollector();
clientForSubscribe2.setCallback(cbSubscriber2); clientForSubscribe2.setCallback(cbSubscriber2);
clientForSubscribe2.connect(); clientForSubscribe2.connect();
clientForSubscribe2.subscribe("topic", 0); clientForSubscribe2.subscribe("topic", 0);
//clientForPublish publish on /topic with QoS2 a message // clientForPublish publish on /topic with QoS2 a message
MqttClientPersistence dsSubscriberPUB = new MqttDefaultFilePersistence(tmpDir + File.separator + "clientForPublish"); MqttClientPersistence dsSubscriberPUB = new MqttDefaultFilePersistence(
tmpDir + File.separator + "clientForPublish");
MqttClient clientForPublish = new MqttClient("tcp://localhost:1883", "clientForPublish", dsSubscriberPUB); MqttClient clientForPublish = new MqttClient("tcp://localhost:1883", "clientForPublish", dsSubscriberPUB);
clientForPublish.connect(); clientForPublish.connect();
clientForPublish.publish("topic", "Hello".getBytes(), 2, true); clientForPublish.publish("topic", "Hello".getBytes(), 2, true);
//verify clientForSubscribe1 doesn't receive a notification but clientForSubscribe2 yes // verify clientForSubscribe1 doesn't receive a notification but clientForSubscribe2 yes
LOG.info("Before waiting to receive 1 sec from " + clientForSubscribe1.getClientId()); LOG.info("Before waiting to receive 1 sec from " + clientForSubscribe1.getClientId());
assertFalse(clientForSubscribe1.isConnected()); assertFalse(clientForSubscribe1.isConnected());
assertTrue(clientForSubscribe2.isConnected()); assertTrue(clientForSubscribe2.isConnected());
@@ -490,7 +486,7 @@ public class ServerIntegrationPahoTest {
MqttClient clientYB = createClient("publisher", "Y"); MqttClient clientYB = createClient("publisher", "Y");
clientYB.publish("topic", "Hello 2".getBytes(), 2, true); clientYB.publish("topic", "Hello 2".getBytes(), 2, true);
//Verify that the second subscriber client get notified and not the first. // Verify that the second subscriber client get notified and not the first.
assertTrue(cbSubscriber1.connectionLost()); assertTrue(cbSubscriber1.connectionLost());
assertEquals("Hello 2", new String(cbSubscriber2.waitMessage(1).getPayload())); assertEquals("Hello 2", new String(cbSubscriber2.waitMessage(1).getPayload()));
} }
@@ -505,11 +501,11 @@ public class ServerIntegrationPahoTest {
m_client.publish("/topic", "Hello".getBytes(), 0, true); m_client.publish("/topic", "Hello".getBytes(), 0, true);
m_client.disconnect(); m_client.disconnect();
//second loop // second loop
m_client.connect(options); m_client.connect(options);
m_client.subscribe("/topic", 0); m_client.subscribe("/topic", 0);
m_client.publish("/topic", "Hello".getBytes(), 0, true); m_client.publish("/topic", "Hello".getBytes(), 0, true);
m_client.disconnect(); //this should give timeout m_client.disconnect(); // this should give timeout
assertFalse("after a disconnect the client should be disconnected", m_client.isConnected()); assertFalse("after a disconnect the client should be disconnected", m_client.isConnected());
} }
@@ -517,8 +513,8 @@ public class ServerIntegrationPahoTest {
@Test @Test
public void checkReplayofStoredPublishResumeAfter_a_disconnect_cleanSessionFalseQoS1() throws Exception { public void checkReplayofStoredPublishResumeAfter_a_disconnect_cleanSessionFalseQoS1() throws Exception {
LOG.info("*** checkReplayofStoredPublishResumeAfter_a_disconnect_cleanSessionFalseQoS1 ***"); LOG.info("*** checkReplayofStoredPublishResumeAfter_a_disconnect_cleanSessionFalseQoS1 ***");
// MessageCollector m_messagesCollector = new MessageCollector(); // MessageCollector m_messagesCollector = new MessageCollector();
// m_client.setCallback(m_messagesCollector); // m_client.setCallback(m_messagesCollector);
m_publisher.connect(); m_publisher.connect();
MqttConnectOptions options = new MqttConnectOptions(); MqttConnectOptions options = new MqttConnectOptions();
@@ -526,10 +522,10 @@ public class ServerIntegrationPahoTest {
m_client.connect(options); m_client.connect(options);
m_client.subscribe("/topic", 1); m_client.subscribe("/topic", 1);
//force the publisher to send // force the publisher to send
m_publisher.publish("/topic", "Hello world MQTT!!-1".getBytes(), 1, false); m_publisher.publish("/topic", "Hello world MQTT!!-1".getBytes(), 1, false);
//read the first message and drop the connection // read the first message and drop the connection
MqttMessage msg = m_messagesCollector.waitMessage(1); MqttMessage msg = m_messagesCollector.waitMessage(1);
assertEquals("Hello world MQTT!!-1", new String(msg.getPayload())); assertEquals("Hello world MQTT!!-1", new String(msg.getPayload()));
m_client.disconnect(); m_client.disconnect();
@@ -537,7 +533,7 @@ public class ServerIntegrationPahoTest {
m_publisher.publish("/topic", "Hello world MQTT!!-2".getBytes(), 1, false); m_publisher.publish("/topic", "Hello world MQTT!!-2".getBytes(), 1, false);
m_publisher.publish("/topic", "Hello world MQTT!!-3".getBytes(), 1, false); m_publisher.publish("/topic", "Hello world MQTT!!-3".getBytes(), 1, false);
//reconnect and expect to receive the hello 2 message // reconnect and expect to receive the hello 2 message
m_client.connect(options); m_client.connect(options);
msg = m_messagesCollector.waitMessage(1); msg = m_messagesCollector.waitMessage(1);
assertEquals("Hello world MQTT!!-2", new String(msg.getPayload())); assertEquals("Hello world MQTT!!-2", new String(msg.getPayload()));
@@ -560,10 +556,10 @@ public class ServerIntegrationPahoTest {
m_client.subscribe("/topic", 1); m_client.subscribe("/topic", 1);
m_client.disconnect(); m_client.disconnect();
//force the publisher to send // force the publisher to send
m_publisher.publish("/topic", "Hello world MQTT!!-1".getBytes(), 1, false); m_publisher.publish("/topic", "Hello world MQTT!!-1".getBytes(), 1, false);
//reconnect and expect to receive the hello 2 message // reconnect and expect to receive the hello 2 message
m_client.connect(options); m_client.connect(options);
m_client.subscribe("/topic", 1); m_client.subscribe("/topic", 1);
MqttMessage msg = messagesCollector.waitMessage(1); MqttMessage msg = messagesCollector.waitMessage(1);
@@ -572,10 +568,9 @@ public class ServerIntegrationPahoTest {
} }
/** /**
* subscriber connect and subscribe on "topic" * subscriber connect and subscribe on "topic" subscriber disconnects publisher connects and
* subscriber disconnects * send two message "hello1" "hello2" to "topic" subscriber connects again and receive "hello1"
* publisher connects and send two message "hello1" "hello2" to "topic" * "hello2"
* subscriber connects again and receive "hello1" "hello2"
*/ */
@Test @Test
public void checkQoS2SubscriberDisconnectReceivePersistedPublishes() throws Exception { public void checkQoS2SubscriberDisconnectReceivePersistedPublishes() throws Exception {
@@ -593,9 +588,9 @@ public class ServerIntegrationPahoTest {
m_publisher.publish("topic", "Hello2".getBytes(), 2, true); m_publisher.publish("topic", "Hello2".getBytes(), 2, true);
m_publisher.disconnect(); m_publisher.disconnect();
//subscriber reconnects // subscriber reconnects
m_client.connect(options); m_client.connect(options);
//subscriber should receive the 2 messages missed // subscriber should receive the 2 messages missed
MqttMessage msg = messagesCollector.waitMessage(1); MqttMessage msg = messagesCollector.waitMessage(1);
assertNotNull(msg); assertNotNull(msg);
assertEquals("Hello1", new String(msg.getPayload())); assertEquals("Hello1", new String(msg.getPayload()));
@@ -605,9 +600,8 @@ public class ServerIntegrationPahoTest {
} }
/** /**
* subscriber connect and subscribe on "a/b" QoS 1 and "a/+" QoS 2 * subscriber connect and subscribe on "a/b" QoS 1 and "a/+" QoS 2 publisher connects and send a
* publisher connects and send a message "hello" on "a/b" * message "hello" on "a/b" subscriber must receive only a single message not twice
* subscriber must receive only a single message not twice
*/ */
@Test @Test
public void checkSinglePublishOnOverlappingSubscriptions() throws Exception { public void checkSinglePublishOnOverlappingSubscriptions() throws Exception {
@@ -622,27 +616,27 @@ public class ServerIntegrationPahoTest {
m_client.subscribe("a/+", 2); m_client.subscribe("a/+", 2);
m_client.subscribe("a/b", 1); m_client.subscribe("a/b", 1);
//force the publisher to send // force the publisher to send
m_publisher.publish("a/b", "Hello world MQTT!!".getBytes(), 1, false); m_publisher.publish("a/b", "Hello world MQTT!!".getBytes(), 1, false);
//reconnect and expect to receive the hello 2 message // reconnect and expect to receive the hello 2 message
MqttMessage msg = messagesCollector.waitMessage(1); MqttMessage msg = messagesCollector.waitMessage(1);
assertEquals("Hello world MQTT!!", new String(msg.getPayload())); assertEquals("Hello world MQTT!!", new String(msg.getPayload()));
//try to listen a second publish // try to listen a second publish
msg = messagesCollector.waitMessage(1); msg = messagesCollector.waitMessage(1);
assertNull(msg); assertNull(msg);
} }
protected MqttClient createClient(String clientName, String storeSuffix) throws MqttException { protected MqttClient createClient(String clientName, String storeSuffix) throws MqttException {
return createClient(clientName, storeSuffix, null); return createClient(clientName, storeSuffix, null);
} }
protected MqttClient createClient(String clientName, String storeSuffix, MessageCollector cb) throws MqttException { protected MqttClient createClient(String clientName, String storeSuffix, MessageCollector cb) throws MqttException {
String tmpDir = System.getProperty("java.io.tmpdir"); String tmpDir = System.getProperty("java.io.tmpdir");
//clientX connect and subscribe to /topic QoS2 // clientX connect and subscribe to /topic QoS2
MqttClientPersistence dsClient = new MqttDefaultFilePersistence(tmpDir + File.separator + storeSuffix + clientName); MqttClientPersistence dsClient = new MqttDefaultFilePersistence(
tmpDir + File.separator + storeSuffix + clientName);
MqttClient client = new MqttClient("tcp://localhost:1883", clientName, dsClient); MqttClient client = new MqttClient("tcp://localhost:1883", clientName, dsClient);
if (cb != null) { if (cb != null) {
client.setCallback(cb); client.setCallback(cb);