コード例 #1
0
 public void GetLinkThrowsExceptionForNullExpression(
     [Frozen] HttpRequestMessage request,
     RouteLinker forComparison,
     UrlHelper sut)
 {
     request.AddDefaultRoute();
     Assert.Throws(typeof(ArgumentNullException), () => sut.GetLink <FooController>(null));
 }
コード例 #2
0
        public void GetLinkAsyncReturnsCorrectUriForExpressionOfFuncWithComplexParameter(
            [Frozen] HttpRequestMessage request,
            RouteLinker forComparison,
            UrlHelper sut, SomeModel someModel)
        {
            request.AddDefaultRoute();

            var expected = forComparison.GetUriAsync <ModelAsyncController, object>(a => a.Get(someModel)).Result;
            var actual   = sut.GetLinkAsync <ModelAsyncController, object>(a => a.Get(someModel)).Result;

            Assert.Equal(expected, actual);
        }
コード例 #3
0
        public void GetLinkFromBaseActionMethodReturnsCorrectResponse(
            [Frozen] HttpRequestMessage request,
            RouteLinker forComparison,
            UrlHelper sut)
        {
            request.AddDefaultRoute();

            var expected = forComparison.GetUri <DerivedController>(c => c.BaseMethod());
            var actual   = sut.GetLink <DerivedController>(c => c.BaseMethod());

            Assert.Equal(expected, actual);
        }
コード例 #4
0
        public void GetLinkReturnsCorrectUriForExpressionOfActionWithSingleParameter(
            [Frozen] HttpRequestMessage request,
            RouteLinker forComparison,
            UrlHelper sut, int id)
        {
            request.AddDefaultRoute();

            var expected = forComparison.GetUri <FooController, object>(a => a.GetById(id));
            var actual   = sut.GetLink <FooController, object>(a => a.GetById(id));

            Assert.Equal(expected, actual);
        }
コード例 #5
0
        public void GetLinkReturnsCorrectUriForExpressionOfFuncWithMultipleParameters(
            [Frozen] HttpRequestMessage request,
            RouteLinker forComparison,
            UrlHelper sut, int id, int bar)
        {
            request.AddDefaultRoute();

            var expected = forComparison.GetUri <FooBarController, object>(a => a.GetBar(id, bar));
            var actual   = sut.GetLink <FooBarController, object>(a => a.GetBar(id, bar));

            Assert.Equal(expected, actual);
        }
コード例 #6
0
        public void GetLinkReturnsCorrectUriForExpressionOfActionWithComplexParameter(
            [Frozen] HttpRequestMessage request,
            RouteLinker forComparison,
            UrlHelper sut,
            SomeModel someModel)
        {
            request.AddDefaultRoute();

            var expected = forComparison.GetUri <ModelController>(a => a.Get(someModel));
            var actual   = sut.GetLink <ModelController>(a => a.Get(someModel));

            Assert.Equal(expected, actual);
        }
コード例 #7
0
        public void GetBarRouteForDefaultGetMethodReturnsCorrectResult(
            [Frozen] HttpRequestMessage request,
            RouteLinker sut)
        {
            request.AddDefaultRoute();

            Uri actual = sut.GetUri <BarController>(r => r.GetDefault());

            var baseUri  = request.RequestUri.GetLeftPart(UriPartial.Authority);
            var expected = new Uri(new Uri(baseUri), "api/bar");

            Assert.Equal(expected, actual);
        }
コード例 #8
0
        public void GetUriFromBaseActionMethodReturnsCorrectResponse(
            [Frozen] HttpRequestMessage request,
            RouteLinker sut)
        {
            request.AddDefaultRoute();

            var actual = sut.GetUri <DerivedController>(c => c.BaseMethod());

            var baseUri  = request.RequestUri.GetLeftPart(UriPartial.Authority);
            var expected = new Uri(new Uri(baseUri), "api/derived");

            Assert.Equal(expected, actual);
        }
コード例 #9
0
        public void GetLinkDoesNotMutateExistingRouteData(
            [Frozen] HttpRequestMessage request,
            UrlHelper sut)
        {
            request.AddDefaultRoute();
            var expected = new HashSet <KeyValuePair <string, object> >(
                request.GetRouteData().Values);

            sut.GetLink <FooController>(r => r.GetDefault());

            var actual = request.GetRouteData().Values.ToList();

            Assert.True(expected.SetEquals(actual));
        }
コード例 #10
0
        public void GetUriForGetMethodWithParameters(
            [Frozen] HttpRequestMessage request,
            RouteLinker sut,
            int id)
        {
            request.AddDefaultRoute();

            var actual = sut.GetUri <FooController>(r => r.GetById(id));

            var baseUri  = request.RequestUri.GetLeftPart(UriPartial.Authority);
            var expected = new Uri(new Uri(baseUri), "api/foo/" + id);

            Assert.Equal(expected, actual);
        }
コード例 #11
0
ファイル: RouteLinkerTests.cs プロジェクト: zielyn/Hyprlinkr
        public void GetAsyncRouteForGetMethodWithIdReturnsCorrectResult(
            [Frozen] HttpRequestMessage request,
            RouteLinker sut,
            int id)
        {
            request.AddDefaultRoute();

            Uri actual = sut.GetUriAsync((AsyncController c) => c.Get(id)).Result;

            var baseUri  = request.RequestUri.GetLeftPart(UriPartial.Authority);
            var expected = new Uri(new Uri(baseUri), "api/async/" + id);

            Assert.Equal(expected, actual);
        }
