@Test
  public void testBlobAuthorizationFailureOverrideAll() throws Exception {
    successTarget = 2; // set it to 2 for more coverage
    Properties props = getNonBlockingRouterProperties(true);
    routerConfig = new RouterConfig(new VerifiableProperties(props));

    ServerErrorCode[] serverErrorCodes = new ServerErrorCode[9];
    serverErrorCodes[0] = ServerErrorCode.BlobNotFound;
    serverErrorCodes[1] = ServerErrorCode.DataCorrupt;
    serverErrorCodes[2] = ServerErrorCode.IOError;
    serverErrorCodes[3] = ServerErrorCode.PartitionUnknown;
    serverErrorCodes[4] = ServerErrorCode.DiskUnavailable;
    serverErrorCodes[5] = ServerErrorCode.BlobAuthorizationFailure;
    serverErrorCodes[6] = ServerErrorCode.UnknownError;
    serverErrorCodes[7] = ServerErrorCode.UnknownError;
    serverErrorCodes[8] = ServerErrorCode.NoError;
    testErrorPrecedence(serverErrorCodes, RouterErrorCode.BlobAuthorizationFailure);
  }
Test the case where servers return different {@link ServerErrorCode} or success, and the {@link GetBlobInfoOperation}
is able to resolve and conclude the correct {@link RouterErrorCode}. The get blob operation should be able
to resolve the router error code as {@code Blob_Authorization_Failure}.
@throws Exception
ambry-router/src/test/java/com/github/ambry/router/GetBlobInfoOperationTest.java