@Test(timeout=60000)
public void testExceptionIsPropagated() throws Exception {

  final ThrowingCheckable target = new ThrowingCheckable();
  final FakeTimer timer = new FakeTimer();
  ThrottledAsyncChecker<Boolean, Boolean> checker =
      new ThrottledAsyncChecker<>(timer, MIN_ERROR_CHECK_GAP, 0,
          getExecutorService());
  final Optional<ListenableFuture<Boolean>> olf =
      checker.schedule(target, true);
  assertTrue(olf.isPresent());
  try {
    olf.get().get();
    fail("Failed to get expected ExecutionException");
  } catch(ExecutionException ee) {
    assertTrue(ee.getCause() instanceof DummyException);
  }
}