public void Should_return_not_found_if_the_object_does_not_exist()
        {
            using (new TestHelper(authToken, storageUrl))
            {
                var getStorageItem     = new GetStorageItem(storageUrl, Constants.CONTAINER_NAME, Constants.StorageItemName);
                var exceptionWasThrown = false;

                ICloudFilesResponse getStorageItemResponse = null;
                try
                {
                    getStorageItemResponse = new GenerateRequestByType().Submit(getStorageItem, authToken);
                }
                catch (WebException ex)
                {
                    exceptionWasThrown = true;
                    var code = ((HttpWebResponse)ex.Response).StatusCode;
                    Assert.That(code, Is.EqualTo(HttpStatusCode.NotFound));
                    if (getStorageItemResponse != null)
                    {
                        getStorageItemResponse.Dispose();
                    }
                }

                Assert.That(exceptionWasThrown, Is.True);
            }
        }
 /// <summary>
 /// constructor
 /// </summary>
 /// <param name="objectName">Storage Item Name</param>
 /// <param name="response">CloudFiles response</param>
 public StorageItemInformation(string objectName, ICloudFilesResponse response)
 {
     this.headers = response.Headers;
     this.objectName = objectName;
     this.lastModified = response.LastModified;
     this.sizeInBytes = response.ContentLength;
 }
