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

  final StalledCheckable target = new StalledCheckable();
  final FakeTimer timer = new FakeTimer();
  ThrottledAsyncChecker<Boolean, Boolean> checker =
      new ThrottledAsyncChecker<>(timer, MIN_ERROR_CHECK_GAP, 0,
          getExecutorService());
  final Optional<ListenableFuture<Boolean>> olf1 =
      checker.schedule(target, true);
  final Optional<ListenableFuture<Boolean>> olf2 =
      checker.schedule(target, true);
  // Ensure that concurrent requests return the future object
  // for the first caller.
  assertTrue(olf1.isPresent());
  assertFalse(olf2.isPresent());
}