@Test
public void testIdleTimeout() throws InterruptedException {

  clock.incrementNanoTime(idleTime.toNanos() - 1);
  watchdog.run();
  assertThat(call.getController().isCancelled()).isFalse();
  clock.incrementNanoTime(1);
  watchdog.run();
  assertThat(call.getController().isCancelled()).isTrue();
  call.getController()
      .getObserver()
      .onError(new RuntimeException("Some upstream exception representing cancellation"));
  Throwable actualError = null;
  try {
    innerObserver.done.get();
  } catch (ExecutionException t) {
    actualError = t.getCause();
  }
  assertThat(actualError).isInstanceOf(WatchdogTimeoutException.class);
}