Added testing for will branch in connect message handling

This commit is contained in:
selva.andre
2012-01-22 18:57:14 +01:00
parent ee76a1c360
commit 17e8e55b08
3 changed files with 35 additions and 7 deletions
+1
View File
@@ -0,0 +1 @@
/target/
+8
View File
@@ -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());
}
}