@Test
public void failFast() throws Exception {

  future1.completeExceptionally(new Exception());
  future2.completeExceptionally(new Exception());
  try {
    underTest.run().join();
    fail();
  } catch (Exception ignore) {}
  assertThat(future1.isCancelled(), is(false));
  assertThat(future2.isCancelled(), is(false));
  assertThat(future3.isCancelled(), is(true));
}