diff --git a/.gitignore b/.gitignore
new file mode 100644
index 00000000..a6f89c2d
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/target/
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index b5f9afda..07d3e3a6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -34,6 +34,14 @@
4.8.2
test
+
+
+
+ org.mockito
+ mockito-core
+ 1.9.0
+ test
+
diff --git a/src/test/java/org/dna/mqtt/moquette/server/MQTTHandlerTest.java b/src/test/java/org/dna/mqtt/moquette/server/MQTTHandlerTest.java
index a223eb62..00296b7e 100644
--- a/src/test/java/org/dna/mqtt/moquette/server/MQTTHandlerTest.java
+++ b/src/test/java/org/dna/mqtt/moquette/server/MQTTHandlerTest.java
@@ -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());
+ }
}