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"]); }
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); }
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); }
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); }
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"]); }
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"]); }