Esempio n. 1
0
        private void SetAndConfigureDefaultRouteSelectionCriteria(
            Action <BasicRouteCriteriaRouteSelector> basicRouteCriteriaRouteSelectorAction)
        {
            if ((CurrentRouteSelectorFunc as Func <BasicRouteCriteriaRouteSelector>) == null)
            {
                if (CurrentRouteSelectorFunc != null)
                {
                    Logger.LogWarning(
                        $"{nameof(CurrentRouteSelectorFunc)} is no {typeof(Func<BasicRouteCriteriaRouteSelector>)}, will be overridden.");
                }

                CurrentRouteSelectorFunc = (Func <BasicRouteCriteriaRouteSelector>)(() =>
                {
                    BasicRouteCriteriaRouteSelector basicRouteCriteriaRouteSelector =
                        new BasicRouteCriteriaRouteSelector(RouteTranslationConfiguration.Localizer);
                    basicRouteCriteriaRouteSelectorAction(basicRouteCriteriaRouteSelector);

                    return(basicRouteCriteriaRouteSelector);
                });
            }
            else
            {
                Func <IRouteSelector> previousRouteSelectorFunc = CurrentRouteSelectorFunc;

                CurrentRouteSelectorFunc = (Func <BasicRouteCriteriaRouteSelector>)(() =>
                {
                    BasicRouteCriteriaRouteSelector basicRouteCriteriaRouteSelector =
                        ((Func <BasicRouteCriteriaRouteSelector>)previousRouteSelectorFunc)();
                    basicRouteCriteriaRouteSelectorAction(basicRouteCriteriaRouteSelector);

                    return(basicRouteCriteriaRouteSelector);
                });
            }
        }
        public void DefaultRouteSelectionCriteriaWithControllerCriteriaReturnsEmptySelection()
        {
            IRouteSelector routeSelector = new BasicRouteCriteriaRouteSelector(new DefaultLocalizer())
            {
                Controller          = "MissingController",
                ControllerNamespace = typeof(Controller1).Namespace,
            };

            ICollection <RouteSelection> routeSelections = routeSelector.Select(TestApplicationModel.Instance);

            Assert.IsTrue(routeSelections.Count == 0);
        }
        public void DefaultRouteSelectionCriteriaWithControllerCriteriaReturnsControllerSelection()
        {
            IRouteSelector routeSelector = new BasicRouteCriteriaRouteSelector(new DefaultLocalizer())
            {
                Controller          = "Controller1",
                ControllerNamespace = typeof(Controller1).Namespace,
            };

            ICollection <RouteSelection> routeSelections = routeSelector.Select(TestApplicationModel.Instance);

            Assert.IsTrue(routeSelections.Count == 1);
            Assert.IsTrue(routeSelections.Single().ControllerModel.ControllerName == "Controller1");
            Assert.IsNull(routeSelections.Single().ActionModels);
        }
        public void DefaultRouteSelectionCriteriaWithControllerAndActionCriteriaReturnsCorrectSelection3()
        {
            IRouteSelector routeSelector = new BasicRouteCriteriaRouteSelector(new DefaultLocalizer())
            {
                Controller          = "Controller1",
                ControllerNamespace = typeof(Controller1).Namespace,
                Action          = "Action2",
                ActionArguments = new List <Type>()
                {
                },
            };

            ICollection <RouteSelection> routeSelections = routeSelector.Select(TestApplicationModel.Instance);

            Assert.IsTrue(routeSelections.Count == 1);
            Assert.IsTrue(routeSelections.Single().ControllerModel.ControllerName == "Controller1");
            Assert.IsTrue(routeSelections.Single().ActionModels.Count == 1);
            Assert.IsTrue(routeSelections.Single().ActionModels.First().ActionName == "Action2");
        }