private ServerErrorCode updateBlobMap(TtlUpdateRequest ttlUpdateRequest) {
    ServerErrorCode errorCode = ServerErrorCode.NoError;
    StoredBlob blob = blobs.get(ttlUpdateRequest.getBlobId().getID());
    if (blob != null && !blob.isDeleted() && !blob.hasExpired() && !blob.isTtlUpdated()) {
      blob.updateExpiry(ttlUpdateRequest.getExpiresAtMs());
    } else if (blob == null) {
      errorCode = ServerErrorCode.BlobNotFound;
    } else if (blob.isDeleted()) {
      errorCode = ServerErrorCode.BlobDeleted;
    } else if (blob.hasExpired()) {
      errorCode = ServerErrorCode.BlobExpired;
    } else if (blob.isTtlUpdated()) {
      errorCode = ServerErrorCode.BlobAlreadyUpdated;
    } else {
      throw new IllegalStateException("Could not recognize blob state");
    }
    return errorCode;
  }
Updates the blob map based on the {@code ttlUpdateRequest}.
@param ttlUpdateRequest the {@link TtlUpdateRequest} that needs to be processed
ambry-router/src/test/java/com/github/ambry/router/MockServer.java