public async void SetBlobMetadataAsync_InvalidLeaseSupplied_ThrowsArgumentException()
        {
            var containerName = _util.GenerateSampleContainerName(_runId);
            var blobName = _util.GenerateSampleBlobName(_runId);
            var expectedMetadata = new Dictionary<string, string>
            {
                {"CaptainAmerica", "Shield"},
                {"Thor", "Hammer"},
                {"Me", "Code"}
            };
            IBlobServiceClient client = new BlobServiceClient(AccountSettings);

            await client.SetBlobMetadataAsync(containerName, blobName, expectedMetadata, InvalidLeaseId);

            // throws exception
        }
        public async void SetBlobMetadataAsync_LeasedBlobCorrectLeaseSupplied_SetsMetadata()
        {
            var containerName = _util.GenerateSampleContainerName(_runId);
            var blobName = _util.GenerateSampleBlobName(_runId);
            var expectedMetadata = new Dictionary<string, string>
            {
                {"CaptainAmerica", "Shield"},
                {"Thor", "Hammer"},
                {"Me", "Code"}
            };
            _util.CreateContainer(containerName);
            _util.CreateBlockBlob(containerName, blobName);
            var lease = _util.LeaseBlob(containerName, blobName);
            IBlobServiceClient client = new BlobServiceClient(AccountSettings);

            await client.SetBlobMetadataAsync(containerName, blobName, expectedMetadata, lease);

            _util.AssertBlobMetadata(containerName, blobName, expectedMetadata);
        }
        public async void SetBlobMetadataAsync_UnleasedBlobLeaseSupplied_ThrowsLeaseNotPresentWithBlobOperationAzureException()
        {
            var containerName = _util.GenerateSampleContainerName(_runId);
            var blobName = _util.GenerateSampleBlobName(_runId);
            var expectedMetadata = new Dictionary<string, string>
            {
                {"CaptainAmerica", "Shield"},
                {"Thor", "Hammer"},
                {"Me", "Code"}
            };
            _util.CreateContainer(containerName);
            _util.CreateBlockBlob(containerName, blobName);
            IBlobServiceClient client = new BlobServiceClient(AccountSettings);

            await client.SetBlobMetadataAsync(containerName, blobName, expectedMetadata, FakeLeaseId);

            // throws exception
        }
        public async void SetBlobMetadataAsync_ExistingBlobExistingMetadata_OverwritesMetadata()
        {
            var containerName = _util.GenerateSampleContainerName(_runId);
            var blobName = _util.GenerateSampleBlobName(_runId);
            var oldMetadata = new Dictionary<string, string>
            {
                {"Mario", "Fire Flower"}
            };
            var expectedMetadata = new Dictionary<string, string>
            {
                {"CaptainAmerica", "Shield"},
                {"Thor", "Hammer"},
                {"Me", "Code"}
            };
            _util.CreateContainer(containerName);
            _util.CreateBlockBlob(containerName, blobName, oldMetadata);
            IBlobServiceClient client = new BlobServiceClient(AccountSettings);

            await client.SetBlobMetadataAsync(containerName, blobName, expectedMetadata);

            _util.AssertBlobMetadata(containerName, blobName, expectedMetadata);
        }