예제 #1
0
 public void TestGetUriThrowsExceptionOnNullRequestObject()
 {
     Assert.Throws <ArgumentNullException>(
         () =>
     {
         HttpRequestExtensions.GetUri(null);
     });
 }
예제 #2
0
        public void TestGetUriUsesDefaultHostNameOnRequestObjectHostIsNotSpecified()
        {
            var request = new DefaultHttpContext().Request;

            request.Scheme = ExpectedSchema;

            var uri = HttpRequestExtensions.GetUri(request);

            Assert.Equal(
                new Uri(string.Format(CultureInfo.InvariantCulture, "{0}://{1}", ExpectedSchema, ExpectedDefaultHostName)),
                uri);
        }
예제 #3
0
        public void TestGetUriThrowsExceptionOnRequestObjectSchemeIsEmpty()
        {
            var request = new DefaultHttpContext().Request;

            var exception = Assert.Throws <ArgumentException>(
                () =>
            {
                HttpRequestExtensions.GetUri(request);
            });

            Assert.True(exception.Message.Contains("Scheme"), "Scheme is not mentioned in the exception");
        }
예제 #4
0
        public void TestGetUriReturnsCorrectUriIfRequestObjectSchemeAndHostAreSpecified()
        {
            var request = new DefaultHttpContext().Request;

            request.Scheme = ExpectedSchema;
            request.Host   = new HostString(ExpectedHostName);

            var uri = HttpRequestExtensions.GetUri(request);

            Assert.Equal(
                new Uri(string.Format(CultureInfo.InvariantCulture, "{0}://{1}", ExpectedSchema, ExpectedHostName)),
                uri);
        }
예제 #5
0
        public void TestGetUriUsesMultipleHostNameOnRequestWithManyHostsSpecified()
        {
            var request = new DefaultHttpContext().Request;

            request.Scheme = ExpectedSchema;
            request.Host   = new HostString("host1,host2");

            var uri = HttpRequestExtensions.GetUri(request);

            Assert.Equal(
                new Uri(string.Format(CultureInfo.InvariantCulture, "{0}://{1}", ExpectedSchema, ExpectedMulltipleHostName)),
                uri);
        }
예제 #6
0
        public void TestGetUriThrowsExceptionOnRequestObjectHostIsNotSpecified()
        {
            var request = new DefaultHttpContext().Request;

            request.Scheme = ExpectedSchema;

            var exception = Assert.Throws(
                typeof(ArgumentException),
                () =>
            {
                HttpRequestExtensions.GetUri(request);
            });

            Assert.True(exception.Message.Contains("Host"), "Host is not mentioned in the exception");
        }
예제 #7
0
        public void TestGetUriReturnsCorrectUriIfRequestObjectSchemeAndHostAndPathAndQueryStringAreSpecified()
        {
            var request = new DefaultHttpContext().Request;

            request.Scheme      = ExpectedSchema;
            request.Host        = new HostString(ExpectedHostName);
            request.Path        = new PathString(ExpectedPath);
            request.QueryString = new QueryString(ExpectedQueryString);

            var uri = HttpRequestExtensions.GetUri(request);

            Assert.Equal(
                new Uri(string.Format("{0}://{1}{2}{3}", ExpectedSchema, ExpectedHostName, ExpectedPath, ExpectedQueryString)),
                uri);
        }