Skip to content

Commit bd285e7

Browse files
Merge pull request #17 from caplin/renovate/mockk
fix(deps): update dependency io.mockk:mockk to v1.14.9
2 parents a775abd + b75d3da commit bd285e7

2 files changed

Lines changed: 54 additions & 51 deletions

File tree

gradle/libs.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ datasource = "8.0.11-1836-95c6e774"
1515
# Test Dependencies
1616
kotest = "5.9.1"
1717
turbine = "1.2.1"
18-
mockk = "1.13.14"
18+
mockk = "1.14.9"
1919

2020
# Spring BOM should manage other dependencies versions.
2121

reactive/kotlin/src/test/kotlin/com/caplin/integration/datasourcex/reactive/kotlin/BindTest.kt

Lines changed: 53 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@ import com.caplin.datasource.messaging.CachedMessageFactory
99
import com.caplin.datasource.messaging.container.ContainerMessage
1010
import com.caplin.datasource.messaging.json.JsonMessage
1111
import com.caplin.datasource.messaging.record.GenericMessage
12-
import com.caplin.datasource.namespace.RegexNamespace
1312
import com.caplin.datasource.publisher.CachingDataProvider
1413
import com.caplin.datasource.publisher.CachingPublisher
1514
import com.caplin.integration.datasourcex.reactive.api.ContainerEvent
1615
import com.caplin.integration.datasourcex.reactive.api.ContainerEvent.RowEvent.Remove
1716
import com.caplin.integration.datasourcex.reactive.api.ContainerEvent.RowEvent.Upsert
1817
import com.caplin.integration.datasourcex.reactive.api.InsertAt.HEAD
18+
import com.caplin.integration.datasourcex.util.AntPatternNamespace
1919
import com.caplin.integration.datasourcex.util.flow.ValueOrCompletion
2020
import com.caplin.integration.datasourcex.util.flow.ValueOrCompletion.Completion
2121
import com.caplin.integration.datasourcex.util.flow.ValueOrCompletion.Value
@@ -37,6 +37,7 @@ import io.mockk.verifyOrder
3737
import java.time.Duration
3838
import java.util.concurrent.ConcurrentHashMap
3939
import kotlin.properties.ReadOnlyProperty
40+
import kotlin.time.Duration.Companion.milliseconds
4041
import kotlinx.coroutines.ExperimentalCoroutinesApi
4142
import kotlinx.coroutines.delay
4243
import kotlinx.coroutines.flow.Flow
@@ -82,7 +83,9 @@ class BindTest :
8283

