Skip to content

Commit b5a092c

Browse files
committed
fix tests
1 parent 99c956c commit b5a092c

24 files changed

Lines changed: 321 additions & 229 deletions

core-service/src/main/java/javasabr/mqtt/service/publish/impl/InMemoryPublishDataStorage.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.util.UUID;
44
import javasabr.mqtt.model.PayloadFormat;
55
import javasabr.mqtt.model.publish.PublishData;
6+
import javasabr.mqtt.model.publish.impl.InMemoryPublishData;
67
import javasabr.mqtt.service.publish.PublishDataStorage;
78
import javasabr.rlib.collections.dictionary.DictionaryFactory;
89
import javasabr.rlib.collections.dictionary.LockableRefToRefDictionary;

core-service/src/test/groovy/javasabr/mqtt/service/IntegrationServiceSpecification.groovy

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import javasabr.mqtt.model.MqttProperties
77
import javasabr.mqtt.model.MqttServerConnectionConfig
88
import javasabr.mqtt.model.MqttVersion
99
import javasabr.mqtt.model.QoS
10+
import javasabr.mqtt.model.publish.PublishData
1011
import javasabr.mqtt.network.MqttConnection
1112
import javasabr.mqtt.network.handler.NetworkMqttUserReleaseHandler
1213
import javasabr.mqtt.service.impl.DefaultMessageOutFactoryService
@@ -19,6 +20,7 @@ import javasabr.mqtt.service.message.out.factory.Mqtt311MessageOutFactory
1920
import javasabr.mqtt.service.message.out.factory.Mqtt5MessageOutFactory
2021
import javasabr.mqtt.service.publish.impl.DefaultIncomingPublishRouter
2122
import javasabr.mqtt.service.publish.impl.DefaultPublishDispatcher
23+
import javasabr.mqtt.service.publish.impl.InMemoryPublishDataStorage
2224
import javasabr.mqtt.service.publish.impl.InMemoryRetainPublishService
2325
import javasabr.mqtt.service.publish.processor.Qos0IncomingPublishProcessor
2426
import javasabr.mqtt.service.publish.processor.Qos1IncomingPublishProcessor
@@ -42,14 +44,21 @@ import java.util.concurrent.atomic.AtomicInteger
4244
abstract class IntegrationServiceSpecification extends BaseSpecification {
4345

4446
@Shared
45-
def testPayload = "testpayload".getBytes(StandardCharsets.UTF_8)
46-
47+
def testPayloadString = "testpayload"
48+
@Shared
49+
def testPayloadBytes = testPayloadString.getBytes(StandardCharsets.UTF_8)
50+
@Shared
51+
def testPayload = PublishData.wrap(testPayloadBytes)
52+
4753
@Shared
4854
def clientIdGenerator = new AtomicInteger()
4955

5056
@Shared
5157
def defaultTopicService = new DefaultTopicService()
5258

59+
@Shared
60+
def defaultPublishDataStorage = new InMemoryPublishDataStorage()
61+
5362
@Shared
5463
def authorizationService = new DisabledAuthorizationService();
5564

core-service/src/test/groovy/javasabr/mqtt/service/message/handler/impl/PublishMqttInMessageHandlerTest.groovy

Lines changed: 32 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ class PublishMqttInMessageHandlerTest extends IntegrationServiceSpecification {
2424
publishReceivingService,
2525
defaultMessageOutFactoryService,
2626
defaultTopicService,
27-
disabledAclService)
27+
disabledAclService,
28+
defaultPublishDataStorage)
2829
def expectedMessageId = 15
2930
def expectedTopicAlias = 5
3031
def mqttUser = mqttConnection.user() as TestExternalNetworkMqttUser
@@ -53,7 +54,8 @@ class PublishMqttInMessageHandlerTest extends IntegrationServiceSpecification {
5354
publishReceivingService,
5455
defaultMessageOutFactoryService,
5556
defaultTopicService,
56-
disabledAclService)
57+
disabledAclService,
58+
defaultPublishDataStorage)
5759
def expectedMessageId = 15
5860
def mqttUser = mqttConnection.user() as TestExternalNetworkMqttUser
5961
mqttUser.returnCompletedFeatures(false)
@@ -80,7 +82,8 @@ class PublishMqttInMessageHandlerTest extends IntegrationServiceSpecification {
8082
publishReceivingService,
8183
defaultMessageOutFactoryService,
8284
defaultTopicService,
83-
disabledAclService)
85+
disabledAclService,
86+
defaultPublishDataStorage)
8487
def mqttUser = mqttConnection.user() as TestExternalNetworkMqttUser
8588
mqttUser.session(null)
8689
when:
@@ -100,11 +103,12 @@ class PublishMqttInMessageHandlerTest extends IntegrationServiceSpecification {
100103
publishReceivingService,
101104
defaultMessageOutFactoryService,
102105
defaultTopicService,
103-
disabledAclService)
106+
disabledAclService,
107+
defaultPublishDataStorage)
104108
def mqttUser = mqttConnection.user() as TestExternalNetworkMqttUser
105109
when:
106110
def publishMessage = new PublishMqttInMessage(0b0110_0010 as byte) {{
107-
payload = testPayload
111+
payload = testPayloadBytes
108112
rawTopicName = "/topic/1"
109113
}}
110114
messageHandler.processValidMessage(mqttConnection, publishMessage)
@@ -122,7 +126,8 @@ class PublishMqttInMessageHandlerTest extends IntegrationServiceSpecification {
122126
publishReceivingService,
123127
defaultMessageOutFactoryService,
124128
defaultTopicService,
125-
disabledAclService)
129+
disabledAclService,
130+
defaultPublishDataStorage)
126131
def expectedMessageId = 15
127132
def mqttUser = mqttConnection.user() as TestExternalNetworkMqttUser
128133
mqttUser
@@ -132,7 +137,7 @@ class PublishMqttInMessageHandlerTest extends IntegrationServiceSpecification {
132137
when:
133138
def publishMessage = new PublishMqttInMessage(0b0110_0010 as byte) {{
134139
messageId = expectedMessageId
135-
payload = testPayload
140+
payload = testPayloadBytes
136141
rawTopicName = "/topic/1"
137142
}}
138143
messageHandler.processValidMessage(mqttConnection, publishMessage)
@@ -151,7 +156,8 @@ class PublishMqttInMessageHandlerTest extends IntegrationServiceSpecification {
151156
publishReceivingService,
152157
defaultMessageOutFactoryService,
153158
defaultTopicService,
154-
disabledAclService)
159+
disabledAclService,
160+
defaultPublishDataStorage)
155161
def mqttUser = mqttConnection.user() as TestExternalNetworkMqttUser
156162
when:
157163
def publishMessage = new PublishMqttInMessage(0 as byte)
@@ -169,7 +175,8 @@ class PublishMqttInMessageHandlerTest extends IntegrationServiceSpecification {
169175
publishReceivingService,
170176
defaultMessageOutFactoryService,
171177
defaultTopicService,
172-
disabledAclService)
178+
disabledAclService,
179+
defaultPublishDataStorage)
173180
def expectedMessageId = 15
174181
def mqttUser = mqttConnection.user() as TestExternalNetworkMqttUser
175182
when:
@@ -194,7 +201,8 @@ class PublishMqttInMessageHandlerTest extends IntegrationServiceSpecification {
194201
publishReceivingService,
195202
defaultMessageOutFactoryService,
196203
defaultTopicService,
197-
disabledAclService)
204+
disabledAclService,
205+
defaultPublishDataStorage)
198206
def expectedMessageId = 15
199207
def mqttUser = mqttConnection.user() as TestExternalNetworkMqttUser
200208
when:
@@ -217,7 +225,8 @@ class PublishMqttInMessageHandlerTest extends IntegrationServiceSpecification {
217225
publishReceivingService,
218226
defaultMessageOutFactoryService,
219227
defaultTopicService,
220-
disabledAclService)
228+
disabledAclService,
229+
defaultPublishDataStorage)
221230
def expectedMessageId = 15
222231
def mqttUser = mqttConnection.user() as TestExternalNetworkMqttUser
223232
when:
@@ -241,7 +250,8 @@ class PublishMqttInMessageHandlerTest extends IntegrationServiceSpecification {
241250
publishReceivingService,
242251
defaultMessageOutFactoryService,
243252
defaultTopicService,
244-
disabledAclService)
253+
disabledAclService,
254+
defaultPublishDataStorage)
245255
def expectedMessageId = 15
246256
def mqttUser = mqttConnection.user() as TestExternalNetworkMqttUser
247257
when:
@@ -265,7 +275,8 @@ class PublishMqttInMessageHandlerTest extends IntegrationServiceSpecification {
265275
publishReceivingService,
266276
defaultMessageOutFactoryService,
267277
defaultTopicService,
268-
disabledAclService)
278+
disabledAclService,
279+
defaultPublishDataStorage)
269280
def expectedMessageId = 15
270281
def mqttUser = mqttConnection.user() as TestExternalNetworkMqttUser
271282
when:
@@ -289,7 +300,8 @@ class PublishMqttInMessageHandlerTest extends IntegrationServiceSpecification {
289300
publishReceivingService,
290301
defaultMessageOutFactoryService,
291302
defaultTopicService,
292-
disabledAclService)
303+
disabledAclService,
304+
defaultPublishDataStorage)
293305
def expectedMessageId = 15
294306
def mqttUser = mqttConnection.user() as TestExternalNetworkMqttUser
295307
when:
@@ -312,7 +324,8 @@ class PublishMqttInMessageHandlerTest extends IntegrationServiceSpecification {
312324
publishReceivingService,
313325
defaultMessageOutFactoryService,
314326
defaultTopicService,
315-
disabledAclService)
327+
disabledAclService,
328+
defaultPublishDataStorage)
316329
def expectedMessageId = 15
317330
def mqttUser = mqttConnection.user() as TestExternalNetworkMqttUser
318331
when: 'topic alias is too high'
@@ -348,7 +361,8 @@ class PublishMqttInMessageHandlerTest extends IntegrationServiceSpecification {
348361
publishReceivingService,
349362
defaultMessageOutFactoryService,
350363
defaultTopicService,
351-
disabledAclService)
364+
disabledAclService,
365+
defaultPublishDataStorage)
352366
def expectedMessageId = 15
353367
def mqttUser = mqttConnection.user() as TestExternalNetworkMqttUser
354368
when:
@@ -372,7 +386,8 @@ class PublishMqttInMessageHandlerTest extends IntegrationServiceSpecification {
372386
publishReceivingService,
373387
defaultMessageOutFactoryService,
374388
defaultTopicService,
375-
disabledAclService)
389+
disabledAclService,
390+
defaultPublishDataStorage)
376391
def expectedMessageId = 15
377392
def mqttUser = mqttConnection.user() as TestExternalNetworkMqttUser
378393
when:

