@Test
  public void testErrorPrecedenceWithSpecialCase() throws Exception {
    ServerErrorCode[] serverErrorCodesToTest =
        {ServerErrorCode.BlobDeleted, ServerErrorCode.BlobExpired, ServerErrorCode.BlobAuthorizationFailure};
    RouterErrorCode[] routerErrorCodesToExpect =
        {RouterErrorCode.BlobDeleted, RouterErrorCode.BlobExpired, RouterErrorCode.BlobAuthorizationFailure};
    for (int i = 0; i < serverErrorCodesToTest.length; i++) {
      int indexToSetCustomError = random.nextInt(replicasCount);
      ServerErrorCode[] serverErrorCodesInOrder = new ServerErrorCode[9];
      for (int j = 0; j < serverErrorCodesInOrder.length; j++) {
        if (j == indexToSetCustomError) {
          serverErrorCodesInOrder[j] = serverErrorCodesToTest[i];
        } else {
          serverErrorCodesInOrder[j] = ServerErrorCode.ReplicaUnavailable;
        }
      }
      testErrorPrecedence(serverErrorCodesInOrder, routerErrorCodesToExpect[i]);
    }
  }
Test the case with Blob_Not_Found errors from most servers, and Blob_Deleted, Blob_Expired or
Blob_Authorization_Failure at just one server. The latter should be the exception received for the operation.
@throws Exception
ambry-router/src/test/java/com/github/ambry/router/GetBlobInfoOperationTest.java