8384
val dataSource =
8485
mockk<DataSource> {
85-
every { createCachingPublisher(any<RegexNamespace>(), capture(dataProviders)) } answers
86+
every {
87+
createCachingPublisher(any<AntPatternNamespace>(), capture(dataProviders))
88+
} answers
8689
{
8790
secondArg<CachingDataProvider>().setPublisher(cachingPublisher)
8891
cachingPublisher
@@ -134,11 +137,11 @@ class BindTest :
134137

135138
containerDataProviderCaptor.onRequest("/SUBJECT/1")
136139

137-
delay(10)
140+
delay(10.milliseconds)
138141

139142
verify(exactly = 0) { cachedMessageFactory.createContainerMessage("/SUBJECT/1") }
140143

141-
delay(1)
144+
delay(1.milliseconds)
142145

143146
verify { cachedMessageFactory.createContainerMessage("/SUBJECT/1") }
144147

@@ -161,21 +164,21 @@ class BindTest :
161164

162165
containerDataProviderCaptor.onRequest("/SUBJECT/1")
163166

164-
delay(1)
167+
delay(1.milliseconds)
165168
requestedContainerSubjects.keys shouldContain "/SUBJECT/1"
166169
val sharedFlow = requestedContainerSubjects.getValue("/SUBJECT/1")
167170

168171
sharedFlow.emitUpdate(Upsert(key = "1", value = mapOf("1" to "a", "2" to "b")))
169172

170-
delay(50)
173+
delay(50.milliseconds)
171174

172175
sharedFlow.emitUpdate(Upsert(key = "2", value = mapOf("1" to "x", "2" to "y")))
173176

174177
verify(exactly = 0) { cachingPublisher.publish(any()) }
175-
delay(50)
178+
delay(50.milliseconds)
176179

177180
verify(exactly = 0) { cachingPublisher.publish(any()) }
178-
delay(51)
181+
delay(51.milliseconds)
179182

180183
verify { cachedMessageFactory.createContainerMessage("/SUBJECT/1") }
181184
containerMessages.last().also { containerMessage ->
@@ -187,7 +190,7 @@ class BindTest :
187190
}
188191

189192
dataProviderCaptor.onRequest("/SUBJECT/1-items/1")
190-
delay(1)
193+
delay(1.milliseconds)
191194

192195
verify { cachedMessageFactory.createGenericMessage("/SUBJECT/1-items/1") }
193196
genericMessages.last().also { genericMessage ->
@@ -199,7 +202,7 @@ class BindTest :
199202
}
200203

201204
dataProviderCaptor.onRequest("/SUBJECT/1-items/2")
202-
delay(1)
205+
delay(1.milliseconds)
203206

204207
verify { cachedMessageFactory.createGenericMessage("/SUBJECT/1-items/2") }
205208
genericMessages.last().also { genericMessage ->
@@ -212,11 +215,11 @@ class BindTest :
212215

213216
sharedFlow.emitUpdate(Remove(key = "2"))
214217

215-
delay(50)
218+
delay(50.milliseconds)
216219

217220
sharedFlow.emitUpdate(Upsert(key = "3", value = mapOf("1" to "l", "2" to "m")))
218221

219-
delay(101)
222+
delay(101.milliseconds)
220223

221224
verify { cachedMessageFactory.createContainerMessage("/SUBJECT/1") }
222225
containerMessages.last().also { containerMessage ->
@@ -228,7 +231,7 @@ class BindTest :
228231
}
229232

230233
dataProviderCaptor.onRequest("/SUBJECT/1-items/3")
231-
delay(1)
234+
delay(1.milliseconds)
232235

233236
verify { cachedMessageFactory.createGenericMessage("/SUBJECT/1-items/3") }
234237
genericMessages.last().also { genericMessage ->
@@ -259,18 +262,18 @@ class BindTest :
259262
}
260263

261264
containerDataProviderCaptor.onRequest("/SUBJECT/1")
262-
delay(1)
265+
delay(1.milliseconds)
263266

264267
requestedContainerSubjects.keys shouldContain "/SUBJECT/1"
265268
val sharedFlow = requestedContainerSubjects.getValue("/SUBJECT/1")
266269

267270
sharedFlow.emitUpdate(Upsert(key = "1", value = mapOf()))
268271

269-
delay(50)
272+
delay(50.milliseconds)
270273

271274
sharedFlow.emitUpdate(Upsert(key = "2", value = mapOf()))
272275

273-
delay(101)
276+
delay(101.milliseconds)
274277

275278
verify { cachedMessageFactory.createContainerMessage("/SUBJECT/1") }
276279
containerMessages.last().also { containerMessage ->
@@ -282,7 +285,7 @@ class BindTest :
282285
}
283286

284287
containerDataProviderCaptor.onDiscard("/SUBJECT/1")
285-
delay(1)
288+
delay(1.milliseconds)
286289
}
287290

288291
test("Generic Container - Re-request") {
@@ -299,18 +302,18 @@ class BindTest :
299302
}
300303

301304
containerDataProviderCaptor.onRequest("/SUBJECT/1")
302-
delay(1)
305+
delay(1.milliseconds)
303306

304307
requestedContainerSubjects.keys shouldContain "/SUBJECT/1"
305308
val sharedFlow = requestedContainerSubjects.getValue("/SUBJECT/1")
306309

307310
sharedFlow.emitUpdate(Upsert(key = "1", value = mapOf()))
308311

309-
delay(50)
312+
delay(50.milliseconds)
310313

311314
sharedFlow.emitUpdate(Upsert(key = "2", value = mapOf()))
312315

313-
delay(101)
316+
delay(101.milliseconds)
314317

315318
verify { cachedMessageFactory.createContainerMessage("/SUBJECT/1") }
316319
containerMessages.last().also { containerMessage ->
@@ -322,23 +325,23 @@ class BindTest :
322325
}
323326

324327
containerDataProviderCaptor.onDiscard("/SUBJECT/1")
325-
delay(1)
328+
delay(1.milliseconds)
326329

327330
// Resubscribe
328331

329332
containerDataProviderCaptor.onRequest("/SUBJECT/1")
330-
delay(1)
333+
delay(1.milliseconds)
331334

332335
requestedContainerSubjects.keys shouldContain "/SUBJECT/1"
333336
val sharedFlow2 = requestedContainerSubjects.getValue("/SUBJECT/1")
334337

335338
sharedFlow2.emitUpdate(Upsert(key = "1", value = mapOf()))
336339

337-
delay(50)
340+
delay(50.milliseconds)
338341

339342
sharedFlow2.emitUpdate(Upsert(key = "2", value = mapOf()))
340343

341-
delay(101)
344+
delay(101.milliseconds)
342345

343346
verify { cachedMessageFactory.createContainerMessage("/SUBJECT/1") }
344347

@@ -351,7 +354,7 @@ class BindTest :
351354
}
352355

353356
containerDataProviderCaptor.onDiscard("/SUBJECT/1")
354-
delay(1)
357+
delay(1.milliseconds)
355358
}
356359

