@Test
public void shouldExecuteLongRunningOutliers() throws Exception {

	// Given
	CompletableFuture<String> future = CompletableFuture.completedFuture("SampleText");
	// When
	CompletableFuture<Stream<Integer>> actualFuture = future.thenCompose(
			fanOut(ImmutableList.of(
					text -> 1,
					text -> 2,
					text -> {
						waitThreeSecond();
						return 4;
					}
			))
	);
	CompletableFuture<Integer> actualSum = actualFuture.thenApply(
			stream -> stream.reduce((a, b) -> a + b).orElse(-1)
	);
	// Then
	assertThat(actualSum.get(), is(equalTo(7)));
}