protected static void completeOperation(FutureResult futureResult, Callback callback, Object operationResult,
      Exception exception) {
    futureResult.done(operationResult, exception);
    if (callback != null) {
      callback.onCompletion(operationResult, exception);
    }
  }
Completes a router operation by invoking the {@code callback} and setting the {@code futureResult} with
{@code operationResult} (if any) and {@code exception} (if any).
@param futureResult the {@link FutureResult} that needs to be set.
@param callback the {@link Callback} that needs to be invoked. Can be null.
@param operationResult the result of the operation (if any).
@param exception {@link Exception} encountered while performing the operation (if any).
ambry-test-utils/src/main/java/com/github/ambry/router/InMemoryRouter.java