@Override public void handleRunStart() { if (fLastRun != null && !fLastRun.ranOnce()) { fail("last run did not complete"); } } };
@Override public void handleRunStart() { if (fLastRun != null) { av.assertTrue(fLastRun.ranOnce()); } av.signalComplete(); } };
@Override public void handleRunStart() { if (fLastRun != null) { av.assertTrue(fLastRun.ranOnce()); } av.signalComplete(); } };
@Test public void invokeListenerExceptionTest() { TestRunnable tr = new TestRuntimeFailureRunnable(); Runnable r = InvocationTee.tee(Runnable.class, null, tr); r.run(); // no exception should be thrown assertTrue(tr.ranOnce()); }
@Test public void invokeWithExceptionThrowingTest() { TestRunnable tr = new TestRunnable(); Runnable r = InvocationTee.teeWithExceptionThrowing(Runnable.class, null, tr); r.run(); // should run just like the normal version assertTrue(tr.ranOnce()); }
@Test public void invokeTest() { TestRunnable tr = new TestRunnable(); Runnable r = InvocationTee.tee(Runnable.class, null, tr); r.run(); assertTrue(tr.ranOnce()); }
@Test public void invokeAfterAllCompleteEmptyListTest() { List<ListenableFuture<?>> futures = Collections.emptyList(); TestRunnable tr = new TestRunnable(); FutureUtils.invokeAfterAllComplete(futures, tr); assertTrue(tr.ranOnce()); }
@Test public void runTest() { TestRunnable tr = new TestRunnable(); Runnable tsr = new ThrowableSuppressingRunnable(tr); tsr.run(); assertTrue(tr.ranOnce()); }
public static void addListenerTest(ListenableFuture<?> testFuture) { TestRunnable tr = new TestRunnable(); testFuture.addListener(tr); assertTrue(tr.ranOnce()); tr = new TestRunnable(); testFuture.addListener(tr, null); assertTrue(tr.ranOnce()); tr = new TestRunnable(); testFuture.addListener(tr, new SameThreadSubmitterExecutor()); assertTrue(tr.ranOnce()); }
@Test @SuppressWarnings("deprecation") public void runRunnableTest() { TestRunnable tr = new TestRunnable(); ExceptionUtils.runRunnable(tr); assertTrue(tr.ranOnce()); }
@Test public void awaitTerminationTest() throws InterruptedException { SingleThreadScheduler sts = new SingleThreadScheduler(); /* adding a run time to have greater chances that runnable * will be waiting to execute after shutdown call. */ TestRunnable lastRunnable = executeTestRunnables(sts, 5).get(TEST_QTY - 1); sts.shutdown(); sts.awaitTermination(); // runnable should already be done assertTrue(lastRunnable.ranOnce()); }
@Test public void callTest() { TestRunnable tr = new TestRunnable(); Object result = new Object(); RunnableCallableAdapter<?> rca = (RunnableCallableAdapter<?>)RunnableCallableAdapter.adapt(tr, result); assertTrue(result == rca.call()); assertTrue(tr.ranOnce()); }
@Test public void invokeAfterAllCompleteTest() { List<SettableListenableFuture<Void>> futures = Collections.singletonList(new SettableListenableFuture<>()); TestRunnable tr = new TestRunnable(); FutureUtils.invokeAfterAllComplete(futures, tr); assertEquals(0, tr.getRunCount()); futures.get(0).setResult(null); assertTrue(tr.ranOnce()); }
@Test public void cancelRunsListenersTest() { TestRunnable tr = new TestRunnable(); slf.addListener(tr); slf.cancel(false); assertTrue(tr.ranOnce()); }
@Test public void awaitTerminationWithTimeoutTest() throws InterruptedException { SingleThreadScheduler sts = new SingleThreadScheduler(); /* adding a run time to have greater chances that runnable * will be waiting to execute after shutdown call. */ TestRunnable lastRunnable = executeTestRunnables(sts, 5).get(TEST_QTY - 1); sts.shutdown(); assertTrue(sts.awaitTermination(1000 * 10)); // runnable should already be done assertTrue(lastRunnable.ranOnce()); }
@Test public void addListenerAlreadyCanceledTest() { ListenableFuture<?> lf = makeListenableFutureFactory().makeCanceled(); TestRunnable tr = new TestRunnable(); lf.addListener(tr); assertTrue(tr.ranOnce()); }
@Test public void listenerExceptionAddBeforeRunTest() { TestRunnable listener = new TestRuntimeFailureRunnable(); ListenableFutureTask<Object> future = makeFutureTask(DoNothingRunnable.instance(), null); future.addListener(listener); future.run(); assertTrue(listener.ranOnce()); }
@Test public void executeOnceTest() throws InterruptedException, ExecutionException { TestRunnable tr = new TestRunnable(); ExecuteOnGetFutureTask<?> geft = new ExecuteOnGetFutureTask<>(tr); geft.get(); geft.run(); geft.get(); // multiple get calls should not execute again either geft.run(); assertTrue(tr.ranOnce()); }
@Test public void advanceThenTickTest() { scheduler.execute(DoNothingRunnable.instance()); scheduler.advance(1000 * 10); TestRunnable tr = new TestRunnable(); scheduler.execute(tr); assertEquals(1, scheduler.tick()); assertTrue(tr.ranOnce()); }
@Test public void constructorTest() { assertEquals(0, instance.getRunCount()); assertFalse(instance.ranOnce()); assertFalse(instance.ranConcurrently()); assertEquals(0, instance.getRunDelayInMillis()); instance = new TestRunnable(DELAY_TIME); assertEquals(DELAY_TIME, instance.getRunDelayInMillis()); }