Switched from Moquette's MQTT codec to Netty's MQTT codec ones
This commit is contained in:
@@ -15,10 +15,11 @@
|
||||
*/
|
||||
package io.moquette.server;
|
||||
|
||||
import io.moquette.parser.proto.messages.AbstractMessage.QOSType;
|
||||
import io.moquette.parser.proto.messages.PublishMessage;
|
||||
import io.moquette.server.netty.MessageBuilder;
|
||||
import io.moquette.server.config.IConfig;
|
||||
import io.moquette.server.config.MemoryConfig;
|
||||
import io.netty.handler.codec.mqtt.MqttPublishMessage;
|
||||
import io.netty.handler.codec.mqtt.MqttQoS;
|
||||
import org.eclipse.paho.client.mqttv3.*;
|
||||
import org.eclipse.paho.client.mqttv3.persist.MqttDefaultFilePersistence;
|
||||
import org.junit.After;
|
||||
@@ -30,7 +31,6 @@ import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.util.Properties;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
@@ -88,13 +88,14 @@ public class ServerIntegrationEmbeddedPublishTest {
|
||||
m_subscriber.subscribe(topic, qos);
|
||||
}
|
||||
|
||||
private void internalPublishToWithQosAndRetained(String topic, QOSType qos, boolean retained) {
|
||||
PublishMessage message = new PublishMessage();
|
||||
message.setTopicName(topic);
|
||||
message.setRetainFlag(retained);
|
||||
message.setQos(qos);
|
||||
message.setPayload(ByteBuffer.wrap("Hello world MQTT!!".getBytes()));
|
||||
m_server.internalPublish(message);
|
||||
private void internalPublishToWithQosAndRetained(String topic, MqttQoS qos, boolean retained) {
|
||||
MqttPublishMessage message = MessageBuilder.publish()
|
||||
.topicName(topic)
|
||||
.retained(retained)
|
||||
.qos(qos)
|
||||
.payload("Hello world MQTT!!".getBytes())
|
||||
.build();
|
||||
m_server.internalPublish(message, "INTRPUBL");
|
||||
}
|
||||
|
||||
private void connectNoCleanSession() throws Exception {
|
||||
@@ -109,13 +110,13 @@ public class ServerIntegrationEmbeddedPublishTest {
|
||||
}
|
||||
|
||||
private void verifyNoMessageIsReceived() throws Exception {
|
||||
MqttMessage msg = m_callback.getMessage(false);
|
||||
MqttMessage msg = m_callback.getMessageImmediate();
|
||||
assertNull(msg);
|
||||
}
|
||||
|
||||
private void verifyMessageIsReceivedSuccessfully() throws Exception {
|
||||
//check in 2 seconds
|
||||
MqttMessage msg = m_callback.getMessage(2);
|
||||
MqttMessage msg = m_callback.waitMessage(2);
|
||||
assertNotNull(msg);
|
||||
assertEquals("Hello world MQTT!!", new String(msg.getPayload()));
|
||||
}
|
||||
@@ -125,7 +126,7 @@ public class ServerIntegrationEmbeddedPublishTest {
|
||||
LOG.info("*** testClientSubscribeAfterNotRetainedQoS0IsSent ***");
|
||||
|
||||
//Exercise
|
||||
internalPublishToWithQosAndRetained("/topic", QOSType.MOST_ONE, false);
|
||||
internalPublishToWithQosAndRetained("/topic", MqttQoS.AT_MOST_ONCE, false);
|
||||
subscribeToWithQos("/topic", 0);
|
||||
|
||||
//Verify
|
||||
@@ -139,7 +140,7 @@ public class ServerIntegrationEmbeddedPublishTest {
|
||||
subscribeToWithQos("/topic", 0);
|
||||
|
||||
//Exercise
|
||||
internalPublishToWithQosAndRetained("/topic", QOSType.MOST_ONE, false);
|
||||
internalPublishToWithQosAndRetained("/topic", MqttQoS.AT_MOST_ONCE, false);
|
||||
|
||||
//Verify
|
||||
verifyMessageIsReceivedSuccessfully();
|
||||
@@ -152,7 +153,7 @@ public class ServerIntegrationEmbeddedPublishTest {
|
||||
subscribeToWithQos("/topic", 0);
|
||||
|
||||
//Exercise
|
||||
internalPublishToWithQosAndRetained("/topic", QOSType.MOST_ONE, true);
|
||||
internalPublishToWithQosAndRetained("/topic", MqttQoS.AT_MOST_ONCE, true);
|
||||
|
||||
//Verify
|
||||
verifyMessageIsReceivedSuccessfully();
|
||||
@@ -163,7 +164,7 @@ public class ServerIntegrationEmbeddedPublishTest {
|
||||
LOG.info("*** testClientSubscribeAfterRetainedQoS0IsSent ***");
|
||||
|
||||
//Exercise
|
||||
internalPublishToWithQosAndRetained("/topic", QOSType.MOST_ONE, true);
|
||||
internalPublishToWithQosAndRetained("/topic", MqttQoS.AT_MOST_ONCE, true);
|
||||
//LOG.info("** post internalPublish **");
|
||||
subscribeToWithQos("/topic", 0);
|
||||
|
||||
@@ -178,7 +179,7 @@ public class ServerIntegrationEmbeddedPublishTest {
|
||||
subscribeToWithQos("/topic", 1);
|
||||
|
||||
//Exercise
|
||||
internalPublishToWithQosAndRetained("/topic", QOSType.LEAST_ONE, false);
|
||||
internalPublishToWithQosAndRetained("/topic", MqttQoS.AT_LEAST_ONCE, false);
|
||||
|
||||
//Verify
|
||||
verifyMessageIsReceivedSuccessfully();
|
||||
@@ -189,7 +190,7 @@ public class ServerIntegrationEmbeddedPublishTest {
|
||||
LOG.info("*** testClientSubscribeAfterNotRetainedQoS1IsSent ***");
|
||||
|
||||
//Exercise
|
||||
internalPublishToWithQosAndRetained("/topic", QOSType.LEAST_ONE, false);
|
||||
internalPublishToWithQosAndRetained("/topic", MqttQoS.AT_LEAST_ONCE, false);
|
||||
subscribeToWithQos("/topic", 1);
|
||||
|
||||
//Verify
|
||||
@@ -203,7 +204,7 @@ public class ServerIntegrationEmbeddedPublishTest {
|
||||
subscribeToWithQos("/topic", 1);
|
||||
|
||||
//Exercise
|
||||
internalPublishToWithQosAndRetained("/topic", QOSType.LEAST_ONE, true);
|
||||
internalPublishToWithQosAndRetained("/topic", MqttQoS.AT_LEAST_ONCE, true);
|
||||
|
||||
//Verify
|
||||
verifyMessageIsReceivedSuccessfully();
|
||||
@@ -214,8 +215,8 @@ public class ServerIntegrationEmbeddedPublishTest {
|
||||
LOG.info("*** testClientSubscribeAfterRetainedQoS0IsSent ***");
|
||||
|
||||
//Exercise
|
||||
internalPublishToWithQosAndRetained("/topic", QOSType.LEAST_ONE, true);
|
||||
subscribeToWithQos("/topic", 1);
|
||||
internalPublishToWithQosAndRetained("/topic", MqttQoS.AT_LEAST_ONCE, true);
|
||||
subscribeToWithQos("/topic", MqttQoS.AT_LEAST_ONCE.value());
|
||||
LOG.info("** After subscribe **");
|
||||
|
||||
//Verify
|
||||
@@ -230,7 +231,7 @@ public class ServerIntegrationEmbeddedPublishTest {
|
||||
subscribeToWithQos("/topic", 2);
|
||||
|
||||
//Exercise
|
||||
internalPublishToWithQosAndRetained("/topic", QOSType.EXACTLY_ONCE, false);
|
||||
internalPublishToWithQosAndRetained("/topic", MqttQoS.EXACTLY_ONCE, false);
|
||||
|
||||
//Verify
|
||||
verifyMessageIsReceivedSuccessfully();
|
||||
@@ -241,7 +242,7 @@ public class ServerIntegrationEmbeddedPublishTest {
|
||||
LOG.info("*** testClientSubscribeAfterNotRetainedQoS2IsSent ***");
|
||||
|
||||
//Exercise
|
||||
internalPublishToWithQosAndRetained("/topic", QOSType.EXACTLY_ONCE, false);
|
||||
internalPublishToWithQosAndRetained("/topic", MqttQoS.EXACTLY_ONCE, false);
|
||||
subscribeToWithQos("/topic", 2);
|
||||
|
||||
//Verify
|
||||
@@ -255,7 +256,7 @@ public class ServerIntegrationEmbeddedPublishTest {
|
||||
subscribeToWithQos("/topic", 2);
|
||||
|
||||
//Exercise
|
||||
internalPublishToWithQosAndRetained("/topic", QOSType.EXACTLY_ONCE, true);
|
||||
internalPublishToWithQosAndRetained("/topic", MqttQoS.EXACTLY_ONCE, true);
|
||||
|
||||
//Verify
|
||||
verifyMessageIsReceivedSuccessfully();
|
||||
@@ -266,7 +267,7 @@ public class ServerIntegrationEmbeddedPublishTest {
|
||||
LOG.info("*** testClientSubscribeAfterRetainedQoS2IsSent ***");
|
||||
|
||||
//Exercise
|
||||
internalPublishToWithQosAndRetained("/topic", QOSType.EXACTLY_ONCE, true);
|
||||
internalPublishToWithQosAndRetained("/topic", MqttQoS.EXACTLY_ONCE, true);
|
||||
subscribeToWithQos("/topic", 2);
|
||||
|
||||
//Verify
|
||||
@@ -280,11 +281,11 @@ public class ServerIntegrationEmbeddedPublishTest {
|
||||
subscribeToWithQos("foo", 0);
|
||||
m_subscriber.disconnect();
|
||||
|
||||
internalPublishToWithQosAndRetained("foo", QOSType.MOST_ONE, false);
|
||||
internalPublishToWithQosAndRetained("foo", MqttQoS.AT_MOST_ONCE, false);
|
||||
|
||||
//verifyMessageIsReceivedSuccessfully();
|
||||
//m_subscriber.receive(2, TimeUnit.MILLISECONDS);
|
||||
MqttMessage message = m_callback.getMessage(true);
|
||||
MqttMessage message = m_callback.waitMessage(1);
|
||||
assertTrue(message == null);
|
||||
}
|
||||
|
||||
@@ -296,7 +297,7 @@ public class ServerIntegrationEmbeddedPublishTest {
|
||||
assertTrue(m_server.getSubscriptions().size() == 1);
|
||||
connectNoCleanSession();
|
||||
assertTrue(m_server.getSubscriptions().size() == 1);
|
||||
internalPublishToWithQosAndRetained("foo", QOSType.MOST_ONE, false);
|
||||
internalPublishToWithQosAndRetained("foo", MqttQoS.AT_MOST_ONCE, false);
|
||||
verifyMessageIsReceivedSuccessfully();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user