@Test public void testDownload() throws Exception { mockBlobExistence(true); downloadBlob(blobId); assertEquals(1, azureMetrics.blobDownloadRequestCount.getCount()); assertEquals(1, azureMetrics.blobDownloadSuccessCount.getCount()); assertEquals(0, azureMetrics.blobDownloadErrorCount.getCount()); assertEquals(1, azureMetrics.blobDownloadTime.getCount()); }
@Override public void downloadBlob(BlobId blobId, OutputStream outputStream) throws CloudStorageException { try { azureBlobDataAccessor.downloadBlob(blobId, outputStream); } catch (Exception e) { throw toCloudStorageException("Error downloading blob " + blobId, e); } }
AzureCloudDestination implements CloudDestination { @Override public void downloadBlob(BlobId blobId, OutputStream outputStream) throws CloudStorageException { try { azureBlobDataAccessor.downloadBlob(blobId, outputStream); } catch (Exception e) { throw toCloudStorageException("Error downloading blob " + blobId, e); } } }
AzureCloudDestination implements CloudDestination { @Override public void downloadBlob(BlobId blobId, OutputStream outputStream) throws CloudStorageException { try { azureBlobDataAccessor.downloadBlob(blobId, outputStream); } catch (Exception e) { throw toCloudStorageException("Error downloading blob " + blobId, e); } } 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); }
AzureCloudDestination implements CloudDestination { @Override public void downloadBlob(BlobId blobId, OutputStream outputStream) throws CloudStorageException { try { azureBlobDataAccessor.downloadBlob(blobId, outputStream); } catch (Exception e) { throw toCloudStorageException("Error downloading blob " + blobId, e); } } 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(); }
AzureCloudDestination implements CloudDestination { @Override public void downloadBlob(BlobId blobId, OutputStream outputStream) throws CloudStorageException { try { azureBlobDataAccessor.downloadBlob(blobId, outputStream); } catch (Exception e) { throw toCloudStorageException("Error downloading blob " + blobId, e); } } 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();  }