use of io.reactivex.schedulers.TestScheduler in project RxJava by ReactiveX.
the class FlowableSkipTimedTest method testSkipTimedErrorBeforeTime.
@Test
public void testSkipTimedErrorBeforeTime() {
TestScheduler scheduler = new TestScheduler();
PublishProcessor<Integer> source = PublishProcessor.create();
Flowable<Integer> result = source.skip(1, TimeUnit.SECONDS, scheduler);
Subscriber<Object> o = TestHelper.mockSubscriber();
result.subscribe(o);
source.onNext(1);
source.onNext(2);
source.onNext(3);
source.onError(new TestException());
scheduler.advanceTimeBy(1, TimeUnit.SECONDS);
InOrder inOrder = inOrder(o);
inOrder.verify(o).onError(any(TestException.class));
inOrder.verifyNoMoreInteractions();
verify(o, never()).onNext(any());
verify(o, never()).onComplete();
}
use of io.reactivex.schedulers.TestScheduler in project RxJava by ReactiveX.
the class FlowableTakeTimedTest method testTakeTimedErrorAfterTime.
@Test
public void testTakeTimedErrorAfterTime() {
TestScheduler scheduler = new TestScheduler();
PublishProcessor<Integer> source = PublishProcessor.create();
Flowable<Integer> result = source.take(1, TimeUnit.SECONDS, scheduler);
Subscriber<Object> o = TestHelper.mockSubscriber();
result.subscribe(o);
source.onNext(1);
source.onNext(2);
source.onNext(3);
scheduler.advanceTimeBy(1, TimeUnit.SECONDS);
source.onNext(4);
source.onError(new TestException());
InOrder inOrder = inOrder(o);
inOrder.verify(o).onNext(1);
inOrder.verify(o).onNext(2);
inOrder.verify(o).onNext(3);
inOrder.verify(o).onComplete();
inOrder.verifyNoMoreInteractions();
verify(o, never()).onNext(4);
verify(o, never()).onError(any(TestException.class));
}
use of io.reactivex.schedulers.TestScheduler in project RxJava by ReactiveX.
the class FlowableTimerTest method timerCancelRace.
@Test
public void timerCancelRace() {
for (int i = 0; i < 500; i++) {
final TestSubscriber<Long> ts = new TestSubscriber<Long>();
final TestScheduler scheduler = new TestScheduler();
Flowable.timer(1, TimeUnit.SECONDS, scheduler).subscribe(ts);
Runnable r1 = new Runnable() {
@Override
public void run() {
scheduler.advanceTimeBy(1, TimeUnit.SECONDS);
}
};
Runnable r2 = new Runnable() {
@Override
public void run() {
ts.cancel();
}
};
TestHelper.race(r1, r2);
}
}
use of io.reactivex.schedulers.TestScheduler in project RxJava by ReactiveX.
the class BlockingObservableMostRecentTest method testSingleSourceManyIterators.
@Test(timeout = 1000)
public void testSingleSourceManyIterators() {
TestScheduler scheduler = new TestScheduler();
Observable<Long> source = Observable.interval(1, TimeUnit.SECONDS, scheduler).take(10);
Iterable<Long> iter = source.blockingMostRecent(-1L);
for (int j = 0; j < 3; j++) {
Iterator<Long> it = iter.iterator();
Assert.assertEquals(Long.valueOf(-1), it.next());
for (int i = 0; i < 9; i++) {
scheduler.advanceTimeBy(1, TimeUnit.SECONDS);
Assert.assertEquals(true, it.hasNext());
Assert.assertEquals(Long.valueOf(i), it.next());
}
scheduler.advanceTimeBy(1, TimeUnit.SECONDS);
Assert.assertEquals(false, it.hasNext());
}
}
use of io.reactivex.schedulers.TestScheduler in project RxJava by ReactiveX.
the class MaybeDelaySubscriptionTest method timedTestScheduler.
@Test
public void timedTestScheduler() {
TestScheduler scheduler = new TestScheduler();
TestObserver<Integer> ts = Maybe.just(1).delaySubscription(100, TimeUnit.MILLISECONDS, scheduler).test();
ts.assertEmpty();
scheduler.advanceTimeBy(99, TimeUnit.MILLISECONDS);
ts.assertEmpty();
scheduler.advanceTimeBy(1, TimeUnit.MILLISECONDS);
ts.assertResult(1);
}
Aggregations