public async void DeleteBlobAsync_NonExistingBlob_ThrowsBlobDoesNotExistException()
        {
            var containerName = _util.GenerateSampleContainerName(_runId);
            var blobName = _util.GenerateSampleBlobName(_runId);
            _util.CreateContainer(containerName);
            var client = new BlobServiceClient(AccountSettings);

            // delete blog that doesn't exist => should throw an exception
            await client.DeleteBlobAsync(containerName, blobName);
        }
        public async void DeleteBlobAsync_LeasedBlobWithInvalidLeaseGiven_ThrowsArgumentException()
        {
            var containerName = _util.GenerateSampleContainerName(_runId);
            var blobName = _util.GenerateSampleBlobName(_runId);
            var client = new BlobServiceClient(AccountSettings);

            await client.DeleteBlobAsync(containerName, blobName, leaseId: InvalidLeaseId);

            // throw exception
        }
        public async void DeleteBlobAsync_LeasedBlobWithIncorrectLeaseGiven_ThrowsLeaseIdMismatchWithBlobOperationAzureException()
        {
            var containerName = _util.GenerateSampleContainerName(_runId);
            var blobName = _util.GenerateSampleBlobName(_runId);
            _util.CreateContainer(containerName);
            _util.CreateBlockBlob(containerName, blobName);
            _util.LeaseBlob(containerName, blobName);
            var client = new BlobServiceClient(AccountSettings);

            await client.DeleteBlobAsync(containerName, blobName, leaseId: GetGuidString());

            // throw exception
        }
        public async void DeleteBlobAsync_LeasedBlobWithNoLeaseGiven_ThrowsLeaseIdMissingAzureException()
        {
            var containerName = _util.GenerateSampleContainerName(_runId);
            var blobName = _util.GenerateSampleBlobName(_runId);
            _util.CreateContainer(containerName);
            _util.CreateBlockBlob(containerName, blobName);
            _util.LeaseBlob(containerName, blobName);
            var client = new BlobServiceClient(AccountSettings);

            await client.DeleteBlobAsync(containerName, blobName);

            // throw exception
        }
        public async void DeleteBlobAsync_LeasedBlobCorrectLeaseSpecified_DeletesBlob()
        {
            var containerName = _util.GenerateSampleContainerName(_runId);
            var blobName = _util.GenerateSampleBlobName(_runId);
            _util.CreateContainer(containerName);
            _util.CreateBlockBlob(containerName, blobName);
            var lease = _util.LeaseBlob(containerName, blobName);
            var client = new BlobServiceClient(AccountSettings);

            await client.DeleteBlobAsync(containerName, blobName, leaseId: lease);

            _util.AssertBlobDoesNotExist(containerName, blobName, BlobType.BlockBlob);
        }
        public async Task DeleteBlobAsync_ExistingBlob_DeletesBlobAsynchronously()
        {
            var expectedContent = "Expected blob content";
            var containerName = _util.GenerateSampleContainerName(_runId);
            var blobName = _util.GenerateSampleBlobName(_runId);
            _util.CreateContainer(containerName);
            _util.CreateBlockBlob(containerName, blobName, content: expectedContent);
            var client = new BlobServiceClient(AccountSettings);

            await client.DeleteBlobAsync(containerName, blobName);

            _util.AssertBlobDoesNotExist(containerName, blobName, BlobType.BlockBlob);
        }