357360
test("Generic Container - Upsert and remove quicker than debounce") {
@@ -362,27 +365,27 @@ class BindTest :
362365
}
363366

364367
containerDataProviderCaptor.onRequest("/SUBJECT/1")
365-
delay(1)
368+
delay(1.milliseconds)
366369

367370
requestedContainerSubjects.keys shouldContain "/SUBJECT/1"
368371
val sharedFlow = requestedContainerSubjects.getValue("/SUBJECT/1")
369372

370373
sharedFlow.emitUpdate(Upsert(key = "1", value = mapOf()))
371-
delay(50)
374+
delay(50.milliseconds)
372375

373376
sharedFlow.emitUpdate(Remove(key = "1"))
374-
delay(100)
377+
delay(100.milliseconds)
375378

376379
verify(exactly = 0) { cachingPublisher.publish(any()) }
377380

378381
sharedFlow.emitUpdate(Upsert(key = "1", value = mapOf()))
379-
delay(50)
382+
delay(50.milliseconds)
380383

381384
sharedFlow.emitUpdate(Upsert(key = "2", value = mapOf()))
382-
delay(50)
385+
delay(50.milliseconds)
383386

384387
sharedFlow.emitUpdate(Remove(key = "1"))
385-
delay(101)
388+
delay(101.milliseconds)
386389

387390
verify { cachedMessageFactory.createContainerMessage("/SUBJECT/1") }
388391
containerMessages.last().also { containerMessage ->
@@ -393,15 +396,15 @@ class BindTest :
393396
}
394397

395398
dataProviderCaptor.onRequest("/SUBJECT/1-items/2")
396-
delay(1)
399+
delay(1.milliseconds)
397400
verify { cachedMessageFactory.createGenericMessage("/SUBJECT/1-items/2") }
398401
genericMessages.last().also { genericMessage ->
399402
verify { cachingPublisher.publish(genericMessage) }
400403
}
401404

402405
containerDataProviderCaptor.onDiscard("/SUBJECT/1")
403406
dataProviderCaptor.onDiscard("/SUBJECT/1-items/2")
404-
delay(1)
407+
delay(1.milliseconds)
405408

406409
confirmVerified(cachedMessageFactory)
407410
}
@@ -414,23 +417,23 @@ class BindTest :
414417
}
415418

416419
containerDataProviderCaptor.onRequest("/SUBJECT/1")
417-
delay(1)
420+
delay(1.milliseconds)
418421

419422
requestedContainerSubjects.keys shouldContain "/SUBJECT/1"
420423
val sharedFlow = requestedContainerSubjects.getValue("/SUBJECT/1")
421424

422425
sharedFlow.subscriptionCount.value shouldNotBeEqual 0
423426

424427
sharedFlow.emitUpdate(Upsert(key = "1", value = mapOf()))
425-
delay(50)
428+
delay(50.milliseconds)
426429

427430
dataProviderCaptor.onRequest("/SUBJECT/1-items/1")
428-
delay(1)
431+
delay(1.milliseconds)
429432

430433
sharedFlow.subscriptionCount.value shouldNotBeEqual 0
431434

432435
sharedFlow.emit(Completion(IllegalStateException()))
433-
delay(1)
436+
delay(1.milliseconds)
434437

435438
sharedFlow.subscriptionCount.value shouldBeEqual 0
436439

@@ -450,23 +453,23 @@ class BindTest :
450453
}
451454

452455
containerDataProviderCaptor.onRequest("/SUBJECT/1")
453-
delay(1)
456+
delay(1.milliseconds)
454457

