Added testing for will branch in connect message handling
This commit is contained in:
@@ -0,0 +1 @@
|
||||
/target/
|
||||
@@ -34,6 +34,14 @@
|
||||
<version>4.8.2</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- needs extra dependencies: objenesis & hamcrest -->
|
||||
<dependency>
|
||||
<groupId>org.mockito</groupId>
|
||||
<artifactId>mockito-core</artifactId>
|
||||
<version>1.9.0</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
|
||||
@@ -5,10 +5,12 @@ import org.dna.mqtt.moquette.proto.messages.ConnAckMessage;
|
||||
import org.apache.mina.core.filterchain.IoFilterAdapter;
|
||||
import org.apache.mina.core.session.DummySession;
|
||||
import org.apache.mina.core.session.IoSession;
|
||||
import org.dna.mqtt.moquette.messaging.spi.IMessaging;
|
||||
import org.dna.mqtt.moquette.proto.messages.ConnectMessage;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import static org.junit.Assert.*;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -17,11 +19,16 @@ import static org.junit.Assert.*;
|
||||
public class MQTTHandlerTest {
|
||||
|
||||
byte m_returnCode;
|
||||
|
||||
IoSession m_session;
|
||||
MQTTHandler h;
|
||||
ConnectMessage connMsg;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
h = new MQTTHandler();
|
||||
connMsg = new ConnectMessage();
|
||||
connMsg.setProcotolVersion((byte) 0x03);
|
||||
|
||||
m_session = new DummySession();
|
||||
m_session.getFilterChain().addFirst("MessageCatcher", new IoFilterAdapter() {
|
||||
|
||||
@@ -40,8 +47,6 @@ public class MQTTHandlerTest {
|
||||
|
||||
@Test
|
||||
public void testHandleConnect_BadProtocol() {
|
||||
MQTTHandler h = new MQTTHandler();
|
||||
ConnectMessage connMsg = new ConnectMessage();
|
||||
connMsg.setProcotolVersion((byte) 0x02);
|
||||
|
||||
//Exercise
|
||||
@@ -54,10 +59,7 @@ public class MQTTHandlerTest {
|
||||
|
||||
@Test
|
||||
public void testConnect_badClientID() {
|
||||
MQTTHandler h = new MQTTHandler();
|
||||
ConnectMessage connMsg = new ConnectMessage();
|
||||
connMsg.setProcotolVersion((byte) 0x03);
|
||||
connMsg.setClientID("extremely_long_clientID_grtaer_than_23");
|
||||
connMsg.setClientID("extremely_long_clientID_greater_than_23");
|
||||
|
||||
//Exercise
|
||||
h.handleConnect(m_session, connMsg);
|
||||
@@ -65,4 +67,21 @@ public class MQTTHandlerTest {
|
||||
//Verify
|
||||
assertEquals(ConnAckMessage.IDENTIFIER_REJECTED, m_returnCode);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testWill() {
|
||||
connMsg.setClientID("123");
|
||||
connMsg.setWillFlag(true);
|
||||
connMsg.setWillTopic("topic");
|
||||
connMsg.setWillMessage("Topic message");
|
||||
IMessaging mockedMessaging = mock(IMessaging.class);
|
||||
|
||||
//Exercise
|
||||
h.setMessaging(mockedMessaging);
|
||||
h.handleConnect(m_session, connMsg);
|
||||
|
||||
//Verify
|
||||
assertEquals(ConnAckMessage.CONNECTION_ACCEPTED, m_returnCode);
|
||||
verify(mockedMessaging).publish(eq("topic"), eq("Topic message"), anyByte(), anyBoolean());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user