Commit 33887ecb3b68b9035c4dbef4fe9336230fa52588
Committed by
Andrew Shvayka
1 parent
69a77792
mqtt handler test improved
Showing
1 changed file
with
15 additions
and
13 deletions
@@ -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)); |