Fredrik Larsen
09/04/2019, 12:00 PM@Test
fun `validate test`() {
val scheduler = TestScheduler()
val upstream = Flowable.fromCallable { "foo" }
.subscribeOn(scheduler)
.observeOn(scheduler)
.delay(2, TimeUnit.SECONDS)
val implementation = upstream
.map { true }
.startWith(false)
.subscribeOn(scheduler)
.observeOn(scheduler)
.doOnEach { println(it) }
.test()
implementation
.assertNotTerminated()
.assertNoValues()
scheduler.advanceTimeBy(1, TimeUnit.SECONDS)
implementation
.assertNotTerminated()
.assertValues(false)
scheduler.advanceTimeBy(2, TimeUnit.SECONDS)
implementation
.assertNotComplete()
.assertValues(false, true) /* assertion fails*/
/*
* Output:
*
* OnNextNotification[false]
*
* java.lang.AssertionError: Value count differs; expected: 2 [false, true] but was: 1 [false] (latch = 1, values = 1, errors = 0, completions = 0)
* Expected :2 [false, true]
* Actual :1 [false] (latch = 1, values = 1, errors = 0, completions = 0)
*/
}
kioba
09/04/2019, 12:04 PMkioba
09/04/2019, 12:04 PMpublic final Single delay(long time, TimeUnit unit) {
return delay(time, unit, Schedulers.computation(), false);
}
Fredrik Larsen
09/04/2019, 12:05 PMFredrik Larsen
09/04/2019, 12:05 PMkioba
09/04/2019, 12:06 PMFredrik Larsen
09/04/2019, 12:06 PM