@Test public void clearTasksTest() { assertTrue(scheduler.clearTasks().isEmpty()); TestRunnable executeTask = new TestRunnable(); TestRunnable scheduleTask = new TestRunnable(); scheduler.execute(executeTask); scheduler.schedule(scheduleTask, 1); List<Runnable> result = scheduler.clearTasks(); assertEquals(2, result.size()); assertTrue(result.contains(executeTask)); assertTrue(result.contains(scheduleTask)); } }
@Test public void getDelayTillNextTaskTest() { assertEquals(Long.MAX_VALUE, scheduler.getDelayTillNextTask()); scheduler.schedule(DoNothingRunnable.instance(), 1); assertEquals(1, scheduler.getDelayTillNextTask()); scheduler.execute(DoNothingRunnable.instance()); assertEquals(0, scheduler.getDelayTillNextTask()); }
@Test public void hasTaskReadyToRunTest() { assertFalse(scheduler.hasTaskReadyToRun()); scheduler.schedule(DoNothingRunnable.instance(), 1); assertFalse(scheduler.hasTaskReadyToRun()); scheduler.execute(DoNothingRunnable.instance()); assertTrue(scheduler.hasTaskReadyToRun()); }
@Test public void scheduleRunnableTest() { long scheduleDelay = 1000 * 10; TestRunnable executeRun = new TestRunnable(); TestRunnable scheduleRun = new TestRunnable(); scheduler.schedule(scheduleRun, scheduleDelay); scheduler.execute(executeRun); assertEquals(1, scheduler.tick()); assertEquals(1, executeRun.getRunCount()); // should have run assertEquals(0, scheduleRun.getRunCount()); // should NOT have run yet assertEquals(1, scheduler.advance(scheduleDelay)); assertEquals(1, executeRun.getRunCount()); // should NOT have run again assertEquals(1, scheduleRun.getRunCount()); // should have run assertEquals(scheduler.advance(scheduleDelay), 0); // should not execute anything assertEquals(1, executeRun.getRunCount()); // should NOT have run again assertEquals(1, scheduleRun.getRunCount()); // should NOT have run again }