From 17e8e55b08090d7118f77d681e15ac8db9fd26d3 Mon Sep 17 00:00:00 2001 From: "selva.andre" Date: Sun, 22 Jan 2012 18:57:14 +0100 Subject: [PATCH] Added testing for will branch in connect message handling --- .gitignore | 1 + pom.xml | 8 +++++ .../mqtt/moquette/server/MQTTHandlerTest.java | 33 +++++++++++++++---- 3 files changed, 35 insertions(+), 7 deletions(-) create mode 100644 .gitignore 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()); + } }