core-service/src/test/groovy/javasabr/mqtt/service/message/handler/impl/SubscribeMqttInMessageHandlerTest.groovy

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import javasabr.mqtt.model.message.MqttMessageType
77
import javasabr.mqtt.model.reason.code.DisconnectReasonCode
88
import javasabr.mqtt.model.reason.code.SubscribeAckReasonCode
99
import javasabr.mqtt.model.subscription.RequestedSubscription
10-
import javasabr.mqtt.model.subscription.TestPublishFactory
1110
import javasabr.mqtt.network.message.in.SubscribeMqttInMessage
1211
import javasabr.mqtt.network.message.out.DisconnectMqtt5OutMessage
1312
import javasabr.mqtt.network.message.out.PublishMqtt5OutMessage
@@ -21,6 +20,8 @@ import javasabr.rlib.common.util.ThreadUtils
2120
import javasabr.rlib.logger.api.LoggerLevel
2221
import javasabr.rlib.logger.api.LoggerManager
2322

23+
import static javasabr.mqtt.model.subscription.TestPublishFactory.incomingPublishWithRetain
24+
2425
class SubscribeMqttInMessageHandlerTest extends IntegrationServiceSpecification {
2526

2627
static {
@@ -296,7 +297,7 @@ class SubscribeMqttInMessageHandlerTest extends IntegrationServiceSpecification
296297
this.subscriptions.addAll(requestedSubscriptions)
297298
}}
298299
and:
299-
def publishWithRetain = TestPublishFactory.makePublishWithRetain("topic/filter/1", "payload1")
300+
def publishWithRetain = incomingPublishWithRetain("topic/filter/1", "payload1")
300301
inMemoryRetainMessageService.retain(publishWithRetain)
301302
when:
302303
subscribeMessageHandler.processValidMessage(mqttConnection, subscribeMessage1)
@@ -334,7 +335,7 @@ class SubscribeMqttInMessageHandlerTest extends IntegrationServiceSpecification
334335
this.subscriptions.addAll(requestedSubscriptions)
335336
}}
336337
and:
337-
def publishWithRetain = TestPublishFactory.makePublishWithRetain("topic/filter/1", "payload1")
338+
def publishWithRetain = incomingPublishWithRetain("topic/filter/1", "payload1")
338339
inMemoryRetainMessageService.retain(publishWithRetain)
339340
when:
340341
subscribeMessageHandler.processValidMessage(mqttConnection, subscribeMessage1)
@@ -373,10 +374,10 @@ class SubscribeMqttInMessageHandlerTest extends IntegrationServiceSpecification
373374
this.subscriptions.addAll(requestedSubscriptions)
374375
}}
375376
and:
376-
def publishWithRetain = TestPublishFactory.makePublishWithRetain("topic/filter/1", "payload1")
377+
def publishWithRetain = incomingPublishWithRetain("topic/filter/1", "payload1")
377378
inMemoryRetainMessageService.retain(publishWithRetain)
378379
and:
379-
def publishWithoutRetain = TestPublishFactory.makePublishWithoutRetain("topic/filter/1", "payload2")
380+
def publishWithoutRetain = incomingPublishWithRetain("topic/filter/1", "payload2")
380381
inMemoryRetainMessageService.retain(publishWithoutRetain)
381382
when:
382383
subscribeMessageHandler.processValidMessage(mqttConnection, subscribeMessage1)
@@ -409,7 +410,7 @@ class SubscribeMqttInMessageHandlerTest extends IntegrationServiceSpecification
409410
this.subscriptions.addAll(requestedSubscriptions)
410411
}}
411412
and:
412-
def publishWithRetain = TestPublishFactory.makePublishWithRetain("topic/filter/1", "payload1")
413+
def publishWithRetain = incomingPublishWithRetain("topic/filter/1", "payload1")
413414
inMemoryRetainMessageService.retain(publishWithRetain)
414415
when:
415416
subscribeMessageHandler.processValidMessage(mqttConnection, subscribeMessage)
@@ -440,7 +441,7 @@ class SubscribeMqttInMessageHandlerTest extends IntegrationServiceSpecification
440441
this.subscriptions.addAll(requestedSubscriptions)
441442
}}
442443
and:
443-
def publishWithRetain = TestPublishFactory.makePublishWithRetain("topic/filter/1", "payload1")
444+
def publishWithRetain = incomingPublishWithRetain("topic/filter/1", "payload1")
444445
inMemoryRetainMessageService.retain(publishWithRetain)
445446
when:
446447
subscribeMessageHandler.processValidMessage(mqttConnection, subscribeMessage)
@@ -484,7 +485,7 @@ class SubscribeMqttInMessageHandlerTest extends IntegrationServiceSpecification
484485
this.subscriptions.addAll(requestedSubscriptions)
485486
}}
486487
and:
487-
def publishWithRetain = TestPublishFactory.makePublishWithRetain("topic/filter/1", "payload1")
488+
def publishWithRetain = incomingPublishWithRetain("topic/filter/1", "payload1")
488489
inMemoryRetainMessageService.retain(publishWithRetain)
489490
when:
490491
subscribeMessageHandler.processValidMessage(mqttConnection, subscribeMessage1)

