public void Execute_CopyBlob_ResponseParsesHeadersCorrectly()
        {
            const string expectedContainer = "test-container";
            const string expectedBlob = "test-blob";
            const string copySource = "http://foo.foo.foo/testContainer/testBlob";
            var expectedUri = String.Format("{0}/{1}/{2}", _settings.BlobEndpoint, expectedContainer, expectedBlob);
            var expectedDate = DateTime.UtcNow.AddDays(-2345);
            var expectedRawRequest = new TestableWebRequest(new Uri(expectedUri))
                                            .EnqueueResponse(new HttpResponseSettings((HttpStatusCode)201, "Success", "", false, new Dictionary<string, string>(){
                                                {"ETag", "\"123\""},
                                                {"Date", expectedDate.ToString() },
                                                {"Last-Modified", expectedDate.ToString() },
                                                {"x-ms-copy-id", "123-copy-id" },
                                                {"x-ms-copy-status", "success" }
                                            }));
            TestableWebRequestCreateFactory.GetFactory().AddRequest(expectedRawRequest);
            var request = new CopyBlobRequest(_settings, expectedContainer, expectedBlob, copySource);

            var response = request.Execute();

            Assert.AreEqual("123", response.Payload.ETag);
            Assert.IsTrue(Math.Abs(expectedDate.Subtract(response.Payload.Date).TotalMinutes) < 1);
            Assert.IsTrue(Math.Abs(expectedDate.Subtract(response.Payload.LastModified).TotalMinutes) < 1);
            Assert.AreEqual("123-copy-id", response.Payload.CopyId);
            Assert.AreEqual(CopyStatus.Success, response.Payload.CopyStatus);
        }
Exemplo n.º 2
0
        public void Execute_CopyBlob_ResponseParsesHeadersCorrectly()
        {
            const string expectedContainer  = "test-container";
            const string expectedBlob       = "test-blob";
            const string copySource         = "http://foo.foo.foo/testContainer/testBlob";
            var          expectedUri        = String.Format("{0}/{1}/{2}", _settings.BlobEndpoint, expectedContainer, expectedBlob);
            var          expectedDate       = DateTime.UtcNow.AddDays(-2345);
            var          expectedRawRequest = new TestableWebRequest(new Uri(expectedUri))
                                              .EnqueueResponse(new HttpResponseSettings((HttpStatusCode)201, "Success", "", false, new Dictionary <string, string>()
            {
                { "ETag", "\"123\"" },
                { "Date", expectedDate.ToString() },
                { "Last-Modified", expectedDate.ToString() },
                { "x-ms-copy-id", "123-copy-id" },
                { "x-ms-copy-status", "success" }
            }));

            TestableWebRequestCreateFactory.GetFactory().AddRequest(expectedRawRequest);
            var request = new CopyBlobRequest(_settings, expectedContainer, expectedBlob, copySource);

            var response = request.Execute();

            Assert.AreEqual("123", response.Payload.ETag);
            Assert.IsTrue(Math.Abs(expectedDate.Subtract(response.Payload.Date).TotalMinutes) < 1);
            Assert.IsTrue(Math.Abs(expectedDate.Subtract(response.Payload.LastModified).TotalMinutes) < 1);
            Assert.AreEqual("123-copy-id", response.Payload.CopyId);
            Assert.AreEqual(CopyStatus.Success, response.Payload.CopyStatus);
        }
        public async Task <CopyBlobResponse> CopyBlobAsync(string containerName, string blobName, string copySource, Dictionary <string, string> metadata = null, string leaseId = null)
        {
            var request  = new CopyBlobRequest(_account, containerName, blobName, copySource, metadata, leaseId);
            var response = await request.ExecuteAsync();

            return(response.Payload);
        }
        public void Execute_CopyBlobWithAllHeaders_AllHeadersSetProperly()
        {
            const string expectedContainer = "test-container";
            const string expectedBlob = "test-blob";
            const string copySource = "http://foo.foo.foo/testContainer/testBlob";
            var expectedUri = String.Format("{0}/{1}/{2}", _settings.BlobEndpoint, expectedContainer, expectedBlob);
            var expectedRawRequest = new TestableWebRequest(new Uri(expectedUri))
                                            .EnqueueResponse(new HttpResponseSettings((HttpStatusCode)202, "Accepted", "", false, new Dictionary<string,string>(){
                                                {"ETag", "\"123\""},
                                                {"Date", DateTime.UtcNow.ToString() },
                                                {"Last-Modified", DateTime.UtcNow.ToString() },
                                                {"x-ms-copy-id", "123-copy-id" },
                                                {"x-ms-copy-status", "success" }
                                            }));
            TestableWebRequestCreateFactory.GetFactory().AddRequest(expectedRawRequest);
            var request = new CopyBlobRequest(_settings, expectedContainer, expectedBlob, copySource);
            
            request.Execute();

            Assert.AreEqual(copySource, expectedRawRequest.Headers["x-ms-copy-source"]);
        }
Exemplo n.º 5
0
        public void Execute_CopyBlobWithAllHeaders_AllHeadersSetProperly()
        {
            const string expectedContainer  = "test-container";
            const string expectedBlob       = "test-blob";
            const string copySource         = "http://foo.foo.foo/testContainer/testBlob";
            var          expectedUri        = String.Format("{0}/{1}/{2}", _settings.BlobEndpoint, expectedContainer, expectedBlob);
            var          expectedRawRequest = new TestableWebRequest(new Uri(expectedUri))
                                              .EnqueueResponse(new HttpResponseSettings((HttpStatusCode)202, "Accepted", "", false, new Dictionary <string, string>()
            {
                { "ETag", "\"123\"" },
                { "Date", DateTime.UtcNow.ToString() },
                { "Last-Modified", DateTime.UtcNow.ToString() },
                { "x-ms-copy-id", "123-copy-id" },
                { "x-ms-copy-status", "success" }
            }));

            TestableWebRequestCreateFactory.GetFactory().AddRequest(expectedRawRequest);
            var request = new CopyBlobRequest(_settings, expectedContainer, expectedBlob, copySource);

            request.Execute();

            Assert.AreEqual(copySource, expectedRawRequest.Headers["x-ms-copy-source"]);
        }