@Override public void execute(Runnable task) { parentExecutor.execute(task == null ? null : wrapTask(task)); }
@Test (expected = RuntimeException.class) public void defaultConstructorFail() { ExecutorTaskInterceptor eti = new ExecutorTaskInterceptor(scheduler); eti.execute(DoNothingRunnable.instance()); }
@Test public void interceptSubmitCallableTest() { ListenableFuture<?> f = executorInterceptor.submit(new TestCallable()); assertEquals(1, testInterceptor.getInterceptedTasks().size()); assertTrue(testInterceptor.getInterceptedTasks().get(0) instanceof ListenableFutureTask); assertEquals(1, scheduler.tick()); // replaced task should run assertFalse(f.isDone()); }
@Test (expected = RuntimeException.class) public void nullConstructorFail() { @SuppressWarnings("unused") ExecutorTaskInterceptor eti = new ExecutorTaskInterceptor(scheduler, null); }
@Test public void interceptExecuteTest() { executorInterceptor.execute(tr); 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 interceptSubmitRunnableLambdaTest() { List<Runnable> interceptedTasks = new ArrayList<>(1); ExecutorTaskInterceptor executorInterceptorLambda = new ExecutorTaskInterceptor(scheduler, (r1) -> { interceptedTasks.add(r1); return DoNothingRunnable.instance(); }); executorInterceptorLambda.execute(tr); assertEquals(1, interceptedTasks.size()); assertTrue(tr == interceptedTasks.get(0)); assertEquals(1, scheduler.tick()); // replaced task should run assertEquals(0, tr.getRunCount()); // should have been replaced and not run }
@Test public void interceptSubmitRunnableWithResultTest() throws InterruptedException, ExecutionException { Object result = new Object(); ListenableFuture<?> f = executorInterceptor.submit(tr, result); 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); }
@Override public void execute(Runnable task) { parentExecutor.execute(task == null ? null : wrapTask(task)); }
@Test public void interceptSubmitRunnableTest() { ListenableFuture<?> f = executorInterceptor.submit(tr); 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()); }
@Override public <T> ListenableFuture<T> submit(Callable<T> task) { ArgumentVerifier.assertNotNull(task, "task"); ListenableFutureTask<T> lft = new ListenableFutureTask<>(false, task, this); parentExecutor.execute(wrapTask(lft)); return lft; } }
@Override public <T> ListenableFuture<T> submit(Runnable task, T result) { ArgumentVerifier.assertNotNull(task, "task"); ListenableFutureTask<T> lft = new ListenableFutureTask<>(false, wrapTask(task), result, this); parentExecutor.execute(lft); return lft; }
@Override public <T> ListenableFuture<T> submit(Runnable task, T result) { ArgumentVerifier.assertNotNull(task, "task"); ListenableFutureTask<T> lft = new ListenableFutureTask<>(false, wrapTask(task), result, this); parentExecutor.execute(lft); return lft; }
@Override public <T> ListenableFuture<T> submit(Callable<T> task) { ArgumentVerifier.assertNotNull(task, "task"); ListenableFutureTask<T> lft = new ListenableFutureTask<>(false, task, this); parentExecutor.execute(wrapTask(lft)); return lft; } }