@Override public void scheduleAtFixedRate(Runnable task, long initialDelay, long period, TaskPriority priority) { parentScheduler.scheduleAtFixedRate(task == null ? null : wrapTask(task, true), initialDelay, period, priority); }
@Override @Test (expected = RuntimeException.class) public void defaultConstructorFail() { PrioritySchedulerTaskInterceptor psti = new PrioritySchedulerTaskInterceptor(scheduler); psti.schedule(DoNothingRunnable.instance(), 10, TaskPriority.Low); }
@Test public void interceptSubmitCallableWithPriorityTest() { ListenableFuture<?> f = priorityInterceptor.submit(new TestCallable(), TaskPriority.Low); assertEquals(1, testInterceptor.getInterceptedTasks().size()); assertTrue(testInterceptor.getInterceptedTasks().get(0) instanceof ListenableFutureTask); assertEquals(1, scheduler.tick()); // replaced task should run assertFalse(f.isDone()); }
@Test public void interceptSubmitScheduledCallableWithPriorityTest() { ListenableFuture<?> f = priorityInterceptor.submitScheduled(new TestCallable(), DELAY_TIME, TaskPriority.Low); assertEquals(1, testInterceptor.getInterceptedTasks().size()); assertTrue(testInterceptor.getInterceptedTasks().get(0) instanceof ListenableFutureTask); assertEquals(1, scheduler.advance(DELAY_TIME)); // replaced task should run assertFalse(f.isDone()); }
@Override @Test (expected = RuntimeException.class) public void nullConstructorFail() { @SuppressWarnings("unused") PrioritySchedulerTaskInterceptor psti = new PrioritySchedulerTaskInterceptor(scheduler, null); }
@Test public void interceptScheduleWithPriorityTest() { priorityInterceptor.schedule(tr, DELAY_TIME, TaskPriority.Low); assertEquals(1, testInterceptor.getInterceptedTasks().size()); assertTrue(tr == testInterceptor.getInterceptedTasks().get(0)); assertEquals(1, scheduler.advance(DELAY_TIME)); // replaced task should run assertEquals(0, tr.getRunCount()); // should have been replaced and not run }
@Test public void interceptScheduleWithFixedDelayWithPriorityTest() { priorityInterceptor.scheduleWithFixedDelay(tr, DELAY_TIME, DELAY_TIME, TaskPriority.Low); assertEquals(1, testInterceptor.getInterceptedTasks().size()); assertTrue(tr == testInterceptor.getInterceptedTasks().get(0)); assertEquals(1, scheduler.advance(DELAY_TIME)); // replaced task should run assertEquals(0, tr.getRunCount()); // should have been replaced and not run }
@Test public void interceptExecuteWithPriorityTest() { priorityInterceptor.execute(tr, TaskPriority.Low); assertEquals(1, testInterceptor.getInterceptedTasks().size()); assertTrue(tr == testInterceptor.getInterceptedTasks().get(0)); assertEquals(1, scheduler.tick()); // replaced task should run assertEquals(0, tr.getRunCount()); // should have been replaced and not run }
@Test public void interceptScheduleAtFixedRateWithPriorityTest() { priorityInterceptor.scheduleAtFixedRate(tr, DELAY_TIME, DELAY_TIME, TaskPriority.Low); assertEquals(1, testInterceptor.getInterceptedTasks().size()); assertTrue(tr == testInterceptor.getInterceptedTasks().get(0)); assertEquals(1, scheduler.advance(DELAY_TIME)); // replaced task should run assertEquals(0, tr.getRunCount()); // should have been replaced and not run }
@Test public void interceptSubmitRunnableWithResultWithPriorityTest() throws InterruptedException, ExecutionException { Object result = new Object(); ListenableFuture<?> f = priorityInterceptor.submit(tr, result, TaskPriority.Low); assertEquals(1, testInterceptor.getInterceptedTasks().size()); assertTrue(tr == testInterceptor.getInterceptedTasks().get(0)); assertEquals(1, scheduler.tick()); // replaced task should run assertEquals(0, tr.getRunCount()); // should have been replaced and not run assertTrue(f.isDone()); assertTrue(f.get() == result); }
@Test public void interceptSubmitScheduledRunnableWithResultWithPriorityTest() throws InterruptedException, ExecutionException { Object result = new Object(); ListenableFuture<Object> f = priorityInterceptor.submitScheduled(tr, result, DELAY_TIME, TaskPriority.Low); assertEquals(1, testInterceptor.getInterceptedTasks().size()); assertTrue(tr == testInterceptor.getInterceptedTasks().get(0)); assertEquals(1, scheduler.advance(DELAY_TIME)); // replaced task should run assertEquals(0, tr.getRunCount()); // should have been replaced and not run assertTrue(f.isDone()); assertTrue(f.get() == result); }
@Before @Override public void setup() { scheduler = new TestableScheduler(); priorityInterceptor = new TestPrioritySchedulerInterceptor(scheduler); executorInterceptor = submitterSchedulerInterceptor = priorityInterceptor; testInterceptor = (TestInterceptor)executorInterceptor; interceptedTasks = new ArrayList<>(1); submitSchedulerTaskInterceptorLamba = new PrioritySchedulerTaskInterceptor(scheduler, (r1, b1) -> { interceptedTasks.add(r1); return DoNothingRunnable.instance(); }); tr = new TestRunnable(); }
@Override public void scheduleAtFixedRate(Runnable task, long initialDelay, long period, TaskPriority priority) { parentScheduler.scheduleAtFixedRate(task == null ? null : wrapTask(task, true), initialDelay, period, priority); }
@Test public void interceptSubmitRunnableWithPriorityTest() { ListenableFuture<?> f = priorityInterceptor.submit(tr, TaskPriority.Low); assertEquals(1, testInterceptor.getInterceptedTasks().size()); assertTrue(tr == testInterceptor.getInterceptedTasks().get(0)); assertEquals(1, scheduler.tick()); // replaced task should run assertEquals(0, tr.getRunCount()); // should have been replaced and not run assertTrue(f.isDone()); }
@Test public void interceptSubmitScheduledRunnableWithPriorityTest() { ListenableFuture<?> f = priorityInterceptor.submitScheduled(tr, DELAY_TIME, TaskPriority.Low); assertEquals(1, testInterceptor.getInterceptedTasks().size()); assertTrue(tr == testInterceptor.getInterceptedTasks().get(0)); assertEquals(1, scheduler.advance(DELAY_TIME)); // replaced task should run assertEquals(0, tr.getRunCount()); // should have been replaced and not run assertTrue(f.isDone()); }
@Override public void schedule(Runnable task, long delayInMs, TaskPriority priority) { parentScheduler.schedule(task == null ? null : wrapTask(task, false), delayInMs, priority); }
@Override public <T> ListenableFuture<T> submit(Runnable task, T result, TaskPriority priority) { return parentScheduler.submit(task == null ? null : wrapTask(task, false), result, priority); }
@Override public <T> ListenableFuture<T> submitScheduled(Runnable task, T result, long delayInMs, TaskPriority priority) { return parentScheduler.submitScheduled(task == null ? null : wrapTask(task, false), result, delayInMs, priority); }
@Override public void scheduleWithFixedDelay(Runnable task, long initialDelay, long recurringDelay, TaskPriority priority) { parentScheduler.scheduleWithFixedDelay(task == null ? null : wrapTask(task, true), initialDelay, recurringDelay, priority); }
@Override public <T> ListenableFuture<T> submitScheduled(Runnable task, T result, long delayInMs, TaskPriority priority) { return parentScheduler.submitScheduled(task == null ? null : wrapTask(task, false), result, delayInMs, priority); }