@Test
  public void testErrorPrecedenceWithSpecialCase() throws Exception {
    doPut();
    Map<ServerErrorCode, RouterErrorCode> serverErrorToRouterError = new HashMap<>();
    serverErrorToRouterError.put(ServerErrorCode.BlobDeleted, RouterErrorCode.BlobDeleted);
    serverErrorToRouterError.put(ServerErrorCode.BlobExpired, RouterErrorCode.BlobExpired);
    serverErrorToRouterError.put(ServerErrorCode.BlobAuthorizationFailure, RouterErrorCode.BlobAuthorizationFailure);
    for (Map.Entry<ServerErrorCode, RouterErrorCode> entry : serverErrorToRouterError.entrySet()) {
      Map<ServerErrorCode, Integer> errorCounts = new HashMap<>();
      errorCounts.put(ServerErrorCode.ReplicaUnavailable, replicasCount - 1);
      errorCounts.put(entry.getKey(), 1);
      testWithErrorCodes(errorCounts, mockServerLayout, entry.getValue(), getErrorCodeChecker);
    }
  }
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/GetBlobOperationTest.java