コード例 #1
0
        public async Task CanGetStorageObjectWithMetadata()
        {
            var containerName = "newContainer";
            var objectName = "newObject";
            var data = "Some Data";

            var content = TestHelper.CreateStream(data);

            var metaData = new Dictionary<string, string> { { "X-Object-Meta-Test1", "Test1" }, { "X-Object-Meta-Test2", "Test2" }};

            this.simulator.Objects.Add(objectName, new StorageRestSimulator.StorageItem(objectName) { MetaData = metaData, Content = content});

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

            var resp = await client.GetObject(containerName, objectName);

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

            Assert.IsTrue(resp.Headers.Any(kvp => kvp.Key == "X-Object-Meta-Test2"));
            Assert.AreEqual("Test2", resp.Headers.First(kvp => kvp.Key == "X-Object-Meta-Test2").Value.First());

            var respContent = TestHelper.GetStringFromStream(resp.Content);
            Assert.AreEqual(data,respContent);
        }
コード例 #2
0
        public async Task CanGetStorageObject()
        {
            var containerName = "newContainer";
            var objectName = "newObject";
            var data = "Some Data";

            var content = TestHelper.CreateStream(data);
            var hash = Convert.ToBase64String(MD5.Create().ComputeHash(content));
            content.Position = 0;

            this.simulator.Objects.Add(objectName, new StorageRestSimulator.StorageItem(objectName) { Content = content });

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

            var resp = await client.GetObject(containerName, objectName);

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

            var respContent = TestHelper.GetStringFromStream(resp.Content);
            Assert.AreEqual(data, respContent);

            Assert.IsTrue(resp.Headers.Any(kvp => kvp.Key == "ETag"));
            Assert.AreEqual(hash, resp.Headers.First(kvp => kvp.Key == "ETag").Value.First());
        }
コード例 #3
0
        public async Task GetStorageObjectFormsCorrectUrlAndMethod()
        {
            var containerName = "newContainer";
            var objectName = "newObject";

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

            await client.GetObject(containerName, objectName);

            Assert.AreEqual(string.Format("{0}/{1}/{2}", endpoint, containerName, objectName), this.simulator.Uri.ToString());
            Assert.AreEqual(HttpMethod.Get, this.simulator.Method);
        }
コード例 #4
0
        public async Task ErrorIsReturnedWhenObjectIsNotFound()
        {
            var containerName = "newContainer";
            var objectName = "newObject";

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

            var resp = await client.GetObject(containerName, objectName);

            Assert.AreEqual(HttpStatusCode.NotFound, resp.StatusCode);
        }
コード例 #5
0
        public async Task GetStorageObjectIncludesAuthHeader()
        {
            var containerName = "newContainer";
            var objectName = "newObject";

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

            await client.GetObject(containerName, objectName);

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