@Test fun a() { val ts = TestScheduler() val ps = PublishSubject.create() val s = TestSubscriber.create() ps.switchMap { value -> when { value > 3 -> Observable.timer(5, SECONDS, ts).map { value } else -> Observable.never() } }.subscribe(s) ps.onNext(1) ps.onNext(2) ps.onNext(3) ps.onNext(4) ts.advanceTimeBy(2, SECONDS) ps.onNext(6) ts.advanceTimeBy(5, SECONDS) s.assertValue(6) }