use of io.reactivex.rxjava3.core.Scheduler.Worker in project RxAndroid by ReactiveX.
the class HandlerSchedulerTest method workerScheduleOncePostsImmediately.
@Test
public void workerScheduleOncePostsImmediately() {
Worker worker = scheduler.createWorker();
CountingRunnable counter = new CountingRunnable();
worker.schedule(counter);
runUiThreadTasks();
assertEquals(1, counter.get());
}
use of io.reactivex.rxjava3.core.Scheduler.Worker in project RxAndroid by ReactiveX.
the class HandlerSchedulerTest method workerDisposableTracksDisposedState.
@Test
public void workerDisposableTracksDisposedState() {
Worker worker = scheduler.createWorker();
CountingRunnable counter = new CountingRunnable();
Disposable disposable = worker.schedule(counter);
assertFalse(disposable.isDisposed());
disposable.dispose();
assertTrue(disposable.isDisposed());
}
use of io.reactivex.rxjava3.core.Scheduler.Worker in project RxAndroid by ReactiveX.
the class HandlerSchedulerTest method workerSchedulePeriodicallyThrowingDoesNotReschedule.
@Test
@Ignore("Implementation delegated to default RxJava implementation")
public void workerSchedulePeriodicallyThrowingDoesNotReschedule() {
Worker worker = scheduler.createWorker();
CountingRunnable counter = new CountingRunnable() {
@Override
public void run() {
super.run();
if (get() == 2) {
throw new RuntimeException("Broken!");
}
}
};
worker.schedulePeriodically(counter, 1, 1, MINUTES);
runUiThreadTasks();
assertEquals(0, counter.get());
idleMainLooper(1, MINUTES);
runUiThreadTasks();
assertEquals(1, counter.get());
idleMainLooper(1, MINUTES);
runUiThreadTasks();
assertEquals(2, counter.get());
// Exception will have happened here during the last run() execution.
idleMainLooper(1, MINUTES);
runUiThreadTasks();
assertEquals(2, counter.get());
}
use of io.reactivex.rxjava3.core.Scheduler.Worker in project RxAndroid by ReactiveX.
the class HandlerSchedulerTest method workerSchedulePeriodicallyReschedulesItself.
@Test
@Ignore("Implementation delegated to default RxJava implementation")
public void workerSchedulePeriodicallyReschedulesItself() {
Worker worker = scheduler.createWorker();
CountingRunnable counter = new CountingRunnable();
worker.schedulePeriodically(counter, 1, 1, MINUTES);
runUiThreadTasks();
assertEquals(0, counter.get());
idleMainLooper(1, MINUTES);
runUiThreadTasks();
assertEquals(1, counter.get());
idleMainLooper(1, MINUTES);
runUiThreadTasks();
assertEquals(2, counter.get());
idleMainLooper(1, MINUTES);
runUiThreadTasks();
assertEquals(3, counter.get());
}
use of io.reactivex.rxjava3.core.Scheduler.Worker in project RxAndroid by ReactiveX.
the class HandlerSchedulerTest method workerSchedulePeriodicallySetAsync.
@Test
public void workerSchedulePeriodicallySetAsync() {
ShadowMessageQueue mainMessageQueue = shadowOf(Looper.getMainLooper().getQueue());
Worker worker = scheduler.createWorker();
worker.schedulePeriodically(new Runnable() {
@Override
public void run() {
}
}, 1, 1, MINUTES);
Message message = mainMessageQueue.getHead();
assertEquals(async, message.isAsynchronous());
}
Aggregations