static void checkTtlUpdateRecord(ConnectedChannel channel, ClusterMap clusterMap, BlobId blobId,
      long expectedOperationTime, long expectedExpiryTimeMs) throws IOException {
    // Use BlobIndexAdminRequest to verify we have the right TtlUpdate record
    BlobIndexAdminRequest blobIndexAdminRequest = new BlobIndexAdminRequest(blobId,
        new AdminRequest(AdminRequestOrResponseType.BlobIndex, blobId.getPartition(), 1, "clientid2"));
    DataInputStream stream = channel.sendAndReceive(blobIndexAdminRequest).getInputStream();
    AdminResponseWithContent adminResponseWithContent = AdminResponseWithContent.readFrom(stream);
    releaseNettyBufUnderneathStream(stream);
    Assert.assertEquals(new String(adminResponseWithContent.getContent()), ServerErrorCode.NoError,
        adminResponseWithContent.getError());
    byte[] jsonBytes = adminResponseWithContent.getContent();
    ObjectMapper objectMapper = new ObjectMapper();
    StoreKeyJacksonConfig.setupObjectMapper(objectMapper, new BlobIdFactory(clusterMap));
    Map<String, MessageInfo> messages =
        objectMapper.readValue(jsonBytes, new TypeReference<Map<String, MessageInfo>>() {
        });
    // find the TtlUpdate record
    MessageInfo ttlUpdateRecord = null;
    for (MessageInfo mg : messages.values()) {
      if (mg.isTtlUpdated() && !mg.isDeleted()) {
        ttlUpdateRecord = mg;
        break;
      }
    }
    assertEquals(blobId.getAccountId(), ttlUpdateRecord.getAccountId());
    assertEquals(blobId.getContainerId(), ttlUpdateRecord.getContainerId());
    assertEquals(false, ttlUpdateRecord.isDeleted());
    assertEquals(true, ttlUpdateRecord.isTtlUpdated());
    assertEquals(false, ttlUpdateRecord.isUndeleted());
    assertEquals(false, ttlUpdateRecord.isExpired());
    assertEquals(Utils.getTimeInMsToTheNearestSec(expectedExpiryTimeMs), ttlUpdateRecord.getExpirationTimeInMs());
    assertEquals(0, ttlUpdateRecord.getLifeVersion());
    assertEquals(Utils.getTimeInMsToTheNearestSec(expectedOperationTime), ttlUpdateRecord.getOperationTimeMs());
    assertEquals(null, ttlUpdateRecord.getCrc());
  }
Checks the TTL update status of the given {@code blobId} based on the args provided
@param channel the {@link ConnectedChannel} to make the {@link GetRequest} on.
@param clusterMap the {@link ClusterMap} to use
@param storeKeyFactory the {@link StoreKeyFactory} to use
@param blobId the ID of the blob to check
@param expectedBlobData the expected blob data
@param ttlUpdated {@code true} if the blob has been ttl updated
@param expectedExpiryTimeMs the expected expiry time (in ms)
@throws IOException
@throws MessageFormatException
ambry-test-utils/src/main/java/com/github/ambry/server/ServerTestUtil.java