コード例 #12
0
        public void GetUriForNullFnaahReturnsCorrectResult(
            [Frozen] HttpRequestMessage request,
            RouteLinker sut,
            int ploeh)
        {
            request.AddDefaultRoute();

            var actual = sut.GetUri <FooController>(
                c => c.GetWithPloehAndFnaah(ploeh, null));

            var baseUri  = request.RequestUri.GetLeftPart(UriPartial.Authority);
            var expected = new Uri(new Uri(baseUri), "api/foo?ploeh=" + ploeh);

            Assert.Equal(expected, actual);
        }
コード例 #13
0
        public void GetUriForNullQueryParameterReturnsCorrectResult(
            [Frozen] HttpRequestMessage request,
            RouteLinker sut,
            int id)
        {
            request.AddDefaultRoute();

            var actual = sut.GetUri <BarController>(
                c => c.GetWithIdAndQueryParameter(id, null));

            var baseUri  = request.RequestUri.GetLeftPart(UriPartial.Authority);
            var expected = new Uri(new Uri(baseUri), "api/bar/" + id);

            Assert.Equal(expected, actual);
        }
コード例 #14
0
        public void GetUriWithNullOptionalParameterReturnsCorrectResult(
            [Frozen] HttpRequestMessage request,
            RouteLinker sut,
            int id,
            string bar)
        {
            request.AddDefaultRoute();

            var actual = sut.GetUri <FooController>(
                c => c.GetWithIdAndOptionalParameter(id, bar, null));

            var baseUri  = request.RequestUri.GetLeftPart(UriPartial.Authority);
            var expected =
                new Uri(new Uri(baseUri), "api/foo/" + id + "?bar=" + bar);

            Assert.Equal(expected, actual);
        }
コード例 #15
0
        public void GetUriForGetMethodWithNamedParametersReturnsCorrectResult(
            [Frozen] HttpRequestMessage request,
            RouteLinker sut,
            int ploeh,
            string fnaah)
        {
            request.AddDefaultRoute();

            var actual = sut.GetUri <FooController>(r =>
                                                    r.GetWithPloehAndFnaah(ploeh, fnaah));

            var baseUri  = request.RequestUri.GetLeftPart(UriPartial.Authority);
            var expected =
                new Uri(
                    new Uri(baseUri),
                    "api/foo?ploeh=" + ploeh + "&fnaah=" + fnaah);

            Assert.Equal(expected, actual);
        }
コード例 #16
0
        public void GetUriWithCustomRouteAndDispatcherReturnsCorrectResult(
            [Frozen] HttpRequestMessage request,
            [Frozen(As = typeof(IRouteValuesQuery))] ScalarRouteValuesQuery dummyQuery,
            [Frozen] Mock <IRouteDispatcher> dispatcherStub,
            string routeName,
            [Greedy] RouteLinker sut,
            int ploeh,
            string fnaah)
        {
            // Arrange
            request.AddDefaultRoute();
            request.AddRoute(
                name: routeName,
                routeTemplate: "foo/{ploeh}/{fnaah}",
                defaults: new { });

            var method = Reflect <FooController>
                         .GetMethod(c => c.GetWithPloehAndFnaah(ploeh, fnaah));

            dispatcherStub
            .Setup(d =>
                   d.Dispatch(
                       It.Is <MethodCallExpression>(exp => method.Equals(exp.Method)),
                       It.IsAny <IDictionary <string, object> >()))
            .Returns((MethodCallExpression _, IDictionary <string, object> routeValues) =>
                     new Rouple(routeName, routeValues));

            // Act
            var actual = sut.GetUri <FooController>(r =>
                                                    r.GetWithPloehAndFnaah(ploeh, fnaah));

            // Assert
            var baseUri  = request.RequestUri.GetLeftPart(UriPartial.Authority);
            var expected =
                new Uri(
                    new Uri(baseUri),
                    "foo/" + ploeh + "/" + fnaah);

            Assert.Equal(expected, actual);
        }
コード例 #17
0
        public void GetUriFromModelControllerReturnsCorrectResponse(
            [Frozen] HttpRequestMessage request,
            [Frozen] Mock <IRouteValuesQuery> queryStub,
            [Frozen(As = typeof(IRouteDispatcher))] DefaultRouteDispatcher dummy,
            [Greedy] RouteLinker sut,
            SomeModel model)
        {
            request.AddDefaultRoute();
            queryStub.SetReturnsDefault <IDictionary <string, object> >(
                new Dictionary <string, object>
            {
                { "number", model.Number.ToString() },
                { "text", model.Text }
            });

            var actual = sut.GetUri <ModelController>(c => c.Get(model));

            var baseUri  = request.RequestUri.GetLeftPart(UriPartial.Authority);
            var expected = new Uri(
                new Uri(baseUri),
                "api/model?number=" + model.Number + "&text=" + model.Text);

            Assert.Equal(expected, actual);
        }