Example #3
0
        private string OutputResponseInformation(ICloudFilesResponse response)
        {
            StringBuilder output = new StringBuilder();

            output.Append("\n");
            output.Append("RESPONSE:");
            output.Append("\n");
            output.Append("method: ");
            output.Append(response.Method);
            output.Append("\n");
            output.Append("Status Code: ");
            output.Append(response.StatusCode.ToString());
            output.Append("\n");
            output.Append("Status Description: ");
            output.Append(response.StatusDescription);
            output.Append("\n");
            output.Append("Headers: ");
            output.Append("\n");
            foreach (var key in response.Headers.AllKeys)
            {
                output.Append(key);
                output.Append(": ");
                output.Append(response.Headers[key]);
                output.Append("\n");
            }

            return(output.ToString());
        }
        public void Should_return_partial_content_if_the_item_exists_and_only_range_to_is_set()
        {
            requestHeaderFields.Add(RequestHeaderFields.Range, "-8");
            using (var testHelper = new TestHelper(authToken, storageUrl))
            {
                ICloudFilesResponse getStorageItemResponse = null;
                try
                {
                    testHelper.PutItemInContainer();

                    var getStorageItem = new GetStorageItem(storageUrl, Constants.CONTAINER_NAME, Constants.StorageItemName, requestHeaderFields);

                    getStorageItemResponse = new GenerateRequestByType().Submit(getStorageItem, authToken);
                    Assert.That(getStorageItemResponse.Status, Is.EqualTo(HttpStatusCode.PartialContent));
                }
                finally
                {
                    if (getStorageItemResponse != null)
                    {
                        getStorageItemResponse.Dispose();
                    }
                    testHelper.DeleteItemFromContainer();
                }
            }
        }
        public void Should_return_item_if_the_item_exists_and_it_hasnt_been_modified()
        {
            requestHeaderFields = new Dictionary <RequestHeaderFields, string>
            {
                { RequestHeaderFields.IfUnmodifiedSince, futureDateTime.ToString() }
            };

            using (var testHelper = new TestHelper(authToken, storageUrl))
            {
                ICloudFilesResponse getStorageItemResponse = null;
                try
                {
                    testHelper.PutItemInContainer();
                    var getStorageItem = new GetStorageItem(storageUrl, Constants.CONTAINER_NAME, Constants.StorageItemName, requestHeaderFields);
                    getStorageItemResponse = new GenerateRequestByType().Submit(getStorageItem, authToken);
                    Assert.That(getStorageItemResponse.Status, Is.EqualTo(HttpStatusCode.OK));
                }
                finally
                {
                    if (getStorageItemResponse != null)
                    {
                        getStorageItemResponse.Dispose();
                    }
                    testHelper.DeleteItemFromContainer();
                }
            }
        }
        public void should_return_item_with_last_modified_date_within_a_minute_of_object_creation()
        {
            requestHeaderFields = new Dictionary <RequestHeaderFields, string>
            {
                { RequestHeaderFields.IfModifiedSince, pastDateTime.ToString() }
            };

            using (var testHelper = new TestHelper(authToken, storageUrl))
            {
                ICloudFilesResponse getStorageItemResponse = null;
                try
                {
                    testHelper.PutItemInContainer();
                    var getStorageItem = new GetStorageItem(storageUrl, Constants.CONTAINER_NAME, Constants.StorageItemName, requestHeaderFields);

                    getStorageItemResponse = new GenerateRequestByType().Submit(getStorageItem, authToken);
                    Assert.That(getStorageItemResponse.Status, Is.EqualTo(HttpStatusCode.OK));
                    Assert.That(getStorageItemResponse.LastModified, Is.AtLeast(DateTime.Now.AddMinutes(-1)));
                    Assert.That(getStorageItemResponse.LastModified, Is.AtMost(DateTime.Now.AddMinutes(2)));
                }
                finally
                {
                    if (getStorageItemResponse != null)
                    {
                        getStorageItemResponse.Dispose();
                    }
                    testHelper.DeleteItemFromContainer();
                }
            }
        }
        public void Should_return_not_modified_if_the_item_exists_and_it_hasnt_been_modified()
        {
            requestHeaderFields = new Dictionary <RequestHeaderFields, string>
            {
                { RequestHeaderFields.IfModifiedSince, futureDateTime.ToString() }
            };

            using (var testHelper = new TestHelper(authToken, storageUrl))
            {
                ICloudFilesResponse getStorageItemResponse = null;
                var exceptionWasThrown = false;
                try
                {
                    testHelper.PutItemInContainer();
                    var getStorageItem = new GetStorageItem(storageUrl, Constants.CONTAINER_NAME, Constants.StorageItemName, requestHeaderFields);
                    getStorageItemResponse = new GenerateRequestByType().Submit(getStorageItem, authToken);
                }
                catch (WebException ex)
                {
                    var response = (HttpWebResponse)ex.Response;
                    Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.NotModified));
                    exceptionWasThrown = true;
                }
                finally
                {
                    if (getStorageItemResponse != null)
                    {
                        getStorageItemResponse.Dispose();
                    }
                    testHelper.DeleteItemFromContainer();
                }

                Assert.That(exceptionWasThrown, Is.True);
            }
        }
        private WebHeaderCollection GetHeaderCollection(ICloudFilesRequest request, out HttpStatusCode statusCode, out Stream responseStream)
        {
            httpResponse = request.GetResponse();

            var headerCollection = httpResponse.Headers;
            statusCode = httpResponse.StatusCode;
            responseStream = httpResponse.GetResponseStream();
            return headerCollection;
        }
Example #9
0
        private WebHeaderCollection GetHeaderCollection(ICloudFilesRequest request, out HttpStatusCode statusCode, out Stream responseStream)
        {
            httpResponse = request.GetResponse();

            var headerCollection = httpResponse.Headers;

            statusCode     = httpResponse.StatusCode;
            responseStream = httpResponse.GetResponseStream();
            return(headerCollection);
        }
        private string OutputResponseInformation(ICloudFilesResponse response)
        {
            var output = new StringBuilder();
            output.AppendLine("RESPONSE:");
            output.Append("Status Code: ");
            output.AppendLine(response.StatusCode.ToString());
            output.Append("Status Description: ");
            output.AppendLine(response.StatusDescription);
            output.AppendLine("Headers: ");
            foreach (var key in response.Headers.AllKeys)
            {
                output.Append(key);
                output.Append(": ");
                output.Append(response.Headers[key]);
                output.AppendLine();
            }

            return output.ToString();
        }
 public void Should_return_the_list_of_containers()
 {
     using (new TestHelper(authToken, storageUrl))
     {
         ICloudFilesResponse response = null;
         try
         {
             GetContainers request = new GetContainers(storageUrl);
             response = new GenerateRequestByType().Submit(request, authToken);
             Assert.That(response.ContentBody.Count, Is.GreaterThan(0));
         }
         finally
         {
             if (response != null)
             {
                 response.Dispose();
             }
         }
     }
 }
