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)); }
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); }
public void VerifyReturnsFalseWhenActionContextIsForWrongController(ResourceLinkParser sut) { var actionContext = GetActionContext <FooController>(x => x.GetDefault()); var actual = sut.Verify <BarController>(actionContext, x => x.GetDefault()); Assert.False(actual); }
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); }
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); }
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); }
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); }
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); }
public void VerifyReturnsFalseWhenActionContextIsForMethodDeclaredOnControllerBaseTypeButActionControllerIsDifferentFromSpecifiedController(ResourceLinkParser sut) { var actionContext = GetActionContext <DerivedController>(x => x.BaseMethod()); var actual = sut.Verify <DerivedController2>(actionContext, x => x.BaseMethod()); Assert.False(actual); }
public void VerifyReturnsTrueWhenActionContextIsForMethodDeclaredOnControllerBaseType(ResourceLinkParser sut) { var actionContext = GetActionContext <DerivedController>(x => x.BaseMethod()); var actual = sut.Verify <DerivedController>(actionContext, x => x.BaseMethod()); Assert.True(actual); }
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); }
public void SutIsResourceLinkParser(ResourceLinkParser sut) { Assert.IsAssignableFrom <IResourceLinkParser>(sut); }
public void SutIsActionVerifier(ResourceLinkParser sut) { Assert.IsAssignableFrom <IActionVerifier>(sut); }