public async Task TryingToCreateAnObjectWithBadAuthenticationFails() { var authId = "54321"; var objectName = "NewObject"; var containerName = "newContainer"; var context = GetValidContext(); context.Credential.SetAccessTokenId(authId); var client = new StorageServiceRestClient(context, this.ServiceLocator); var data = "Some random data"; var content = TestHelper.CreateStream(data); var resp = await client.CreateObject(containerName, objectName, new Dictionary<string, string>(), content); Assert.AreEqual(HttpStatusCode.Unauthorized, resp.StatusCode); Assert.IsFalse(this.simulator.Objects.ContainsKey(objectName)); }
public async Task TryingToCreateAnObjectAndCancelThrowsException() { var objectName = "NewObject"; var containerName = "newContainer"; var token = new CancellationToken(true); this.simulator.Delay = TimeSpan.FromMilliseconds(500); var client = new StorageServiceRestClient(GetValidContext(token), this.ServiceLocator); var data = "Some random data"; var content = TestHelper.CreateStream(data); try { await client.CreateObject(containerName, objectName, new Dictionary<string, string>(), content); } catch (Exception ex) { Assert.IsInstanceOfType(ex,typeof(OperationCanceledException)); Assert.IsFalse(this.simulator.Objects.ContainsKey(objectName)); } }
public async Task CreateStorageObjectWithNullContent() { var objectName = "NewObject/////"; var containerName = "newContainer"; var client = new StorageServiceRestClient(GetValidContext(), this.ServiceLocator); var resp = await client.CreateObject(containerName, objectName, new Dictionary<string, string>(), null); Assert.AreEqual(HttpStatusCode.Created, resp.StatusCode); Assert.IsTrue(this.simulator.Objects.ContainsKey(objectName)); }
public async Task CreateStorageObjectWithSlashesInContainerName() { var objectName = "NewObject"; var containerName = "new/Container"; var client = new StorageServiceRestClient(GetValidContext(), this.ServiceLocator); await client.CreateObject(containerName, objectName, new Dictionary<string, string>(), null); }
public async Task CreateStorageObjectWithForwardSlashesInName() { var objectName = "New/Object"; var containerName = "newContainer"; var client = new StorageServiceRestClient(GetValidContext(), this.ServiceLocator); var data = "Some random data"; var content = TestHelper.CreateStream(data); var resp = await client.CreateObject(containerName, objectName, new Dictionary<string, string>(), content); Assert.AreEqual(string.Format("{0}/{1}/{2}", this.endpoint, containerName, objectName), this.simulator.Uri.ToString()); Assert.AreEqual(HttpStatusCode.Created, resp.StatusCode); Assert.IsTrue(this.simulator.Objects.ContainsKey(objectName)); var objectContent = TestHelper.GetStringFromStream(this.simulator.Objects[objectName].Content); Assert.AreEqual(data, objectContent); }
public async Task CanCreateStorageObjectWithMetaData() { var objectName = "NewObject"; var containerName = "newContainer"; var client = new StorageServiceRestClient(GetValidContext(), this.ServiceLocator); var data = "Some random data"; var content = TestHelper.CreateStream(data); var metaData = new Dictionary<string, string> {{"Test1", "Test1"}, {"Test2", "Test2"}}; var resp = await client.CreateObject(containerName, objectName, metaData, content); Assert.AreEqual(HttpStatusCode.Created, resp.StatusCode); Assert.IsTrue(this.simulator.Objects.ContainsKey(objectName)); Assert.IsTrue(this.simulator.Headers.ContainsKey("X-Object-Meta-Test1")); Assert.IsTrue(this.simulator.Headers.ContainsKey("X-Object-Meta-Test2")); Assert.AreEqual("Test1", this.simulator.Headers["X-Object-Meta-Test1"]); Assert.AreEqual("Test2", this.simulator.Headers["X-Object-Meta-Test2"]); var objectContent = TestHelper.GetStringFromStream(this.simulator.Objects[objectName].Content); Assert.AreEqual(data, objectContent); }
public async Task CreatedStorageObjectHasETag() { var objectName = "NewObject"; var containerName = "newContainer"; var client = new StorageServiceRestClient(GetValidContext(), this.ServiceLocator); var data = "Some random data"; var content = TestHelper.CreateStream(data); var hash = Convert.ToBase64String(MD5.Create().ComputeHash(content)); content.Position = 0; var resp = await client.CreateObject(containerName, objectName, new Dictionary<string, string>(), content); Assert.AreEqual(HttpStatusCode.Created, resp.StatusCode); Assert.IsTrue(resp.Headers.Any(kvp => kvp.Key == "ETag")); Assert.AreEqual(hash, resp.Headers.First(kvp => kvp.Key == "ETag").Value.First()); Assert.IsTrue(this.simulator.Objects.ContainsKey(objectName)); var objectContent = TestHelper.GetStringFromStream(this.simulator.Objects[objectName].Content); Assert.AreEqual(data, objectContent); }
public async Task CreatingStorageObjectMultipleTimesOverwrites() { var containerName = "newContainer"; var objectName = "NewObject"; var client = new StorageServiceRestClient(GetValidContext(), this.ServiceLocator); var data = "Some random data"; var content = TestHelper.CreateStream(data); var resp = await client.CreateObject(containerName, objectName, new Dictionary<string, string>(), content); Assert.AreEqual(HttpStatusCode.Created, resp.StatusCode); Assert.IsTrue(this.simulator.Objects.ContainsKey(objectName)); var otherData = "Other data that is longer"; var otherContent = TestHelper.CreateStream(otherData); resp = await client.CreateObject(containerName, objectName, new Dictionary<string, string>(), otherContent); Assert.AreEqual(HttpStatusCode.Created, resp.StatusCode); Assert.IsTrue(this.simulator.Objects.ContainsKey(objectName)); var objectContent = TestHelper.GetStringFromStream(this.simulator.Objects[objectName].Content); Assert.AreEqual(otherData, objectContent); }
public async Task CreateStorageObjectFormsCorrectUrlAndMethod() { var objectName = "NewObject"; var containerName = "newContainer"; var client = new StorageServiceRestClient(GetValidContext(), this.ServiceLocator); var data = "Some random data"; var content = TestHelper.CreateStream(data); await client.CreateObject(containerName, objectName, new Dictionary<string, string>(), content); Assert.AreEqual(string.Format("{0}/{1}/{2}", endpoint, containerName, objectName), this.simulator.Uri.ToString()); Assert.AreEqual(HttpMethod.Put, this.simulator.Method); }