private void assertSuccess(GetBlobInfoOperation op, short expectedLifeVersion) {
    Assert.assertNull("Null expected", op.getOperationException());
    BlobInfo blobInfo = op.getOperationResult().getBlobInfo();
    Assert.assertNull("Unexpected blob data channel in operation result", op.getOperationResult().getBlobDataChannel());
    Assert.assertTrue("Blob properties must be the same",
        RouterTestHelpers.arePersistedFieldsEquivalent(blobProperties, blobInfo.getBlobProperties()));
    Assert.assertEquals("Blob size should in received blobProperties should be the same as actual", BLOB_SIZE,
        blobInfo.getBlobProperties().getBlobSize());
    Assert.assertArrayEquals("User metadata must be the same", userMetadata, blobInfo.getUserMetadata());
    Assert.assertEquals("LifeVersion mismatch", expectedLifeVersion, blobInfo.getLifeVersion());
  }
Assert that the operation is complete and successful. Note that the future completion and callback invocation
happens outside of the GetOperation, so those are not checked here. But at this point, the operation result should
be ready.
@param op the {@link GetBlobInfoOperation} that should have completed.
@param expectedLifeVersion the expected lifeVersion.
ambry-router/src/test/java/com/github/ambry/router/GetBlobInfoOperationTest.java