public void SubRouteCollection_Throws_OnDuplicateNamedRoute_WebAPI() { // Arrange var collection = new SubRouteCollection(); var route1 = new HttpRoute("api/Person"); var route2 = new HttpRoute("api/Car"); collection.Add(new RouteEntry("route", route1)); var expectedError = "A route named 'route' is already in the route collection. Route names must be unique.\r\n\r\n" + "Duplicates:" + Environment.NewLine + "api/Car" + Environment.NewLine + "api/Person"; // Act & Assert Assert.Throws<InvalidOperationException>(() => collection.Add(new RouteEntry("route", route2)), expectedError); }
public void SubRouteCollection_Throws_OnDuplicateNamedRoute_MVC() { // Arrange var collection = new SubRouteCollection(); var route1 = new Route("Home/Index", new Mock<IRouteHandler>().Object); var route2 = new Route("Person/Index", new Mock<IRouteHandler>().Object); collection.Add(new RouteEntry("route", route1)); var expectedError = "A route named 'route' is already in the route collection. Route names must be unique.\r\n\r\n" + "Duplicates:" + Environment.NewLine + "Person/Index" + Environment.NewLine + "Home/Index"; // Act & Assert Assert.Throws<InvalidOperationException>(() => collection.Add(new RouteEntry("route", route2)), expectedError); }
public void SubRouteCollection_Throws_OnDuplicateNamedRoute_MVC() { // Arrange var collection = new SubRouteCollection(); var route1 = new Route("Home/Index", new Mock <IRouteHandler>().Object); var route2 = new Route("Person/Index", new Mock <IRouteHandler>().Object); collection.Add(new RouteEntry("route", route1)); var expectedError = "A route named 'route' is already in the route collection. Route names must be unique.\r\n\r\n" + "Duplicates:" + Environment.NewLine + "Person/Index" + Environment.NewLine + "Home/Index"; // Act & Assert Assert.Throws <InvalidOperationException>(() => collection.Add(new RouteEntry("route", route2)), expectedError); }
public void SubRouteCollection_Throws_OnDuplicateNamedRoute_WebAPI() { // Arrange var collection = new SubRouteCollection(); var route1 = new HttpRoute("api/Person"); var route2 = new HttpRoute("api/Car"); collection.Add(new RouteEntry("route", route1)); var expectedError = "A route named 'route' is already in the route collection. Route names must be unique.\r\n\r\n" + "Duplicates:" + Environment.NewLine + "api/Car" + Environment.NewLine + "api/Person"; // Act & Assert Assert.Throws <InvalidOperationException>(() => collection.Add(new RouteEntry("route", route2)), expectedError); }
private static void AddRouteEntries(SubRouteCollection collector, string prefix, IReadOnlyCollection <IDirectRouteFactory> factories, IReadOnlyCollection <HttpActionDescriptor> actions, IInlineConstraintResolver constraintResolver, bool targetIsAction) { foreach (IDirectRouteFactory factory in factories) { RouteEntry entry = CreateRouteEntry(prefix, factory, actions, constraintResolver, targetIsAction); collector.Add(entry); } }
public static void AddDirectRouteFromMethod <T>(SubRouteCollection collector, Expression <Action <T> > methodCall) { var method = ((MethodCallExpression)methodCall.Body).Method; var attributes = method.GetCustomAttributes(false).OfType <IRouteInfoProvider>(); var controllerDescriptor = new ReflectedAsyncControllerDescriptor(method.DeclaringType); var actionDescriptor = new ReflectedActionDescriptor(method, method.Name, controllerDescriptor); foreach (var attribute in attributes) { var subRoute = new Route(attribute.Template, routeHandler: null); subRoute.SetTargetActionDescriptors(new ActionDescriptor[] { actionDescriptor }); collector.Add(new RouteEntry(null, subRoute)); } }
private static void AddRouteEntries(SubRouteCollection collector, string areaPrefix, string prefix, IEnumerable<IDirectRouteFactory> factories, IReadOnlyCollection<ActionDescriptor> actions, IInlineConstraintResolver constraintResolver, bool targetIsAction) { foreach (IDirectRouteFactory factory in factories) { RouteEntry entry = CreateRouteEntry(areaPrefix, prefix, factory, actions, constraintResolver, targetIsAction); collector.Add(entry); } }