public void CopyBlob_RequiredArgsOnly_BeginsCopyOperation()
        {
            var containerName = _util.GenerateSampleContainerName(_runId);
            var blobName = _util.GenerateSampleBlobName(_runId);
            _util.CreateContainer(containerName);
            var blobUri = _util.CreateBlockBlob(containerName, blobName).Uri;
            IBlobServiceClient client = new BlobServiceClient(AccountSettings);

            client.CopyBlob(containerName, blobName, blobUri.ToString());

            _util.AssertBlobCopyOperationInProgressOrSuccessful(containerName, blobName);
        }
        public void CopyBlob_EmptyBlobNameGiven_ThrowsArgumentNullException()
        {
            var containerName = _util.GenerateSampleContainerName(_runId);
            var fakeUri = "https://foo.foo.foo/";
            IBlobServiceClient client = new BlobServiceClient(AccountSettings);

            client.CopyBlob(containerName, "", fakeUri);

            // throws exception
        }
        public void CopyBlob_InvalidLeaseId_ThrowsArgumentException()
        {
            var containerName = _util.GenerateSampleContainerName(_runId);
            var blobName = _util.GenerateSampleBlobName(_runId);
            var fakeUri = "https://foo.foo.foo/";
            IBlobServiceClient client = new BlobServiceClient(AccountSettings);

            client.CopyBlob(containerName, blobName, fakeUri, leaseId: InvalidLeaseId);

            // throws exception
        }
        public void CopyBlob_MetadataAlreadyPresentNewMetadataGiven_CopiesBlobUsingProvidedMetadata()
        {
            var initialMetadata = new Dictionary<string, string>{
                { "initialFirstValue", "1" },
                { "initialSecondValue", "2"}
            };
            var containerName = _util.GenerateSampleContainerName(_runId);
            var blobName = _util.GenerateSampleBlobName(_runId);
            _util.CreateContainer(containerName);
            var blobUri = _util.CreateBlockBlob(containerName, blobName, metadata: initialMetadata).Uri;
            var expectedMetadata = new Dictionary<string, string>{
                { "expectedFirstValue", "one" },
                { "expectedSecondValue", "two"}
            };
            IBlobServiceClient client = new BlobServiceClient(AccountSettings);

            client.CopyBlob(containerName, blobName, blobUri.ToString(), metadata: expectedMetadata);

            var blob = _util.WaitUntilBlobCopyIsNotPending(containerName, blobName);
            Assert.AreEqual(expectedMetadata, blob.Metadata);
        }
        public void CopyBlob_InvalidCopySourceUriGiven_ThrowsArgumentNullException(string invalidUri)
        {
            var containerName = _util.GenerateSampleContainerName(_runId);
            var blobName = _util.GenerateSampleBlobName(_runId);
            IBlobServiceClient client = new BlobServiceClient(AccountSettings);

            client.CopyBlob(containerName, blobName, invalidUri);

            // throws exception
        }