455458
requestedContainerSubjects.keys shouldContain "/SUBJECT/1"
456459
val sharedFlow = requestedContainerSubjects.getValue("/SUBJECT/1")
457460

458461
sharedFlow.subscriptionCount.value shouldNotBeEqual 0
459462

460463
sharedFlow.emitUpdate(Upsert(key = "1", value = mapOf()))
461-
delay(50)
464+
delay(50.milliseconds)
462465

463466
dataProviderCaptor.onRequest("/SUBJECT/1-items/1")
464-
delay(1)
467+
delay(1.milliseconds)
465468

466469
sharedFlow.subscriptionCount.value shouldNotBeEqual 0
467470

468471
sharedFlow.emit(Completion())
469-
delay(1)
472+
delay(1.milliseconds)
470473

471474
verify { cachedMessageFactory.createContainerMessage("/SUBJECT/1") }
472475
verify { cachedMessageFactory.createGenericMessage("/SUBJECT/1-items/1") }
@@ -489,7 +492,7 @@ class BindTest :
489492
}
490493

491494
dataProviderCaptor.onRequest("/SUBJECT/1-items/1")
492-
delay(1)
495+
delay(1.milliseconds)
493496

494497
verify { cachedMessageFactory.createSubjectErrorEvent("/SUBJECT/1-items/1", NotFound) }
495498
subjectErrorEvents.last().also { subjectErrorEvent ->
@@ -505,32 +508,32 @@ class BindTest :
505508
}
506509

507510
containerDataProviderCaptor.onRequest("/SUBJECT/1")
508-
delay(1)
511+
delay(1.milliseconds)
509512

510513
requestedContainerSubjects.keys shouldContain "/SUBJECT/1"
511514
val sharedFlow = requestedContainerSubjects.getValue("/SUBJECT/1")
512515

513516
sharedFlow.subscriptionCount.value shouldNotBeEqual 0
514517

515518
sharedFlow.emitUpdate(Upsert(key = "1", value = mapOf()))
516-
delay(101)
519+
delay(101.milliseconds)
517520

518521
verify { cachedMessageFactory.createContainerMessage("/SUBJECT/1") }
519522

520523
dataProviderCaptor.onRequest("/SUBJECT/1-items/2")
521-
delay(9000)
524+
delay(9000.milliseconds)
522525
verify(exactly = 0) {
523526
cachedMessageFactory.createSubjectErrorEvent("/SUBJECT/1-items/2", NotFound)
524527
}
525-
delay(1001)
528+
delay(1001.milliseconds)
526529

527530
verify { cachedMessageFactory.createSubjectErrorEvent("/SUBJECT/1-items/2", NotFound) }
528531
subjectErrorEvents.last().also { subjectErrorEvent ->
529532
verify { cachingPublisher.publishSubjectErrorEvent(subjectErrorEvent) }
530533
}
531534

532535
containerDataProviderCaptor.onDiscard("/SUBJECT/1")
533-
delay(1)
536+
delay(1.milliseconds)
534537

535538
confirmVerified(cachedMessageFactory)
536539
}
@@ -543,7 +546,7 @@ class BindTest :
543546
requestedGenericSubjects.keys shouldNotContain "/SUBJECT/1"
544547

545548
dataProviderCaptor.onRequest("/SUBJECT/1")
546-
delay(1)
549+
delay(1.milliseconds)
547550

548551
requestedGenericSubjects.keys shouldContain "/SUBJECT/1"
549552

@@ -591,7 +594,7 @@ class BindTest :
591594
requestedGenericSubjects.keys shouldNotContain "/SUBJECT/1"
592595

593596
dataProviderCaptor.onRequest("/SUBJECT/1")
594-
delay(1)
597+
delay(1.milliseconds)
595598

596599
requestedGenericSubjects.keys shouldContain "/SUBJECT/1"
597600

@@ -627,7 +630,7 @@ class BindTest :
627630

628631
requestedJsonSubjects.keys shouldNotContain "/SUBJECT/1"
629632
dataProviderCaptor.onRequest("/SUBJECT/1")
630-
delay(1)
633+
delay(1.milliseconds)
631634
requestedJsonSubjects.keys shouldContain "/SUBJECT/1"
632635

633636
val sharedFlow = requestedJsonSubjects.getValue("/SUBJECT/1")

0 commit comments

Comments
 (0)