@Test public void autoRescheduleTest() { TestReschedulingOperation testOp = new TestReschedulingOperation(scheduler, SCHEDULE_DELAY, true); testOp.signalToRun(); // should run every time assertEquals(1, scheduler.advance(SCHEDULE_DELAY)); assertEquals(1, scheduler.advance(SCHEDULE_DELAY)); assertEquals(1, scheduler.getQueuedTaskCount()); assertEquals(2, testOp.tr.getRunCount()); }
@Test public void runOnSchedulerAfterSignaledTest() { TestReschedulingOperation testOp = new TestReschedulingOperation(scheduler, SCHEDULE_DELAY, false); assertEquals(0, scheduler.advance(SCHEDULE_DELAY)); testOp.signalToRun(); // should run once, but not again assertEquals(1, scheduler.advance(SCHEDULE_DELAY)); assertEquals(0, scheduler.advance(SCHEDULE_DELAY)); assertEquals(0, scheduler.getQueuedTaskCount()); testOp.signalToRun(); // should run again, but not again assertEquals(1, scheduler.advance(SCHEDULE_DELAY)); assertEquals(0, scheduler.advance(SCHEDULE_DELAY)); assertEquals(0, scheduler.getQueuedTaskCount()); assertEquals(2, testOp.tr.getRunCount()); }
@Test public void runOnExecutorAfterSignaledTest() { TestReschedulingOperation testOp = new TestReschedulingOperation(scheduler, false); assertEquals(0, scheduler.advance(SCHEDULE_DELAY)); testOp.signalToRun(); // should run once, but not again assertEquals(1, scheduler.tick()); assertEquals(0, scheduler.advance(SCHEDULE_DELAY)); assertEquals(0, scheduler.getQueuedTaskCount()); testOp.signalToRun(); // should run again, but not again assertEquals(1, scheduler.tick()); assertEquals(0, scheduler.advance(SCHEDULE_DELAY)); assertEquals(0, scheduler.getQueuedTaskCount()); assertEquals(2, testOp.tr.getRunCount()); }