@Test
public void testFutureCallInitialOperationUnexpectedFail() throws Exception {

  String opName = "testFutureCallInitialOperationUnexpectedFail";
  OperationSnapshot initialOperation = getOperation(opName, null, null, null, false);
  OperationSnapshot resultOperation = getOperation(opName, null, null, null, false);
  UnaryCallable<Integer, OperationSnapshot> initialCallable =
      mockGetOpSnapshotCallable(StatusCode.Code.OK, initialOperation);
  LongRunningClient longRunningClient = mockGetOperation(StatusCode.Code.OK, resultOperation);
  OperationCallableImpl<Integer, Color, Currency> callableImpl =
      Callables.longRunningOperationImpl(
          initialCallable, callSettings, initialContext, longRunningClient);
  RuntimeException thrownException = new RuntimeException();
  ApiFuture<OperationSnapshot> initialFuture = ApiFutures.immediateFailedFuture(thrownException);
  OperationFuture<Color, Currency> future =
      callableImpl.futureCall(initialFuture, FakeCallContext.createDefault());
  assertFutureFailMetaFail(future, RuntimeException.class, null);
  assertThat(executor.getIterationsCount()).isEqualTo(0);
}