### Question:
CloudBlobMetadata { public CloudBlobMetadata setExpirationTime(long expirationTime) { this.expirationTime = expirationTime; return this; } CloudBlobMetadata();  CloudBlobMetadata(BlobId blobId, long creationTime, long expirationTime, long size,
      EncryptionOrigin encryptionOrigin);  CloudBlobMetadata(BlobId blobId, long creationTime, long expirationTime, long size,
      EncryptionOrigin encryptionOrigin, short lifeVersion);  CloudBlobMetadata(BlobId blobId, long creationTime, long expirationTime, long size,
      EncryptionOrigin encryptionOrigin, String vcrKmsContext, String cryptoAgentFactory, long encryptedSize,
      short lifeVersion); String getId(); CloudBlobMetadata setId(String id); String getPartitionId(); CloudBlobMetadata setPartitionId(String partitionId); long getCreationTime(); CloudBlobMetadata setCreationTime(long creationTime); long getUploadTime(); CloudBlobMetadata setUploadTime(long uploadTime); long getExpirationTime(); CloudBlobMetadata setExpirationTime(long expirationTime); long getDeletionTime(); CloudBlobMetadata setDeletionTime(long deletionTime); long getSize(); CloudBlobMetadata setSize(long size); int getAccountId(); CloudBlobMetadata setAccountId(int accountId); int getContainerId(); CloudBlobMetadata setContainerId(int containerId); EncryptionOrigin getEncryptionOrigin(); CloudBlobMetadata setEncryptionOrigin(EncryptionOrigin encryptionOrigin); String getVcrKmsContext(); CloudBlobMetadata setVcrKmsContext(String vcrKmsContext); int getNameSchemeVersion(); CloudBlobMetadata setNameSchemeVersion(int nameSchemeVersion); String getCryptoAgentFactory(); CloudBlobMetadata setCryptoAgentFactory(String cryptoAgentFactory); long getEncryptedSize(); CloudBlobMetadata setEncryptedSize(long encryptedSize); long getLastUpdateTime(); void setLastUpdateTime(long lastUpdateTime); short getLifeVersion(); void setLifeVersion(short lifeVersion); static List<CloudBlobMetadata> capMetadataListBySize(List<CloudBlobMetadata> originalList, long size); boolean isDeleted(); boolean isExpired(); boolean isUndeleted(); boolean isCompactionCandidate(long retentionPeriod); @Override boolean equals(Object o); Map<String, String> toMap(); static CloudBlobMetadata fromMap(Map<String, String> properties); static final String FIELD_ID; static final String FIELD_PARTITION_ID; static final String FIELD_ACCOUNT_ID; static final String FIELD_CONTAINER_ID; static final String FIELD_SIZE; static final String FIELD_CREATION_TIME; static final String FIELD_UPLOAD_TIME; static final String FIELD_DELETION_TIME; static final String FIELD_EXPIRATION_TIME; static final String FIELD_ENCRYPTION_ORIGIN; static final String FIELD_VCR_KMS_CONTEXT; static final String FIELD_CRYPTO_AGENT_FACTORY; static final String FIELD_ENCRYPTED_SIZE; static final String FIELD_NAME_SCHEME_VERSION; static final String FIELD_LIFE_VERSION; }### Answer:
@Test public void testExpiration() throws Exception { CloudBlobMetadata blobMetadata = new CloudBlobMetadata(blobId, now, futureTime, 1024, EncryptionOrigin.NONE); blobMetadata.setExpirationTime(futureTime); verifySerde(blobMetadata, ArrayUtils.addAll(FIELDS_ALWAYS_SET, FIELD_EXPIRATION_TIME), ArrayUtils.removeElement(FIELDS_RARELY_SET, FIELD_EXPIRATION_TIME)); }