public void testInvokeAllWithListenerWithTimeout() throws Exception {
testInvokeAllWithListener(true);
}
private void testInvokeAllWithListener(boolean withTimeout) throws Exception {
TestCallable task1 = new TestCallable();
TestCallable task2 = new TestCallable();
TestManagedTaskListener listener = new TestManagedTaskListener();
ArrayList<Callable<Object>> tasks = new ArrayList<Callable<Object>>();
tasks.add(task1);
tasks.add(task2);
List<Future<Object>> results = null;
if (withTimeout) {
results = service.invokeAll(tasks, 30, TimeUnit.SECONDS, listener);
} else {
results = service.invokeAll(tasks, listener);
}
Future f1 = results.get(0);
assertEquals(task1, f1.get(5, TimeUnit.SECONDS));
assertEquals(Arrays.asList(expected), task1.getList());
Future f2 = results.get(1);
assertEquals(task2, f2.get(5, TimeUnit.SECONDS));
assertEquals(Arrays.asList(expected), task2.getList());
assertTrue("waiting for taskDone()", listener.waitForDone(2, TIMEOUT));
List<TestManagedTaskListener.CallbackInfo> callbacks1 = createCallbackInfo(f1);
compareCallbacks(callbacks1, listener.getCallbacks(f1));