protected void testNoResponseNoNotification(OperationHelper opHelper, List<ReplicaId> failedReplicaIds, BlobId blobId,
      AtomicInteger successfulResponseCount, AtomicBoolean invalidResponse) throws Exception {
    failedReplicaIds.clear();
    successfulResponseCount.set(0);
    invalidResponse.set(false);
    FutureResult futureResult = opHelper.submitOperation(blobId);
    List<RequestInfo> allRequests = new ArrayList<>();
    Set<Integer> allDropped = new HashSet<>();
    long loopStartTimeMs = SystemTime.getInstance().milliseconds();
    while (!futureResult.isDone()) {
      if (loopStartTimeMs + AWAIT_TIMEOUT_MS < SystemTime.getInstance().milliseconds()) {
        Assert.fail("Waited too long for requests.");
      }
      opHelper.pollOpManager(allRequests, allDropped);
      mockTime.sleep(REQUEST_TIMEOUT_MS + 1);
    }
    System.out.println(allDropped);
    Assert.assertEquals("Successful notification should not have arrived for replicas that were up", 0,
        successfulResponseCount.get());
    Assert.assertEquals("Failure detector should not have been notified", 0, failedReplicaIds.size());
    Assert.assertFalse("There should be no notifications of any other kind", invalidResponse.get());
    Set<Integer> allCorrelationIds = allRequests.stream()
        .map(requestInfo -> requestInfo.getRequest().getCorrelationId())
        .collect(Collectors.toSet());
    Assert.assertEquals("Timed out requests should be dropped", allCorrelationIds, new HashSet<>(allDropped));
    allRequests.forEach(r -> r.getRequest().release());
  }
Test that failure detector is not notified when the router times out requests.
@param opHelper the {@link OperationHelper}
@param failedReplicaIds the list that will contain all the replicas for which failure was notified.
@param blobId the id of the blob to get/delete. For puts, this will be null.
@param successfulResponseCount the AtomicInteger that will contain the count of replicas for which success was
                               notified.
@param invalidResponse the AtomicBoolean that will contain whether an unexpected failure was notified.
ambry-router/src/test/java/com/github/ambry/router/NonBlockingRouterTestBase.java