broker/ProtocolProcessor_CONNECT_Test: code formatter used
This commit is contained in:
@@ -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.spi.impl;
|
package io.moquette.spi.impl;
|
||||||
|
|
||||||
import io.moquette.server.netty.MessageBuilder;
|
import io.moquette.server.netty.MessageBuilder;
|
||||||
@@ -30,12 +31,10 @@ import io.netty.handler.codec.mqtt.MqttSubscribeMessage;
|
|||||||
import io.netty.handler.codec.mqtt.MqttVersion;
|
import io.netty.handler.codec.mqtt.MqttVersion;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import static io.moquette.spi.impl.NettyChannelAssertions.assertEqualsConnAck;
|
import static io.moquette.spi.impl.NettyChannelAssertions.assertEqualsConnAck;
|
||||||
import static io.moquette.spi.impl.NettyChannelAssertions.assertEqualsSubAck;
|
import static io.moquette.spi.impl.NettyChannelAssertions.assertEqualsSubAck;
|
||||||
import static io.netty.handler.codec.mqtt.MqttConnectReturnCode.*;
|
import static io.netty.handler.codec.mqtt.MqttConnectReturnCode.*;
|
||||||
@@ -59,9 +58,7 @@ public class ProtocolProcessor_CONNECT_Test {
|
|||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() throws InterruptedException {
|
public void setUp() throws InterruptedException {
|
||||||
connMsg = MessageBuilder.connect()
|
connMsg = MessageBuilder.connect().protocolVersion(MqttVersion.MQTT_3_1).cleanSession(true);
|
||||||
.protocolVersion(MqttVersion.MQTT_3_1)
|
|
||||||
.cleanSession(true);
|
|
||||||
|
|
||||||
m_session = new EmbeddedChannel();
|
m_session = new EmbeddedChannel();
|
||||||
|
|
||||||
@@ -82,8 +79,14 @@ public class ProtocolProcessor_CONNECT_Test {
|
|||||||
subscriptions = new SubscriptionsStore();
|
subscriptions = new SubscriptionsStore();
|
||||||
subscriptions.init(m_sessionStore);
|
subscriptions.init(m_sessionStore);
|
||||||
m_processor = new ProtocolProcessor();
|
m_processor = new ProtocolProcessor();
|
||||||
m_processor.init(subscriptions, m_messagesStore, m_sessionStore, m_mockAuthenticator, true,
|
m_processor.init(
|
||||||
new PermitAllAuthorizator(), ProtocolProcessorTest.NO_OBSERVERS_INTERCEPTOR);
|
subscriptions,
|
||||||
|
m_messagesStore,
|
||||||
|
m_sessionStore,
|
||||||
|
m_mockAuthenticator,
|
||||||
|
true,
|
||||||
|
new PermitAllAuthorizator(),
|
||||||
|
ProtocolProcessorTest.NO_OBSERVERS_INTERCEPTOR);
|
||||||
}
|
}
|
||||||
|
|
||||||
// @Test
|
// @Test
|
||||||
@@ -111,12 +114,8 @@ public class ProtocolProcessor_CONNECT_Test {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testWill() {
|
public void testWill() {
|
||||||
MqttConnectMessage msg = connMsg
|
MqttConnectMessage msg = connMsg.clientId(ProtocolProcessorTest.FAKE_CLIENT_ID).willFlag(true)
|
||||||
.clientId(ProtocolProcessorTest.FAKE_CLIENT_ID)
|
.willTopic("topic").willMessage("Topic message").build();
|
||||||
.willFlag(true)
|
|
||||||
.willTopic("topic")
|
|
||||||
.willMessage("Topic message")
|
|
||||||
.build();
|
|
||||||
|
|
||||||
// Exercise
|
// Exercise
|
||||||
// m_handler.setMessaging(mockedMessaging);
|
// m_handler.setMessaging(mockedMessaging);
|
||||||
@@ -126,19 +125,16 @@ public class ProtocolProcessor_CONNECT_Test {
|
|||||||
assertEqualsConnAck(CONNECTION_ACCEPTED, m_session.readOutbound());
|
assertEqualsConnAck(CONNECTION_ACCEPTED, m_session.readOutbound());
|
||||||
assertTrue("Connection is accepted and therefore should remain open.", m_session.isOpen());
|
assertTrue("Connection is accepted and therefore should remain open.", m_session.isOpen());
|
||||||
// TODO verify the call
|
// TODO verify the call
|
||||||
/*verify(mockedMessaging).publish(eq("topic"), eq("Topic message".getBytes()),
|
/*
|
||||||
any(AbstractMessage.QOSType.class), anyBoolean(), eq("123"), any(IoSession.class));*/
|
* verify(mockedMessaging).publish(eq("topic"), eq("Topic message".getBytes()),
|
||||||
|
* any(AbstractMessage.QOSType.class), anyBoolean(), eq("123"), any(IoSession.class));
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void validAuthentication() {
|
public void validAuthentication() {
|
||||||
MqttConnectMessage msg = connMsg
|
MqttConnectMessage msg = connMsg.clientId(ProtocolProcessorTest.FAKE_CLIENT_ID).hasUser().hasPassword()
|
||||||
.clientId(ProtocolProcessorTest.FAKE_CLIENT_ID)
|
.username(ProtocolProcessorTest.TEST_USER).password(ProtocolProcessorTest.TEST_PWD).build();
|
||||||
.hasUser()
|
|
||||||
.hasPassword()
|
|
||||||
.username(ProtocolProcessorTest.TEST_USER)
|
|
||||||
.password(ProtocolProcessorTest.TEST_PWD)
|
|
||||||
.build();
|
|
||||||
|
|
||||||
// Exercise
|
// Exercise
|
||||||
m_processor.processConnect(m_session, msg);
|
m_processor.processConnect(m_session, msg);
|
||||||
@@ -150,11 +146,8 @@ public class ProtocolProcessor_CONNECT_Test {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void noPasswdAuthentication() {
|
public void noPasswdAuthentication() {
|
||||||
MqttConnectMessage msg = connMsg
|
MqttConnectMessage msg = connMsg.clientId(ProtocolProcessorTest.FAKE_CLIENT_ID).hasUser()
|
||||||
.clientId(ProtocolProcessorTest.FAKE_CLIENT_ID)
|
.username(ProtocolProcessorTest.TEST_USER).build();
|
||||||
.hasUser()
|
|
||||||
.username(ProtocolProcessorTest.TEST_USER)
|
|
||||||
.build();
|
|
||||||
|
|
||||||
// Exercise
|
// Exercise
|
||||||
m_processor.processConnect(m_session, msg);
|
m_processor.processConnect(m_session, msg);
|
||||||
@@ -166,13 +159,8 @@ public class ProtocolProcessor_CONNECT_Test {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void invalidAuthentication() {
|
public void invalidAuthentication() {
|
||||||
MqttConnectMessage msg = connMsg
|
MqttConnectMessage msg = connMsg.clientId(ProtocolProcessorTest.FAKE_CLIENT_ID).hasUser().hasPassword()
|
||||||
.clientId(ProtocolProcessorTest.FAKE_CLIENT_ID)
|
.username(ProtocolProcessorTest.TEST_USER + "_fake").password(ProtocolProcessorTest.TEST_PWD).build();
|
||||||
.hasUser()
|
|
||||||
.hasPassword()
|
|
||||||
.username(ProtocolProcessorTest.TEST_USER + "_fake")
|
|
||||||
.password(ProtocolProcessorTest.TEST_PWD)
|
|
||||||
.build();
|
|
||||||
|
|
||||||
// Exercise
|
// Exercise
|
||||||
m_processor.processConnect(m_session, msg);
|
m_processor.processConnect(m_session, msg);
|
||||||
@@ -184,11 +172,15 @@ public class ProtocolProcessor_CONNECT_Test {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void prohibitAnonymousClient() {
|
public void prohibitAnonymousClient() {
|
||||||
MqttConnectMessage msg = connMsg
|
MqttConnectMessage msg = connMsg.clientId(ProtocolProcessorTest.FAKE_CLIENT_ID).build();
|
||||||
.clientId(ProtocolProcessorTest.FAKE_CLIENT_ID)
|
m_processor.init(
|
||||||
.build();
|
subscriptions,
|
||||||
m_processor.init(subscriptions, m_messagesStore, m_sessionStore, m_mockAuthenticator, false,
|
m_messagesStore,
|
||||||
new PermitAllAuthorizator(), ProtocolProcessorTest.NO_OBSERVERS_INTERCEPTOR);
|
m_sessionStore,
|
||||||
|
m_mockAuthenticator,
|
||||||
|
false,
|
||||||
|
new PermitAllAuthorizator(),
|
||||||
|
ProtocolProcessorTest.NO_OBSERVERS_INTERCEPTOR);
|
||||||
|
|
||||||
// Exercise
|
// Exercise
|
||||||
m_processor.processConnect(m_session, msg);
|
m_processor.processConnect(m_session, msg);
|
||||||
@@ -200,13 +192,16 @@ public class ProtocolProcessor_CONNECT_Test {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void prohibitAnonymousClient_providingUsername() {
|
public void prohibitAnonymousClient_providingUsername() {
|
||||||
MqttConnectMessage msg = connMsg
|
MqttConnectMessage msg = connMsg.clientId(ProtocolProcessorTest.FAKE_CLIENT_ID).hasUser()
|
||||||
.clientId(ProtocolProcessorTest.FAKE_CLIENT_ID)
|
.username(ProtocolProcessorTest.TEST_USER + "_fake").build();
|
||||||
.hasUser()
|
m_processor.init(
|
||||||
.username(ProtocolProcessorTest.TEST_USER + "_fake")
|
subscriptions,
|
||||||
.build();
|
m_messagesStore,
|
||||||
m_processor.init(subscriptions, m_messagesStore, m_sessionStore, m_mockAuthenticator, false,
|
m_sessionStore,
|
||||||
new PermitAllAuthorizator(), ProtocolProcessorTest.NO_OBSERVERS_INTERCEPTOR);
|
m_mockAuthenticator,
|
||||||
|
false,
|
||||||
|
new PermitAllAuthorizator(),
|
||||||
|
ProtocolProcessorTest.NO_OBSERVERS_INTERCEPTOR);
|
||||||
|
|
||||||
// Exercise
|
// Exercise
|
||||||
m_processor.processConnect(m_session, msg);
|
m_processor.processConnect(m_session, msg);
|
||||||
@@ -218,11 +213,15 @@ public class ProtocolProcessor_CONNECT_Test {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void acceptAnonymousClient() {
|
public void acceptAnonymousClient() {
|
||||||
MqttConnectMessage msg = connMsg
|
MqttConnectMessage msg = connMsg.clientId(ProtocolProcessorTest.FAKE_CLIENT_ID).build();
|
||||||
.clientId(ProtocolProcessorTest.FAKE_CLIENT_ID)
|
m_processor.init(
|
||||||
.build();
|
subscriptions,
|
||||||
m_processor.init(subscriptions, m_messagesStore, m_sessionStore, m_mockAuthenticator, true,
|
m_messagesStore,
|
||||||
new PermitAllAuthorizator(), ProtocolProcessorTest.NO_OBSERVERS_INTERCEPTOR);
|
m_sessionStore,
|
||||||
|
m_mockAuthenticator,
|
||||||
|
true,
|
||||||
|
new PermitAllAuthorizator(),
|
||||||
|
ProtocolProcessorTest.NO_OBSERVERS_INTERCEPTOR);
|
||||||
|
|
||||||
// Exercise
|
// Exercise
|
||||||
m_processor.processConnect(m_session, msg);
|
m_processor.processConnect(m_session, msg);
|
||||||
@@ -234,14 +233,17 @@ public class ProtocolProcessor_CONNECT_Test {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void connectWithCleanSessionUpdateClientSession() throws InterruptedException {
|
public void connectWithCleanSessionUpdateClientSession() throws InterruptedException {
|
||||||
m_processor.init(subscriptions, m_messagesStore, m_sessionStore, m_mockAuthenticator, true,
|
m_processor.init(
|
||||||
new PermitAllAuthorizator(), ProtocolProcessorTest.NO_OBSERVERS_INTERCEPTOR);
|
subscriptions,
|
||||||
|
m_messagesStore,
|
||||||
|
m_sessionStore,
|
||||||
|
m_mockAuthenticator,
|
||||||
|
true,
|
||||||
|
new PermitAllAuthorizator(),
|
||||||
|
ProtocolProcessorTest.NO_OBSERVERS_INTERCEPTOR);
|
||||||
|
|
||||||
// first connect with clean session true
|
// first connect with clean session true
|
||||||
MqttConnectMessage msg = connMsg
|
MqttConnectMessage msg = connMsg.clientId(ProtocolProcessorTest.FAKE_CLIENT_ID).cleanSession(true).build();
|
||||||
.clientId(ProtocolProcessorTest.FAKE_CLIENT_ID)
|
|
||||||
.cleanSession(true)
|
|
||||||
.build();
|
|
||||||
m_processor.processConnect(m_session, msg);
|
m_processor.processConnect(m_session, msg);
|
||||||
assertEqualsConnAck(CONNECTION_ACCEPTED, m_session.readOutbound());
|
assertEqualsConnAck(CONNECTION_ACCEPTED, m_session.readOutbound());
|
||||||
m_processor.processDisconnect(m_session);
|
m_processor.processDisconnect(m_session);
|
||||||
@@ -249,10 +251,8 @@ public class ProtocolProcessor_CONNECT_Test {
|
|||||||
|
|
||||||
// second connect with clean session false
|
// second connect with clean session false
|
||||||
m_session = new EmbeddedChannel();
|
m_session = new EmbeddedChannel();
|
||||||
MqttConnectMessage secondConnMsg = MessageBuilder.connect()
|
MqttConnectMessage secondConnMsg = MessageBuilder.connect().clientId(ProtocolProcessorTest.FAKE_CLIENT_ID)
|
||||||
.clientId(ProtocolProcessorTest.FAKE_CLIENT_ID)
|
.protocolVersion(MqttVersion.MQTT_3_1).build();
|
||||||
.protocolVersion(MqttVersion.MQTT_3_1)
|
|
||||||
.build();
|
|
||||||
|
|
||||||
m_processor.processConnect(m_session, secondConnMsg);
|
m_processor.processConnect(m_session, secondConnMsg);
|
||||||
assertEqualsConnAck(CONNECTION_ACCEPTED, m_session.readOutbound());
|
assertEqualsConnAck(CONNECTION_ACCEPTED, m_session.readOutbound());
|
||||||
@@ -268,23 +268,15 @@ public class ProtocolProcessor_CONNECT_Test {
|
|||||||
@Test
|
@Test
|
||||||
public void connectWithSameClientIDBadCredentialsDoesntDropExistingClient() {
|
public void connectWithSameClientIDBadCredentialsDoesntDropExistingClient() {
|
||||||
// Connect a client1
|
// Connect a client1
|
||||||
MqttConnectMessage msg = connMsg
|
MqttConnectMessage msg = connMsg.clientId(ProtocolProcessorTest.FAKE_CLIENT_ID).hasUser().hasPassword()
|
||||||
.clientId(ProtocolProcessorTest.FAKE_CLIENT_ID)
|
.username(ProtocolProcessorTest.TEST_USER).password(ProtocolProcessorTest.TEST_PWD).build();
|
||||||
.hasUser()
|
|
||||||
.hasPassword()
|
|
||||||
.username(ProtocolProcessorTest.TEST_USER)
|
|
||||||
.password(ProtocolProcessorTest.TEST_PWD)
|
|
||||||
.build();
|
|
||||||
m_processor.processConnect(m_session, msg);
|
m_processor.processConnect(m_session, msg);
|
||||||
assertEqualsConnAck(CONNECTION_ACCEPTED, m_session.readOutbound());
|
assertEqualsConnAck(CONNECTION_ACCEPTED, m_session.readOutbound());
|
||||||
|
|
||||||
// create another connect same clientID but with bad credentials
|
// create another connect same clientID but with bad credentials
|
||||||
MqttConnectMessage evilClientConnMsg = MessageBuilder.connect().
|
MqttConnectMessage evilClientConnMsg = MessageBuilder.connect().protocolVersion(MqttVersion.MQTT_3_1)
|
||||||
protocolVersion(MqttVersion.MQTT_3_1)
|
.clientId(ProtocolProcessorTest.FAKE_CLIENT_ID).hasUser().username(ProtocolProcessorTest.EVIL_TEST_USER)
|
||||||
.clientId(ProtocolProcessorTest.FAKE_CLIENT_ID)
|
.hasPassword().password(ProtocolProcessorTest.EVIL_TEST_PWD).build();
|
||||||
.hasUser().username(ProtocolProcessorTest.EVIL_TEST_USER)
|
|
||||||
.hasPassword().password(ProtocolProcessorTest.EVIL_TEST_PWD)
|
|
||||||
.build();
|
|
||||||
|
|
||||||
EmbeddedChannel evilSession = new EmbeddedChannel();
|
EmbeddedChannel evilSession = new EmbeddedChannel();
|
||||||
|
|
||||||
@@ -299,13 +291,10 @@ public class ProtocolProcessor_CONNECT_Test {
|
|||||||
assertFalse(evilSession.isOpen());
|
assertFalse(evilSession.isOpen());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testConnAckContainsSessionPresentFlag() throws InterruptedException {
|
public void testConnAckContainsSessionPresentFlag() throws InterruptedException {
|
||||||
MqttConnectMessage msg = connMsg
|
MqttConnectMessage msg = connMsg.clientId(ProtocolProcessorTest.FAKE_CLIENT_ID)
|
||||||
.clientId(ProtocolProcessorTest.FAKE_CLIENT_ID)
|
.protocolVersion(MqttVersion.MQTT_3_1_1).build();
|
||||||
.protocolVersion(MqttVersion.MQTT_3_1_1)
|
|
||||||
.build();
|
|
||||||
NettyUtils.clientID(m_session, ProtocolProcessorTest.FAKE_CLIENT_ID);
|
NettyUtils.clientID(m_session, ProtocolProcessorTest.FAKE_CLIENT_ID);
|
||||||
NettyUtils.cleanSession(m_session, false);
|
NettyUtils.cleanSession(m_session, false);
|
||||||
|
|
||||||
@@ -323,28 +312,25 @@ public class ProtocolProcessor_CONNECT_Test {
|
|||||||
assertTrue("Connection is accepted and therefore should remain open.", firstReceiverSession.isOpen());
|
assertTrue("Connection is accepted and therefore should remain open.", firstReceiverSession.isOpen());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testMultipleReconnection() throws InterruptedException {
|
public void testMultipleReconnection() throws InterruptedException {
|
||||||
// connect with clean a false and subscribe to a topic
|
// connect with clean a false and subscribe to a topic
|
||||||
MqttConnectMessage msg = MessageBuilder.connect()
|
MqttConnectMessage msg = MessageBuilder.connect().clientId(ProtocolProcessorTest.FAKE_CLIENT_ID)
|
||||||
.clientId(ProtocolProcessorTest.FAKE_CLIENT_ID)
|
.protocolVersion(MqttVersion.MQTT_3_1_1).build();
|
||||||
.protocolVersion(MqttVersion.MQTT_3_1_1)
|
|
||||||
.build();
|
|
||||||
m_processor.processConnect(m_session, msg);
|
m_processor.processConnect(m_session, msg);
|
||||||
assertEqualsConnAck(CONNECTION_ACCEPTED, m_session.readOutbound());
|
assertEqualsConnAck(CONNECTION_ACCEPTED, m_session.readOutbound());
|
||||||
assertTrue("Connection is accepted and therefore should remain open.", m_session.isOpen());
|
assertTrue("Connection is accepted and therefore should remain open.", m_session.isOpen());
|
||||||
|
|
||||||
// subscribe
|
// subscribe
|
||||||
MqttSubscribeMessage subscribeMsg = MessageBuilder.subscribe()
|
MqttSubscribeMessage subscribeMsg = MessageBuilder.subscribe()
|
||||||
.addSubscription(MqttQoS.AT_MOST_ONCE, ProtocolProcessorTest.FAKE_TOPIC)
|
.addSubscription(MqttQoS.AT_MOST_ONCE, ProtocolProcessorTest.FAKE_TOPIC).messageId(10).build();
|
||||||
.messageId(10)
|
|
||||||
.build();
|
|
||||||
|
|
||||||
NettyUtils.clientID(m_session, ProtocolProcessorTest.FAKE_CLIENT_ID);
|
NettyUtils.clientID(m_session, ProtocolProcessorTest.FAKE_CLIENT_ID);
|
||||||
NettyUtils.cleanSession(m_session, false);
|
NettyUtils.cleanSession(m_session, false);
|
||||||
m_processor.processSubscribe(m_session, subscribeMsg);
|
m_processor.processSubscribe(m_session, subscribeMsg);
|
||||||
Subscription expectedSubscription = new Subscription(ProtocolProcessorTest.FAKE_CLIENT_ID, ProtocolProcessorTest.FAKE_TOPIC,
|
Subscription expectedSubscription = new Subscription(
|
||||||
|
ProtocolProcessorTest.FAKE_CLIENT_ID,
|
||||||
|
ProtocolProcessorTest.FAKE_TOPIC,
|
||||||
MqttQoS.AT_MOST_ONCE);
|
MqttQoS.AT_MOST_ONCE);
|
||||||
assertTrue(subscriptions.contains(expectedSubscription));
|
assertTrue(subscriptions.contains(expectedSubscription));
|
||||||
assertEqualsSubAck(m_session.readOutbound());
|
assertEqualsSubAck(m_session.readOutbound());
|
||||||
@@ -367,18 +353,25 @@ public class ProtocolProcessor_CONNECT_Test {
|
|||||||
public void testZeroByteClientIdWithoutCleanSession() {
|
public void testZeroByteClientIdWithoutCleanSession() {
|
||||||
// Allow zero byte client ids
|
// Allow zero byte client ids
|
||||||
m_processor = new ProtocolProcessor();
|
m_processor = new ProtocolProcessor();
|
||||||
m_processor.init(subscriptions, m_messagesStore, m_sessionStore, m_mockAuthenticator, true, true,
|
m_processor.init(
|
||||||
new PermitAllAuthorizator(), ProtocolProcessorTest.NO_OBSERVERS_INTERCEPTOR);
|
subscriptions,
|
||||||
|
m_messagesStore,
|
||||||
|
m_sessionStore,
|
||||||
|
m_mockAuthenticator,
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
new PermitAllAuthorizator(),
|
||||||
|
ProtocolProcessorTest.NO_OBSERVERS_INTERCEPTOR);
|
||||||
|
|
||||||
// Connect message without clean session set to true but client id is still null
|
// Connect message without clean session set to true but client id is still null
|
||||||
MqttConnectMessage msg = MessageBuilder.connect()
|
MqttConnectMessage msg = MessageBuilder.connect().clientId(null).protocolVersion(MqttVersion.MQTT_3_1_1)
|
||||||
.clientId(null)
|
|
||||||
.protocolVersion(MqttVersion.MQTT_3_1_1)
|
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
m_processor.processConnect(m_session, msg);
|
m_processor.processConnect(m_session, msg);
|
||||||
assertEqualsConnAck("Identifier should be rejected due to having clean session set to false.",
|
assertEqualsConnAck(
|
||||||
CONNECTION_REFUSED_IDENTIFIER_REJECTED, m_session.readOutbound());
|
"Identifier should be rejected due to having clean session set to false.",
|
||||||
|
CONNECTION_REFUSED_IDENTIFIER_REJECTED,
|
||||||
|
m_session.readOutbound());
|
||||||
|
|
||||||
assertFalse("Connection should be closed by the broker.", m_session.isOpen());
|
assertFalse("Connection should be closed by the broker.", m_session.isOpen());
|
||||||
}
|
}
|
||||||
@@ -387,19 +380,26 @@ public class ProtocolProcessor_CONNECT_Test {
|
|||||||
public void testZeroByteClientIdWithCleanSession() {
|
public void testZeroByteClientIdWithCleanSession() {
|
||||||
// Allow zero byte client ids
|
// Allow zero byte client ids
|
||||||
m_processor = new ProtocolProcessor();
|
m_processor = new ProtocolProcessor();
|
||||||
m_processor.init(subscriptions, m_messagesStore, m_sessionStore, m_mockAuthenticator, true, true,
|
m_processor.init(
|
||||||
new PermitAllAuthorizator(), ProtocolProcessorTest.NO_OBSERVERS_INTERCEPTOR);
|
subscriptions,
|
||||||
|
m_messagesStore,
|
||||||
|
m_sessionStore,
|
||||||
|
m_mockAuthenticator,
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
new PermitAllAuthorizator(),
|
||||||
|
ProtocolProcessorTest.NO_OBSERVERS_INTERCEPTOR);
|
||||||
|
|
||||||
// Connect message with clean session set to true and client id is null.
|
// Connect message with clean session set to true and client id is null.
|
||||||
MqttConnectMessage msg = connMsg
|
MqttConnectMessage msg = connMsg.clientId(null).protocolVersion(MqttVersion.MQTT_3_1_1).cleanSession(true)
|
||||||
.clientId(null)
|
|
||||||
.protocolVersion(MqttVersion.MQTT_3_1_1)
|
|
||||||
.cleanSession(true)
|
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
m_processor.processConnect(m_session, msg);
|
m_processor.processConnect(m_session, msg);
|
||||||
assertEqualsConnAck("Connection should be accepted. A unique clientid should be generated" +
|
assertEqualsConnAck(
|
||||||
" and clean session set to true.", CONNECTION_ACCEPTED, m_session.readOutbound());
|
"Connection should be accepted. A unique clientid should be generated"
|
||||||
|
+ " and clean session set to true.",
|
||||||
|
CONNECTION_ACCEPTED,
|
||||||
|
m_session.readOutbound());
|
||||||
|
|
||||||
assertTrue("Connection should be valid and open,", m_session.isOpen());
|
assertTrue("Connection should be valid and open,", m_session.isOpen());
|
||||||
}
|
}
|
||||||
@@ -407,15 +407,14 @@ public class ProtocolProcessor_CONNECT_Test {
|
|||||||
@Test
|
@Test
|
||||||
public void testZeroByteClientIdNotAllowed() {
|
public void testZeroByteClientIdNotAllowed() {
|
||||||
// Connect message with clean session set to true and client id is null.
|
// Connect message with clean session set to true and client id is null.
|
||||||
MqttConnectMessage msg = connMsg
|
MqttConnectMessage msg = connMsg.clientId(null).protocolVersion(MqttVersion.MQTT_3_1_1).cleanSession(true)
|
||||||
.clientId(null)
|
|
||||||
.protocolVersion(MqttVersion.MQTT_3_1_1)
|
|
||||||
.cleanSession(true)
|
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
m_processor.processConnect(m_session, msg);
|
m_processor.processConnect(m_session, msg);
|
||||||
assertEqualsConnAck("Zero byte client identifiers are not allowed.",
|
assertEqualsConnAck(
|
||||||
CONNECTION_REFUSED_IDENTIFIER_REJECTED, m_session.readOutbound());
|
"Zero byte client identifiers are not allowed.",
|
||||||
|
CONNECTION_REFUSED_IDENTIFIER_REJECTED,
|
||||||
|
m_session.readOutbound());
|
||||||
|
|
||||||
assertFalse("Connection should closed.", m_session.isOpen());
|
assertFalse("Connection should closed.", m_session.isOpen());
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user