@Test public void scheduleAtFixedRateTest() { scheduleRecurringTest(false); }
@Test public void submitRunnableTest() { List<TestRunnable> runnables = getRunnableList(); List<Future<?>> futures = new ArrayList<>(runnables.size()); Iterator<TestRunnable> it = runnables.iterator();
@Test public void submitCallableTest() throws InterruptedException, ExecutionException { List<TestCallable> callables = getCallableList(); List<Future<Object>> futures = new ArrayList<>(callables.size()); Iterator<TestCallable> it = callables.iterator(); while (it.hasNext()) { Future<Object> future = scheduler.submit(it.next()); assertNotNull(future); futures.add(future); } // all should run now assertEquals(TEST_QTY, scheduler.tick(Clock.lastKnownTimeMillis())); it = callables.iterator(); while (it.hasNext()) { assertTrue(it.next().isDone()); } it = callables.iterator(); Iterator<Future<Object>> futureIt = futures.iterator(); while (futureIt.hasNext()) { Future<Object> future = futureIt.next(); TestCallable tc = it.next(); assertTrue(future.isDone()); assertTrue(tc.getReturnedResult() == future.get()); } }
@Test public void executeTest() { List<TestRunnable> runnables = getRunnableList(); Iterator<TestRunnable> it = runnables.iterator(); while (it.hasNext()) { scheduler.execute(it.next()); } // all should run now assertEquals(TEST_QTY, scheduler.tick(Clock.lastKnownTimeMillis())); it = runnables.iterator(); while (it.hasNext()) { assertEquals(1, it.next().getRunCount()); } // verify no more run after a second tick assertEquals(scheduler.tick(), 0); it = runnables.iterator(); while (it.hasNext()) { assertEquals(1, it.next().getRunCount()); } }
@Test public void scheduleWithFixedDelayTest() { scheduleRecurringTest(true); }