コード例 #1
0
        public async Task CanCopyAStorageObject()
        {
            var sourceContainerName = "oldContainer";
            var sourceObjectName = "oldObject";
            var targetContainerName = "newContainer";
            var targetObjectName = "newObject";
            var data = "Some Data";

            var origMetaData = new Dictionary<string, string> { { "X-Object-Meta-Test1", "Test1" } };
            var content = TestHelper.CreateStream(data);

            this.simulator.Containers.Add(targetContainerName, new StorageRestSimulator.StorageItem(targetContainerName));
            this.simulator.Containers.Add(sourceContainerName, new StorageRestSimulator.StorageItem(sourceContainerName));
            this.simulator.Objects.Add(sourceObjectName, new StorageRestSimulator.StorageItem(sourceObjectName) { MetaData = origMetaData, Content = content });

            var client =
                new StorageServiceRestClient(GetValidContext(), this.ServiceLocator);

            var resp = await client.CopyObject(sourceContainerName, sourceObjectName, targetContainerName, targetObjectName);

            Assert.AreEqual(HttpStatusCode.Created, resp.StatusCode);

            Assert.IsTrue(this.simulator.Objects.ContainsKey(targetObjectName));
            
            var obj = this.simulator.Objects[targetObjectName];
            Assert.AreEqual(data, TestHelper.GetStringFromStream(obj.Content));
            Assert.IsTrue(obj.MetaData.ContainsKey("X-Object-Meta-Test1"));
            Assert.AreEqual("Test1", obj.MetaData["X-Object-Meta-Test1"]);
        }
コード例 #2
0
        public async Task ErrorIsReturnedWhenTryingToCopyAContainer()
        {
            var sourceContainerName = "oldContainer";
            var sourceObjectName = "oldObject";
            var targetContainerName = "newContainer";
            var targetObjectName = "";

            var origMetaData = new Dictionary<string, string> { { "X-Object-Meta-Test1", "Test1" } };
            var content = TestHelper.CreateStream("Some Data");

            this.simulator.Containers.Add(sourceContainerName, new StorageRestSimulator.StorageItem(sourceContainerName));
            this.simulator.Objects.Add(sourceObjectName, new StorageRestSimulator.StorageItem(sourceObjectName) { MetaData = origMetaData, Content = content });

            var client = new StorageServiceRestClient(GetValidContext(), this.ServiceLocator);

            var resp = await client.CopyObject(sourceContainerName, sourceObjectName, targetContainerName, targetObjectName);

            Assert.AreEqual(HttpStatusCode.MethodNotAllowed, resp.StatusCode);
        }
コード例 #3
0
        public async Task ErrorIsReturnedWhenCopyingAnObjectAndSourceObjectIsNotFound()
        {
            var sourceContainerName = "oldContainer";
            var sourceObjectName = "oldObject";
            var targetContainerName = "newContainer";
            var targetObjectName = "newObject";

            this.simulator.Containers.Add(sourceContainerName, new StorageRestSimulator.StorageItem(sourceContainerName));
            this.simulator.Containers.Add(targetContainerName, new StorageRestSimulator.StorageItem(targetContainerName));

            var client =
                new StorageServiceRestClient(GetValidContext(), this.ServiceLocator);

            var resp = await client.CopyObject(sourceContainerName, sourceObjectName, targetContainerName, targetObjectName);

            Assert.AreEqual(HttpStatusCode.NotFound, resp.StatusCode);
        }
コード例 #4
0
        public async Task CopyStorageObjectMetadataFormsCorrectUrlAndMethod()
        {
            var sourceContainerName = "oldContainer";
            var sourceObjectName = "oldObject";
            var targetContainerName = "newContainer";
            var targetObjectName = "newObject";

            var client =
                new StorageServiceRestClient(GetValidContext(), this.ServiceLocator);

            await client.CopyObject(sourceContainerName, sourceObjectName, targetContainerName, targetObjectName);

            Assert.AreEqual(string.Format("{0}/{1}/{2}", endpoint, sourceContainerName, sourceObjectName), this.simulator.Uri.ToString());
            Assert.AreEqual(new HttpMethod("COPY"), this.simulator.Method);
        }
コード例 #5
0
        public async Task CopyStorageObjectMetadataIncludesDestinationHeader()
        {
            var sourceContainerName = "oldContainer";
            var sourceObjectName = "oldObject";
            var targetContainerName = "newContainer";
            var targetObjectName = "newObject";

            var client =
                new StorageServiceRestClient(GetValidContext(), this.ServiceLocator);

            await client.CopyObject(sourceContainerName, sourceObjectName, targetContainerName, targetObjectName);

            Assert.IsTrue(this.simulator.Headers.ContainsKey("Destination"));
            Assert.AreEqual(string.Format("{0}/{1}", targetContainerName, targetObjectName), this.simulator.Headers["Destination"]);
        }
コード例 #6
0
        public async Task CopyStorageObjectMetadataIncludesAuthHeader()
        {
            var sourceContainerName = "oldContainer";
            var sourceObjectName = "oldObject";
            var targetContainerName = "newContainer";
            var targetObjectName = "newObject";

            var client =
                new StorageServiceRestClient(GetValidContext(), this.ServiceLocator);

            await client.CopyObject(sourceContainerName, sourceObjectName, targetContainerName, targetObjectName);

            Assert.IsTrue(this.simulator.Headers.ContainsKey("X-Auth-Token"));
            Assert.AreEqual(this.authId, this.simulator.Headers["X-Auth-Token"]);
        }