use of io.reactivex.rxjava3.android.testutil.CountingRunnable in project RxAndroid by ReactiveX.
the class HandlerSchedulerTest method workerScheduleOnceWithDelayUsesHook.
@Test
public void workerScheduleOnceWithDelayUsesHook() {
final CountingRunnable newCounter = new CountingRunnable();
final AtomicReference<Runnable> runnableRef = new AtomicReference<>();
RxJavaPlugins.setScheduleHandler(new Function<Runnable, Runnable>() {
@Override
public Runnable apply(Runnable runnable) {
runnableRef.set(runnable);
return newCounter;
}
});
Worker worker = scheduler.createWorker();
CountingRunnable counter = new CountingRunnable();
worker.schedule(counter, 1, MINUTES);
// Verify our runnable was passed to the schedulers hook.
assertSame(counter, runnableRef.get());
idleMainLooper(1, MINUTES);
runUiThreadTasks();
// Verify the scheduled runnable was the one returned from the hook.
assertEquals(1, newCounter.get());
assertEquals(0, counter.get());
}
use of io.reactivex.rxjava3.android.testutil.CountingRunnable in project RxAndroid by ReactiveX.
the class HandlerSchedulerTest method workerScheduleOnceUsesHook.
@Test
public void workerScheduleOnceUsesHook() {
final CountingRunnable newCounter = new CountingRunnable();
final AtomicReference<Runnable> runnableRef = new AtomicReference<>();
RxJavaPlugins.setScheduleHandler(new Function<Runnable, Runnable>() {
@Override
public Runnable apply(Runnable runnable) {
runnableRef.set(runnable);
return newCounter;
}
});
Worker worker = scheduler.createWorker();
CountingRunnable counter = new CountingRunnable();
worker.schedule(counter);
// Verify our runnable was passed to the schedulers hook.
assertSame(counter, runnableRef.get());
runUiThreadTasks();
// Verify the scheduled runnable was the one returned from the hook.
assertEquals(1, newCounter.get());
assertEquals(0, counter.get());
}
use of io.reactivex.rxjava3.android.testutil.CountingRunnable in project RxAndroid by ReactiveX.
the class HandlerSchedulerTest method workerScheduleOnceInputValidation.
@Test
public void workerScheduleOnceInputValidation() {
Worker worker = scheduler.createWorker();
try {
worker.schedule(null);
fail();
} catch (NullPointerException e) {
assertEquals("run == null", e.getMessage());
}
try {
worker.schedule(null, 1, MINUTES);
fail();
} catch (NullPointerException e) {
assertEquals("run == null", e.getMessage());
}
try {
worker.schedule(new CountingRunnable(), 1, null);
fail();
} catch (NullPointerException e) {
assertEquals("unit == null", e.getMessage());
}
}
use of io.reactivex.rxjava3.android.testutil.CountingRunnable in project RxAndroid by ReactiveX.
the class HandlerSchedulerTest method workerUnsubscriptionDoesNotAffectOtherWorkers.
@Test
public void workerUnsubscriptionDoesNotAffectOtherWorkers() {
Worker workerA = scheduler.createWorker();
CountingRunnable counterA = new CountingRunnable();
workerA.schedule(counterA, 1, MINUTES);
Worker workerB = scheduler.createWorker();
CountingRunnable counterB = new CountingRunnable();
workerB.schedule(counterB, 1, MINUTES);
workerA.dispose();
runUiThreadTasksIncludingDelayedTasks();
assertEquals(0, counterA.get());
assertEquals(1, counterB.get());
}
use of io.reactivex.rxjava3.android.testutil.CountingRunnable in project RxAndroid by ReactiveX.
the class HandlerSchedulerTest method directScheduleOncePostsImmediately.
@Test
public void directScheduleOncePostsImmediately() {
CountingRunnable counter = new CountingRunnable();
scheduler.scheduleDirect(counter);
runUiThreadTasks();
assertEquals(1, counter.get());
}
Aggregations