예제 #1
0
 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);
     }
 }
 private void AddRouteEntries(SubRouteCollection collector, string areaPrefix, string prefix,
                              IEnumerable <IRouteInfoProvider> providers, ControllerDescriptor controller,
                              IList <ActionDescriptor> actions, bool routeIsForAction)
 {
     foreach (IRouteInfoProvider provider in providers)
     {
         RouteEntry entry = CreateRouteEntry(areaPrefix, prefix, provider, controller, actions,
                                             routeIsForAction);
         collector.Add(entry);
     }
 }
예제 #3
0
        public void SubRouteCollection_Throws_OnDuplicateNamedRoute()
        {
            // 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 {
                Name = "route", Route = route1
            });

            var expectedError =
                "A route named 'route' is already in the route collection. Route names must be unique." + Environment.NewLine +
                Environment.NewLine +
                "Duplicates:" + Environment.NewLine +
                "Person/Index" + Environment.NewLine +
                "Home/Index";

            // Act & Assert
            Assert.Throws <InvalidOperationException>(() => collection.Add(new RouteEntry {
                Name = "route", Route = route2
            }), expectedError);
        }