コード例 #1
0
        public void ParseUriThrowsOnUriWithoutMatchingRoute(ResourceLinkParser sut, string host, int id)
        {
            sut.Configuration.AddDefaultRoute();
            var uri = new Uri(string.Format("http://{0}/foo/{1}", host, id));

            Assert.Throws <ArgumentException>(() => sut.Parse(uri));
        }
コード例 #2
0
        public void VerifyReturnsTrueWhenActionContextMatchesExpression(ResourceLinkParser sut, int id)
        {
            var actionContext = GetActionContext <FooController>(x => x.GetById(id));

            var actual = sut.Verify <FooController>(actionContext, x => x.GetById(default(int)));

            Assert.True(actual);
        }
コード例 #3
0
        public void VerifyReturnsFalseWhenActionContextIsForWrongController(ResourceLinkParser sut)
        {
            var actionContext = GetActionContext <FooController>(x => x.GetDefault());

            var actual = sut.Verify <BarController>(actionContext, x => x.GetDefault());

            Assert.False(actual);
        }
コード例 #4
0
        public void TryParseUriReturnsFalseOnUriWithoutMatchingRoute(ResourceLinkParser sut, string host, int id)
        {
            sut.Configuration.AddDefaultRoute();
            var uri = new Uri(string.Format("http://{0}/foo/{1}", host, id));

            HttpActionContext dummy;
            var actual = sut.TryParse(uri, out dummy);

            Assert.False(actual);
        }
コード例 #5
0
        public void ParseUriReturnsCorrectValueForUriWithQueryParametersInDifferentOrder(
            ResourceLinkParser sut, string host, int id, string bar, string foo)
        {
            sut.Configuration.AddDefaultRoute();
            var uri = new Uri(string.Format("http://{0}/api/foo/{1}?foo={2}&bar={3}", host, id, foo, bar));

            var actual   = sut.Parse(uri);
            var expected = GetActionContext <FooController>(x => x.GetWithIdAndOptionalParameter(id, bar, foo));

            Assert.Equal(expected, actual, HttpActionContextResemblance.EqualityComparer);
        }
コード例 #6
0
        public void ParseUriReturnsCorrectValueForUriWithQueryParameters(
            ResourceLinkParser sut, string host, int id, string bar)
        {
            sut.Configuration.AddDefaultRoute();
            var uri = new Uri(string.Format("http://{0}/api/bar/{1}?bar={2}", host, id, bar));

            var actual   = sut.Parse(uri);
            var expected = GetActionContext <BarController>(x => x.GetWithIdAndQueryParameter(id, bar));

            Assert.Equal(expected, actual, HttpActionContextResemblance.EqualityComparer);
        }
コード例 #7
0
        public void ParseUriReturnsCorrectValueForComplexRoute(ResourceLinkParser sut, string host, int id, int bar)
        {
            sut.Configuration.AddDefaultRoute();
            sut.Configuration.AddRoute("Complex Route", "api/{controller}/{id}/bars/{bar}", null);
            var uri = new Uri(string.Format("http://{0}/api/foobar/{1}/bars/{2}", host, id, bar));

            var actual   = sut.Parse(uri);
            var expected = GetActionContext <FooBarController>(x => x.GetBar(id, bar));

            Assert.Equal(expected, actual, HttpActionContextResemblance.EqualityComparer);
        }
コード例 #8
0
        public void ParseUriFollowsRedirect(ResourceLinkParser sut, string host)
        {
            var defaultRoute = sut.Configuration.AddDefaultRoute();

            sut.Configuration.AddPermanentRedirectRoute("Redirect", new HttpRoute("api_old/{controller}/{id}", new HttpRouteValueDictionary(new { id = RouteParameter.Optional })), defaultRoute);
            var uri = new Uri(string.Format("http://{0}/api_old/bar", host));

            var actual   = sut.Parse(uri);
            var expected = GetActionContext <BarController>(x => x.GetDefault());

            Assert.Equal(expected, actual, HttpActionContextResemblance.EqualityComparer);
        }
コード例 #9
0
        public void VerifyReturnsFalseWhenActionContextIsForMethodDeclaredOnControllerBaseTypeButActionControllerIsDifferentFromSpecifiedController(ResourceLinkParser sut)
        {
            var actionContext = GetActionContext <DerivedController>(x => x.BaseMethod());

            var actual = sut.Verify <DerivedController2>(actionContext, x => x.BaseMethod());

            Assert.False(actual);
        }
コード例 #10
0
        public void VerifyReturnsTrueWhenActionContextIsForMethodDeclaredOnControllerBaseType(ResourceLinkParser sut)
        {
            var actionContext = GetActionContext <DerivedController>(x => x.BaseMethod());

            var actual = sut.Verify <DerivedController>(actionContext, x => x.BaseMethod());

            Assert.True(actual);
        }
コード例 #11
0
        public void VerifyReturnsFalseWhenActionContextIsForCorrectControllerButWrongAction(ResourceLinkParser sut, int id)
        {
            var actionContext = GetActionContext <FooController>(x => x.GetById(id));

            var actual = sut.Verify <FooController>(actionContext, x => x.GetDefault());

            Assert.False(actual);
        }
コード例 #12
0
 public void SutIsResourceLinkParser(ResourceLinkParser sut)
 {
     Assert.IsAssignableFrom <IResourceLinkParser>(sut);
 }
コード例 #13
0
 public void SutIsActionVerifier(ResourceLinkParser sut)
 {
     Assert.IsAssignableFrom <IActionVerifier>(sut);
 }