@Override
  public short updateBlobExpiration(BlobId blobId, long expirationTime, CloudUpdateValidator cloudUpdateValidator)
      throws CloudStorageException {
    StoreErrorCodes serverError = hardError != null ? hardError : serverErrors.size() > 0 ? serverErrors.poll() : null;
    if (serverError != null) {
      throw new CloudStorageException("updateBlobExpiration simulated error",
          new StoreException("updateBlobExpiration simulated error", serverError));
    }

    if (map.containsKey(blobId)) {
      map.get(blobId).getFirst().setExpirationTime(expirationTime);
      map.get(blobId).getFirst().setLastUpdateTime(System.currentTimeMillis());
      changeFeed.add(blobId);
      return map.get(blobId).getFirst().getLifeVersion();
    }
    throw new CloudStorageException(String.format("Blob %s not found", blobId.getID()));
  }
Instantiate {@link LatchBasedInMemoryCloudDestination}.
@param blobIdsToTrack a list of blobs that {@link LatchBasedInMemoryCloudDestination} tracks.
@param azureReplicationFeedType {@link AzureReplicationFeed.FeedType} object.
ambry-vcr/src/test/java/com/github/ambry/vcr/LatchBasedInMemoryCloudDestination.java