Commit 33887ecb3b68b9035c4dbef4fe9336230fa52588

Authored by Sergey Matvienko
Committed by Andrew Shvayka
1 parent 69a77792

mqtt handler test improved

@@ -97,18 +97,6 @@ public class MqttTransportHandlerTest { @@ -97,18 +97,6 @@ public class MqttTransportHandlerTest {
97 } 97 }
98 } 98 }
99 99
100 - @Test  
101 - public void givenMessageWithoutFixedHeader_whenProcessMqttMsg_thenProcessDisconnect() {  
102 - MqttFixedHeader mqttFixedHeader = null;  
103 - MqttMessage msg = new MqttMessage(mqttFixedHeader);  
104 - willDoNothing().given(handler).processDisconnect(ctx);  
105 -  
106 - handler.processMqttMsg(ctx, msg);  
107 -  
108 - assertThat(handler.address, is(IP_ADDR));  
109 - verify(handler, times(1)).processDisconnect(ctx);  
110 - }  
111 -  
112 MqttConnectMessage getMqttConnectMessage() { 100 MqttConnectMessage getMqttConnectMessage() {
113 MqttFixedHeader mqttFixedHeader = new MqttFixedHeader(MqttMessageType.CONNECT, true, MqttQoS.AT_LEAST_ONCE, false, 123); 101 MqttFixedHeader mqttFixedHeader = new MqttFixedHeader(MqttMessageType.CONNECT, true, MqttQoS.AT_LEAST_ONCE, false, 123);
114 MqttConnectVariableHeader variableHeader = new MqttConnectVariableHeader("device", packedId.incrementAndGet(), true, true, true, 1, true, false, 60); 102 MqttConnectVariableHeader variableHeader = new MqttConnectVariableHeader("device", packedId.incrementAndGet(), true, true, true, 1, true, false, 60);
@@ -124,6 +112,18 @@ public class MqttTransportHandlerTest { @@ -124,6 +112,18 @@ public class MqttTransportHandlerTest {
124 } 112 }
125 113
126 @Test 114 @Test
  115 + public void givenMessageWithoutFixedHeader_whenProcessMqttMsg_thenProcessDisconnect() {
  116 + MqttFixedHeader mqttFixedHeader = null;
  117 + MqttMessage msg = new MqttMessage(mqttFixedHeader);
  118 + willDoNothing().given(handler).processDisconnect(ctx);
  119 +
  120 + handler.processMqttMsg(ctx, msg);
  121 +
  122 + assertThat(handler.address, is(IP_ADDR));
  123 + verify(handler, times(1)).processDisconnect(ctx);
  124 + }
  125 +
  126 + @Test
127 public void givenMqttConnectMessage_whenProcessMqttMsg_thenProcessConnect() { 127 public void givenMqttConnectMessage_whenProcessMqttMsg_thenProcessConnect() {
128 MqttConnectMessage msg = getMqttConnectMessage(); 128 MqttConnectMessage msg = getMqttConnectMessage();
129 willDoNothing().given(handler).processConnect(ctx, msg); 129 willDoNothing().given(handler).processConnect(ctx, msg);
@@ -168,16 +168,18 @@ public class MqttTransportHandlerTest { @@ -168,16 +168,18 @@ public class MqttTransportHandlerTest {
168 168
169 assertThat(handler.address, is(IP_ADDR)); 169 assertThat(handler.address, is(IP_ADDR));
170 assertThat(handler.deviceSessionCtx.getChannel(), is(ctx)); 170 assertThat(handler.deviceSessionCtx.getChannel(), is(ctx));
  171 + assertThat(handler.deviceSessionCtx.isConnected(), is(false));
171 assertThat(handler.deviceSessionCtx.getMsgQueueSize().get(), is(MSG_QUEUE_LIMIT)); 172 assertThat(handler.deviceSessionCtx.getMsgQueueSize().get(), is(MSG_QUEUE_LIMIT));
172 assertThat(handler.deviceSessionCtx.getMsgQueue(), contains(messages.toArray())); 173 assertThat(handler.deviceSessionCtx.getMsgQueue(), contains(messages.toArray()));
173 verify(handler, never()).processDisconnect(any()); 174 verify(handler, never()).processDisconnect(any());
174 verify(handler, times(1)).processConnect(any(), any()); 175 verify(handler, times(1)).processConnect(any(), any());
175 verify(handler, times(MSG_QUEUE_LIMIT)).enqueueRegularSessionMsg(any(), any()); 176 verify(handler, times(MSG_QUEUE_LIMIT)).enqueueRegularSessionMsg(any(), any());
  177 + verify(handler, never()).processRegularSessionMsg(any(), any());
176 messages.forEach((msg) -> verify(handler, times(1)).enqueueRegularSessionMsg(ctx, msg)); 178 messages.forEach((msg) -> verify(handler, times(1)).enqueueRegularSessionMsg(ctx, msg));
177 } 179 }
178 180
179 @Test 181 @Test
180 - public void givenMessageQueue_whenProcessMqttMsg_thenEnqueueRegularSessionMsg() throws InterruptedException { 182 + public void givenMessageQueue_whenProcessMqttMsgConcurrently_thenEnqueueRegularSessionMsg() throws InterruptedException {
181 //given 183 //given
182 assertThat(handler.deviceSessionCtx.isConnected(), is(false)); 184 assertThat(handler.deviceSessionCtx.isConnected(), is(false));
183 assertThat(MSG_QUEUE_LIMIT, greaterThan(2)); 185 assertThat(MSG_QUEUE_LIMIT, greaterThan(2));