Example #12
0
        public void should_be_able_to_return_stream_more_than_once()
        {
            ICloudFilesResponse getStorageItemResponse = null;
            Stream stream     = null;
            Stream streamcopy = null;

            try
            {
                connection.CreateContainer(Constants.CONTAINER_NAME);
                connection.PutStorageItem(Constants.CONTAINER_NAME, Constants.StorageItemName);

                var getStorageItem = new GetStorageItem(storageUrl, Constants.CONTAINER_NAME, Constants.StorageItemName);

                getStorageItemResponse = new GenerateRequestByType().Submit(getStorageItem, authToken);
                stream     = getStorageItemResponse.GetResponseStream();
                streamcopy = getStorageItemResponse.GetResponseStream();
                Assert.AreEqual(stream.Length, streamcopy.Length);
                Assert.Greater(getStorageItemResponse.ContentLength, 0);
                Assert.IsTrue(stream.CanRead);
                Assert.IsTrue(streamcopy.CanRead);
            }
            finally
            {
                if (getStorageItemResponse != null)
                {
                    getStorageItemResponse.Close();
                }
                if (stream != null)
                {
                    stream.Close();
                }
                if (streamcopy != null)
                {
                    streamcopy.Close();
                }
                connection.DeleteStorageItem(Constants.CONTAINER_NAME, Constants.StorageItemName);
                connection.DeleteContainer(Constants.CONTAINER_NAME);
            }
        }
        public void Should_return_ok_if_the_object_exists()
        {
            using (var testHelper = new TestHelper(authToken, storageUrl))
            {
                ICloudFilesResponse getStorageItemResponse = null;
                try
                {
                    testHelper.PutItemInContainer();
                    var getStorageItem = new GetStorageItem(storageUrl, Constants.CONTAINER_NAME, Constants.StorageItemName);

                    getStorageItemResponse = new GenerateRequestByType().Submit(getStorageItem, authToken);
                    Assert.That(getStorageItemResponse.Status, Is.EqualTo(HttpStatusCode.OK));
                }
                finally
                {
                    if (getStorageItemResponse != null)
                    {
                        getStorageItemResponse.Dispose();
                    }
                    testHelper.DeleteItemFromContainer();
                }
            }
        }
        public void Should_return_OK_status()
        {
            using (new TestHelper(authToken, storageUrl))
            {
                ICloudFilesResponse response = null;
                try
                {
                    GetContainers request = new GetContainers(storageUrl);


                    response = new GenerateRequestByType(new RequestFactoryWithAgentSupport("NASTTestUserAgent")).Submit(request, authToken);

                    Assert.That(response.Status, Is.EqualTo(HttpStatusCode.OK));
                    Assert.That(response.ContentBody, Is.Not.Null);
                }
                finally
                {
                    if (response != null)
                    {
                        response.Dispose();
                    }
                }
            }
        }
Example #15
0
 private Dictionary<string, string> GetMetadata(ICloudFilesResponse getStorageItemResponse)
 {
     var metadata = new Dictionary<string, string>();
     var headers = getStorageItemResponse.Headers;
     foreach (var key in headers.AllKeys)
     {
         if (key.IndexOf(Constants.META_DATA_HEADER) > -1)
             metadata.Add(key, headers[key]);
     }
     return metadata;
 }