public void BuildWithActionsSelectionBuildsCorrectProcessor()
        {
            DisableOriginalRouteProcessor routeProcessor = CreateRouteProcessor();

            routeProcessor.Cultures = new[]
            {
                DisableOriginalRouteProcessorBuilderTest.Culture, DisableOriginalRouteProcessorBuilderTest.Culture2,
            };

            ApplicationModel applicationModel   = TestApplicationModel.Instance;
            ControllerModel  originalController = applicationModel.Controller2();

            ControllerModel translatedController =
                originalController.CreateLocalizedControllerModel(GetLocalizedRouteMarker(),
                                                                  DisableOriginalRouteProcessorBuilderTest.Culture);

            foreach (ActionModel translatedAction in translatedController.Actions.Take(1))
            {
                foreach (SelectorModel selectorModel in translatedAction.GetOriginalModel(GetLocalizedRouteMarker()).Selectors.Take(1))
                {
                    translatedAction.Selectors.Add(selectorModel);
                }
            }

            applicationModel.Controllers.Add(translatedController);

            translatedController = originalController.CreateLocalizedControllerModel(GetLocalizedRouteMarker(),
                                                                                     DisableOriginalRouteProcessorBuilderTest.Culture2);

            foreach (ActionModel translatedAction in translatedController.Actions.Take(1))
            {
                foreach (SelectorModel selectorModel in translatedAction.GetOriginalModel(GetLocalizedRouteMarker()).Selectors)
                {
                    translatedAction.Selectors.Add(selectorModel);
                }
            }

            applicationModel.Controllers.Add(translatedController);

            List <RouteSelection> routeSelections = new List <RouteSelection>()
            {
                new RouteSelection()
                {
                    ControllerModel = originalController,
                    ActionModels    = originalController.Actions.Take(1).ToList(),
                },
            };

            routeProcessor.Process(routeSelections);

            Assert.IsFalse(originalController.Selectors.First().ActionConstraints.OfType <NeverAcceptActionContraint>().Any());
            Assert.IsTrue(originalController.Actions.First()
                          .Selectors.First()
                          .ActionConstraints.OfType <NeverAcceptActionContraint>()
                          .Any());
            Assert.IsFalse(originalController.Actions.Last()
                           .Selectors.First()
                           .ActionConstraints.OfType <NeverAcceptActionContraint>()
                           .Any());
        }
Example #2
0
        public RouteTranslationBuilder RemoveOriginalRoutes()
        {
            IRouteProcessor routeProcessor = new DisableOriginalRouteProcessor(RouteTranslationConfiguration,
                                                                               LoggerFactory.CreateLogger <DisableOriginalRouteProcessor>())
            {
                Cultures = CurrentCultures.ToArray(),
            };

            RouteTranslationStore.Add(new RouteSelectorProcessorPair
            {
                Selector  = CurrentRouteSelectorFunc(),
                Processor = routeProcessor,
            });

            return(this);
        }