private static void makeCompleteListFutureTest(int errorIndex) throws InterruptedException, TimeoutException, ExecutionException { List<ListenableFuture<?>> futures = makeFutures(TEST_QTY, errorIndex); ListenableFuture<List<ListenableFuture<?>>> f = FutureUtils.makeCompleteListFuture(futures); verifyCompleteFuture(f, futures); verifyAllIncluded(futures, f.get(), null); }
@Test public void makeFailurePropagatingCompleteFutureWithResultNotCompleteTest() throws InterruptedException, TimeoutException, ExecutionException { String result = StringUtils.makeRandomString(5); List<SettableListenableFuture<?>> futures = new ArrayList<>(TEST_QTY); for (int i = 0; i < TEST_QTY; i++) { SettableListenableFuture<?> future = new SettableListenableFuture<>(); if (i != 0) { future.setResult(null); } futures.add(future); } ListenableFuture<String> f = FutureUtils.makeFailurePropagatingCompleteFuture(futures, result); futures.get(0).setResult(null); verifyCompleteFuture(f, futures); assertEquals(result, f.get()); }
private static void makeCompleteFutureTest(int errorIndex) throws InterruptedException, TimeoutException, ExecutionException { List<ListenableFuture<?>> futures = makeFutures(TEST_QTY, errorIndex); ListenableFuture<?> f = FutureUtils.makeCompleteFuture(futures); verifyCompleteFuture(f, futures); assertNull(f.get()); }
@Test public void makeCompleteFutureWithResultNotCompleteTest() throws InterruptedException, TimeoutException, ExecutionException { String result = StringUtils.makeRandomString(5); List<SettableListenableFuture<?>> futures = new ArrayList<>(TEST_QTY); for (int i = 0; i < TEST_QTY; i++) { SettableListenableFuture<?> future = new SettableListenableFuture<>(); if (i != 0) { future.setResult(null); } futures.add(future); } ListenableFuture<String> f = FutureUtils.makeCompleteFuture(futures, result); futures.get(0).setResult(null); // complete now verifyCompleteFuture(f, futures); assertEquals(result, f.get()); }
@Test public void makeCompleteFutureWithNullResultTest() throws InterruptedException, TimeoutException, ExecutionException { List<ListenableFuture<?>> futures = makeFutures(TEST_QTY, -1); ListenableFuture<?> f = FutureUtils.makeCompleteFuture(futures, null); verifyCompleteFuture(f, futures); assertNull(f.get()); }
@Test public void makeSuccessListFutureWithCancelErrorTest() throws ExecutionException, InterruptedException, TimeoutException { List<ListenableFuture<?>> futures = makeFutures(TEST_QTY, -1); SettableListenableFuture<?> cancelFuture = new SettableListenableFuture<>(); cancelFuture.cancel(false); futures.add(cancelFuture); ListenableFuture<List<ListenableFuture<?>>> f = FutureUtils.makeSuccessListFuture(futures); verifyCompleteFuture(f, futures); verifyAllIncluded(futures, f.get(), cancelFuture); }
@Test public void makeSuccessListFutureWithErrorTest() throws ExecutionException, InterruptedException, TimeoutException { List<ListenableFuture<?>> futures = makeFutures(TEST_QTY, -1); SettableListenableFuture<?> failureFuture = new SettableListenableFuture<>(); failureFuture.setFailure(null); futures.add(failureFuture); ListenableFuture<List<ListenableFuture<?>>> f = FutureUtils.makeSuccessListFuture(futures); verifyCompleteFuture(f, futures); verifyAllIncluded(futures, f.get(), failureFuture); }
@Test public void makeFailurePropagatingCompleteFutureTest() throws InterruptedException, TimeoutException, ExecutionException { List<ListenableFuture<?>> futures = makeFutures(TEST_QTY, -1); ListenableFuture<?> f = FutureUtils.makeFailurePropagatingCompleteFuture(futures); verifyCompleteFuture(f, futures); assertNull(f.get()); }
@Test public void makeFailurePropagatingCompleteFutureWithNullResultTest() throws InterruptedException, TimeoutException, ExecutionException { List<ListenableFuture<?>> futures = makeFutures(TEST_QTY, -1); ListenableFuture<?> f = FutureUtils.makeFailurePropagatingCompleteFuture(futures, null); verifyCompleteFuture(f, futures); assertNull(f.get()); }
@Test public void makeFailureListFutureWithErrorTest() throws InterruptedException, TimeoutException, ExecutionException { List<ListenableFuture<?>> futures = makeFutures(TEST_QTY, -1); SettableListenableFuture<?> failureFuture = new SettableListenableFuture<>(); failureFuture.setFailure(null); futures.add(failureFuture); ListenableFuture<List<ListenableFuture<?>>> f = FutureUtils.makeFailureListFuture(futures); verifyCompleteFuture(f, futures); verifyNoneIncluded(futures, f.get(), failureFuture); }
@Test public void makeFailureListFutureWithCancelErrorTest() throws InterruptedException, TimeoutException, ExecutionException { List<ListenableFuture<?>> futures = makeFutures(TEST_QTY, -1); SettableListenableFuture<?> cancelFuture = new SettableListenableFuture<>(); cancelFuture.cancel(false); futures.add(cancelFuture); ListenableFuture<List<ListenableFuture<?>>> f = FutureUtils.makeFailureListFuture(futures); verifyCompleteFuture(f, futures); verifyNoneIncluded(futures, f.get(), cancelFuture); }
@Test public void makeCompleteFutureWithResultAlreadyDoneTest() throws InterruptedException, TimeoutException, ExecutionException { String result = StringUtils.makeRandomString(5); List<ListenableFuture<?>> futures = makeFutures(TEST_QTY, -1); ListenableFuture<String> f = FutureUtils.makeCompleteFuture(futures, result); verifyCompleteFuture(f, futures); assertEquals(result, f.get()); }
@Test public void makeFailurePropagatingCompleteFutureWithResultAlreadyDoneTest() throws InterruptedException, TimeoutException, ExecutionException { String result = StringUtils.makeRandomString(5); List<ListenableFuture<?>> futures = makeFutures(TEST_QTY, -1); ListenableFuture<String> f = FutureUtils.makeFailurePropagatingCompleteFuture(futures, result); verifyCompleteFuture(f, futures); assertEquals(result, f.get()); }