core-service/src/test/groovy/javasabr/mqtt/service/publish/handler/impl/Qos0IncomingPublishProcessorTest.groovy renamed to core-service/src/test/groovy/javasabr/mqtt/service/publish/processor/Qos0IncomingPublishProcessorTest.groovy

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,18 @@
1-
package javasabr.mqtt.service.publish.handler.impl
1+
package javasabr.mqtt.service.publish.processor
22

33
import javasabr.mqtt.model.MqttVersion
44
import javasabr.mqtt.model.QoS
5-
import javasabr.mqtt.model.publishing.Publish
65
import javasabr.mqtt.model.subscription.Subscription
6+
import javasabr.mqtt.model.subscription.TestPublishFactory
77
import javasabr.mqtt.network.message.out.PublishMqtt5OutMessage
88
import javasabr.mqtt.service.TestExternalNetworkMqttUser
9-
import javasabr.mqtt.service.publish.processor.Qos0IncomingPublishProcessor
109
import javasabr.rlib.collections.array.Array
1110

1211
class Qos0IncomingPublishProcessorTest extends QosIncomingPublishProcessorTest {
1312

1413
def "should not provide any feedback for accepted publish with subscribers"() {
1514
given:
16-
def publishInHandler = new Qos0IncomingPublishProcessor(
15+
def processor = new Qos0IncomingPublishProcessor(
1716
defaultSubscriptionService,
1817
defaultPublishDeliveringService,
1918
defaultMessageOutFactoryService,
@@ -24,8 +23,8 @@ class Qos0IncomingPublishProcessorTest extends QosIncomingPublishProcessorTest {
2423
def user1 = subscriber1.user() as TestExternalNetworkMqttUser
2524
def user2 = subscriber2.user() as TestExternalNetworkMqttUser
2625
def user3 = publisher.user() as TestExternalNetworkMqttUser
27-
def topicFilter = defaultTopicService.createTopicFilter(user1, "Qos0MqttPublishInMessageHandlerTest/1")
28-
def expectedTopicName = defaultTopicService.createTopicName(user1, "Qos0MqttPublishInMessageHandlerTest/1")
26+
def topicFilter = defaultTopicService.createTopicFilter(user1, "Qos0IncomingPublishProcessorTest/1")
27+
def expectedTopicName = defaultTopicService.createTopicName(user1, "Qos0IncomingPublishProcessorTest/1")
2928
defaultSubscriptionService.subscribe(
3029
user1,
3130
user1.session(),
@@ -35,7 +34,7 @@ class Qos0IncomingPublishProcessorTest extends QosIncomingPublishProcessorTest {
3534
user2.session(),
3635
Array.of(Subscription.minimal(topicFilter, QoS.AT_MOST_ONCE)))
3736
when:
38-
publishInHandler.process(user3, Publish.minimal(QoS.AT_MOST_ONCE, expectedTopicName, testPayload))
37+
processor.process(user3, TestPublishFactory.incomingPublish(QoS.AT_MOST_ONCE, expectedTopicName, testPayload))
3938
then: 'sender should not have any feedback'
4039
user3.isEmpty()
4140
then: 'subscribers should receive the publish'
@@ -49,16 +48,16 @@ class Qos0IncomingPublishProcessorTest extends QosIncomingPublishProcessorTest {
4948

5049
def "should not provide any feedback for accepted publish without any subscriber"() {
5150
given:
52-
def publishInHandler = new Qos0IncomingPublishProcessor(
51+
def processor = new Qos0IncomingPublishProcessor(
5352
defaultSubscriptionService,
5453
defaultPublishDeliveringService,
5554
defaultMessageOutFactoryService,
5655
inMemoryRetainMessageService)
5756
def publisher = mockedExternalConnection(MqttVersion.MQTT_5)
5857
def user = publisher.user() as TestExternalNetworkMqttUser
59-
def topicName = defaultTopicService.createTopicName(user, "Qos0MqttPublishInMessageHandlerTest/2")
58+
def topicName = defaultTopicService.createTopicName(user, "Qos0IncomingPublishProcessorTest/2")
6059
when:
61-
publishInHandler.process(user, Publish.minimal(QoS.AT_MOST_ONCE, topicName, testPayload))
60+
processor.process(user, TestPublishFactory.incomingPublish(QoS.AT_MOST_ONCE, topicName, testPayload))
6261
then: 'sender should not have any feedback'
6362
user.isEmpty()
6463
}

0 commit comments

Comments
 (0)