public void GetLinkForNoRouteDataThrows([Frozen]HttpRequestMessage request, UrlHelper sut) { request.RequestUri = new Uri(request.RequestUri, "api/foo/"); Assert.Throws<InvalidOperationException>(() => sut.GetLink<FooController>(r => r.GetDefault())); }
public void GetLinkWithCustomRouteAndDispatcherReturnsCorrectResult( [Frozen]HttpRequestMessage request, [Frozen(As = typeof(IRouteValuesQuery))]ScalarRouteValuesQuery dummyQuery, [Frozen]Mock<IRouteDispatcher> dispatcherStub, string routeName, [Greedy]RouteLinker forComparison, UrlHelper 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)); var expected = forComparison.GetUri<FooController>(r => r.GetWithPloehAndFnaah(ploeh, fnaah)); // Act var actual = sut.GetLink<FooController>(r => r.GetWithPloehAndFnaah(ploeh, fnaah), dispatcherStub.Object); //Assert Assert.Equal(expected, actual); }
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)); }
public void GetLinkThrowsExceptionForNullExpression( [Frozen]HttpRequestMessage request, RouteLinker forComparison, UrlHelper sut) { request.AddDefaultRoute(); Assert.Throws(typeof(ArgumentNullException), () => sut.GetLink<FooController>(null)); }
public void GetLinkReturnsCorrectUriForExpressionOfFuncWithSingleParameter( [Frozen]HttpRequestMessage request, RouteLinker forComparison, UrlHelper sut, int id) { request.AddDefaultRoute(); var expected = forComparison.GetUri<FooController>(a => a.GetById(id)); var actual = sut.GetLink<FooController>(a => a.GetById(id)); Assert.Equal(expected, actual); }
public void GetLinkReturnsCorrectUriForExpressionOfFuncWithComplexParameter( [Frozen]HttpRequestMessage request, RouteLinker forComparison, UrlHelper sut, SomeModel someModel) { request.AddDefaultRoute(); var expected = forComparison.GetUri<ModelController, object>(a => a.Get(someModel)); var actual = sut.GetLink<ModelController, object>(a => a.Get(someModel)); Assert.Equal(expected, actual); }
public void GetLinkReturnsCorrectUriForExpressionOfActionWithMultipleParameters( [Frozen]HttpRequestMessage request, RouteLinker forComparison, UrlHelper sut, int id, int bar) { request.AddDefaultRoute(); var expected = forComparison.GetUri<FooBarController>(a => a.GetBar(id, bar)); var actual = sut.GetLink<FooBarController>(a => a.GetBar(id, bar)); Assert.Equal(expected, actual); }
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); }