@Test public void testInitialValueEmittedNoProducer() { PublishSubject<Integer> source = PublishSubject.create(); TestSubscriber<Integer> ts = new TestSubscriber<>(); source .scan( 0, new BiFunction<Integer, Integer, Integer>() { @Override public Integer apply(Integer t1, Integer t2) { return t1 + t2; } }) .subscribe(ts); ts.assertNoErrors(); ts.assertNotComplete(); ts.assertValue(0); }
@Test public void timestampWithScheduler2() { TestScheduler scheduler = new TestScheduler(); PublishSubject<Integer> source = PublishSubject.create(); Observable<Timed<Integer>> m = source.timestamp(scheduler); m.subscribe(observer); source.onNext(1); source.onNext(2); scheduler.advanceTimeBy(100, TimeUnit.MILLISECONDS); scheduler.advanceTimeBy(100, TimeUnit.MILLISECONDS); source.onNext(3); InOrder inOrder = inOrder(observer); inOrder.verify(observer, times(1)).onNext(new Timed<>(1, 0, TimeUnit.MILLISECONDS)); inOrder.verify(observer, times(1)).onNext(new Timed<>(2, 0, TimeUnit.MILLISECONDS)); inOrder.verify(observer, times(1)).onNext(new Timed<>(3, 200, TimeUnit.MILLISECONDS)); verify(observer, never()).onError(any(Throwable.class)); verify(observer, never()).onComplete(); }