コード例 #1
0
        public void PrefixCountsCacheCanBeCleared()
        {
            // Arrange
            var mockPortalController = new Mock <IPortalController>();
            var portals = new ArrayList {
                new PortalInfo {
                    PortalID = 1
                }
            };

            mockPortalController.Setup(x => x.GetPortals()).Returns(portals);
            PortalController.SetTestableInstance(mockPortalController.Object);

            this.mockPortalAliasService.Setup(x => x.GetPortalAliasesByPortalId(It.IsAny <int>())).Returns(new[] { new PortalAliasInfo {
                                                                                                                       HTTPAlias = "valid.lvh.me"
                                                                                                                   } });
            this.mockPortalAliasService.As <IPortalAliasController>().Setup(x => x.GetPortalAliasesByPortalId(It.IsAny <int>())).Returns(new[] { new PortalAliasInfo {
                                                                                                                                                     HTTPAlias = "valid.lvh.me"
                                                                                                                                                 } });

            var mockGlobals = new Mock <IGlobals>();

            mockGlobals.Setup(x => x.ApplicationPath).Returns(string.Empty);
            TestableGlobals.SetTestableInstance(mockGlobals.Object);

            // Act
            var parm = new PortalAliasRouteManager();

            parm.GetRoutePrefixCounts();
            parm.ClearCachedData();
            parm.GetRoutePrefixCounts();

            // Assert
            mockPortalController.Verify(x => x.GetPortals(), Times.Exactly(2));
        }
コード例 #2
0
        public void PrefixCountsAreCached()
        {
            //Arrange
            var mockPortalController = new Mock <IPortalController>();
            var portals = new ArrayList {
                new PortalInfo {
                    PortalID = 1
                }
            };

            mockPortalController.Setup(x => x.GetPortals()).Returns(portals);
            TestablePortalController.SetTestableInstance(mockPortalController.Object);

            var mockPortalAliasController = new Mock <IPortalAliasController>();

            mockPortalAliasController.Setup(x => x.GetPortalAliasesByPortalId(It.IsAny <int>())).Returns(new[] { new PortalAliasInfo {
                                                                                                                     HTTPAlias = "valid.lvh.me"
                                                                                                                 } });
            TestablePortalAliasController.SetTestableInstance(mockPortalAliasController.Object);

            var mockGlobals = new Mock <IGlobals>();

            mockGlobals.Setup(x => x.ApplicationPath).Returns("");
            TestableGlobals.SetTestableInstance(mockGlobals.Object);

            //Act
            var parm = new PortalAliasRouteManager();

            parm.GetRoutePrefixCounts();
            parm.GetRoutePrefixCounts();

            //Assert
            mockPortalController.Verify(x => x.GetPortals(), Times.Once());
        }
コード例 #3
0
        public IList <Route> MapHttpRoute(string moduleFolderName, string routeName, string url, object defaults, object constraints, string[] namespaces)
        {
            if (namespaces == null || namespaces.Length == 0 || String.IsNullOrEmpty(namespaces[0]))
            {
                throw new ArgumentException(Localization.GetExceptionMessage("ArgumentCannotBeNullOrEmpty",
                                                                             "The argument '{0}' cannot be null or empty.",
                                                                             "namespaces"));
            }

            Requires.NotNullOrEmpty("moduleFolderName", moduleFolderName);

            url = url.Trim(new[] { '/', '\\' });

            IEnumerable <int> prefixCounts = _portalAliasRouteManager.GetRoutePrefixCounts();
            var routes = new List <Route>();

            foreach (int count in prefixCounts)
            {
                string fullRouteName = _portalAliasRouteManager.GetRouteName(moduleFolderName, routeName, count);
                string routeUrl      = _portalAliasRouteManager.GetRouteUrl(moduleFolderName, url, count);
                Route  route         = MapHttpRouteWithNamespace(fullRouteName, routeUrl, defaults, constraints, namespaces);
                routes.Add(route);
                Logger.Trace("Mapping route: " + fullRouteName + " @ " + routeUrl);
            }

            return(routes);
        }
コード例 #4
0
        public IList <Route> MapHttpRoute(string moduleFolderName, string routeName, string url, object defaults, object constraints, string[] namespaces)
        {
            if (namespaces == null || namespaces.Length == 0 || String.IsNullOrEmpty(namespaces[0]))
            {
                throw new ArgumentException(Localization.GetExceptionMessage("ArgumentCannotBeNullOrEmpty",
                                                                             "The argument '{0}' cannot be null or empty.",
                                                                             "namespaces"));
            }

            Requires.NotNullOrEmpty("moduleFolderName", moduleFolderName);

            url = url.Trim('/', '\\');

            IEnumerable <int> prefixCounts = _portalAliasRouteManager.GetRoutePrefixCounts();
            var routes = new List <Route>();

            foreach (int count in prefixCounts)
            {
                string fullRouteName = _portalAliasRouteManager.GetRouteName(moduleFolderName, routeName, count);
                string routeUrl      = _portalAliasRouteManager.GetRouteUrl(moduleFolderName, url, count);
                Route  route         = MapHttpRouteWithNamespace(fullRouteName, routeUrl, defaults, constraints, namespaces);
                routes.Add(route);
                if (Logger.IsTraceEnabled)
                {
                    Logger.Trace("Mapping route: " + fullRouteName + " @ " + routeUrl);
                }

                //compatible with old service path: DesktopModules/{namespace}/API/{controller}/{action}.
                var oldRouteName = $"{fullRouteName}-old";
                var oldRouteUrl  = PortalAliasRouteManager.GetOldRouteUrl(moduleFolderName, url, count);
                var oldRoute     = MapHttpRouteWithNamespace(oldRouteName, oldRouteUrl, defaults, constraints, namespaces);
                routes.Add(oldRoute);
                if (Logger.IsTraceEnabled)
                {
                    Logger.Trace("Mapping route: " + oldRouteName + " @ " + oldRouteUrl);
                }
            }

            return(routes);
        }