@Test
  public void testVariousServerErrorCodes() throws Exception {
    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.NoError;
    serverErrorCodes[6] = ServerErrorCode.DataCorrupt;
    serverErrorCodes[7] = ServerErrorCode.UnknownError;
    serverErrorCodes[8] = ServerErrorCode.DiskUnavailable;
    testWithErrorCodes(serverErrorCodes, partition, serverLayout, RouterErrorCode.AmbryUnavailable,
        deleteErrorCodeChecker, localDc);
  }
Test the case where servers return different {@link ServerErrorCode}, and the {@link DeleteOperation}
is able to resolve and conclude the correct {@link RouterErrorCode}. The {@link ServerErrorCode} tested
are those could be mapped to {@link RouterErrorCode#AmbryUnavailable}. The order of received responses
is the same as defined in {@code serverErrorCodes}.
ambry-router/src/test/java/com/github/ambry/router/DeleteManagerTest.java