static Map<BlobId, byte[]> createUnencryptedPermanentBlobs(int numBlobs, byte dataCenterId, short accountId,
      short containerId, PartitionId partitionId, int blobSize, CloudRequestAgent cloudRequestAgent,
      AzureCloudDestination azureDest, long creationTime) throws CloudStorageException {
    Map<BlobId, byte[]> blobIdtoDataMap = new HashMap<>();
    for (int j = 0; j < numBlobs; j++) {
      BlobId blobId =
          new BlobId(BLOB_ID_V6, BlobIdType.NATIVE, dataCenterId, accountId, containerId, partitionId, false,
              BlobDataType.DATACHUNK);
      byte[] randomBytes = TestUtils.getRandomBytes(blobSize);
      blobIdtoDataMap.put(blobId, randomBytes);
      CloudBlobMetadata cloudBlobMetadata = new CloudBlobMetadata(blobId, creationTime, Utils.Infinite_Time, blobSize,
          CloudBlobMetadata.EncryptionOrigin.NONE);
      assertTrue("Expected upload to return true",
          uploadBlobWithRetry(blobId, blobSize, cloudBlobMetadata, new ByteArrayInputStream(randomBytes),
              cloudRequestAgent, azureDest));
    }
    return blobIdtoDataMap;
  }
Utility method to create specified number of unencrypted blobs with permanent ttl and with specified properties.
@param numBlobs number of blobs to create.
@param dataCenterId datacenter id.
@param accountId account id.
@param containerId container id.
@param partitionId {@link PartitionId} of the partition in which blobs will be created.
@param blobSize size of blobs.
@param cloudRequestAgent {@link CloudRequestAgent} object.
@param azureDest {@link AzureCloudDestination} object.
@param creationTime blob creation time.
@return A {@link Map} of create blobs' {@link BlobId} and data.
@throws CloudStorageException in case of any exception while uploading blob.
ambry-cloud/src/test/java/com/github/ambry/cloud/azure/AzureTestUtils.java