### Question:
AzureCloudDestination implements CloudDestination { @Override public void close() throws IOException { azureReplicationFeed.close(); } AzureCloudDestination(CloudConfig cloudConfig, AzureCloudConfig azureCloudConfig, String clusterName,
      VcrMetrics vcrMetrics, AzureMetrics azureMetrics, AzureReplicationFeed.FeedType azureReplicationFeedType);   AzureCloudDestination(BlobServiceClient storageClient, BlobBatchClient blobBatchClient,
      AsyncDocumentClient asyncDocumentClient, String cosmosCollectionLink, String clusterName,
      AzureMetrics azureMetrics, AzureReplicationFeed.FeedType azureReplicationFeedType, boolean isVcr); @Override boolean uploadBlob(BlobId blobId, long inputLength, CloudBlobMetadata cloudBlobMetadata,
      InputStream blobInputStream); @Override void downloadBlob(BlobId blobId, OutputStream outputStream); @Override boolean deleteBlob(BlobId blobId, long deletionTime, short lifeVersion,
      CloudUpdateValidator cloudUpdateValidator); @Override short updateBlobExpiration(BlobId blobId, long expirationTime, CloudUpdateValidator cloudUpdateValidator); @Override short undeleteBlob(BlobId blobId, short lifeVersion, CloudUpdateValidator cloudUpdateValidator); @Override Map<String, CloudBlobMetadata> getBlobMetadata(List<BlobId> blobIds); @Override void close(); @Override void stopCompaction(); @Override FindResult findEntriesSince(String partitionPath, FindToken findToken, long maxTotalSizeOfEntries); @Override int compactPartition(String partitionPath); @Override void persistTokens(String partitionPath, String tokenFileName, InputStream inputStream); @Override boolean retrieveTokens(String partitionPath, String tokenFileName, OutputStream outputStream); int getQueryBatchSize();  }### Answer:
@Test public void testFindEntriesSinceUsingUpdateTime() throws Exception { AzureCloudDestination updateTimeBasedAzureCloudDestination = null; try { updateTimeBasedAzureCloudDestination = new AzureCloudDestination(mockServiceClient, mockBlobBatchClient, mockumentClient, "foo", clusterName, azureMetrics, AzureReplicationFeed.FeedType.COSMOS_UPDATE_TIME, false); testFindEntriesSinceWithUniqueUpdateTimes(updateTimeBasedAzureCloudDestination); testFindEntriesSinceWithNonUniqueUpdateTimes(updateTimeBasedAzureCloudDestination); } finally { if (updateTimeBasedAzureCloudDestination != null) { updateTimeBasedAzureCloudDestination.close(); } } }
@Test public void testInitClientException() throws IOException { CloudDestinationFactory factory = new AzureCloudDestinationFactory(new VerifiableProperties(configProps), new MetricRegistry()); CloudDestination cloudDestination = null; try { cloudDestination = factory.getCloudDestination(); fail("Expected exception"); } catch (IllegalStateException ex) { } finally { if (cloudDestination != null) { cloudDestination.close(); } } }