コード例 #1
0
        public void GetAssemblies_ReturnsAllControllerAssemblies()
        {
            var initializer = new DummyInitializer();

            var assemblyFiles = new string[] { "No Controllers", "No Controllers", "Controllers", "No Controllers", "Controllers" };
            initializer.GetAssemblyFileNamesMock = () => assemblyFiles;
            initializer.IsControllerContainerMock = asmFileName => asmFileName.Equals("Controllers");

            var triedToLoad = new List<string>(2);
            initializer.LoadAssemblyMock = asmFileName =>
            {
                triedToLoad.Add(asmFileName);
                return Assembly.GetExecutingAssembly();
            };

            var triedToInitializeContainers = new List<string>(2);
            initializer.InitializeControllerContainerMock = assembly =>
            {
                triedToInitializeContainers.Add(assembly.FullName);
            };

            var result = initializer.GetAssembliesPublic();
            Assert.AreEqual(2, result.Count(), "Not all controller assemblies were returned.");
            Assert.AreEqual(2, triedToLoad.Count, "Not all controller assemblies were loaded.");
            Assert.AreEqual(2, triedToInitializeContainers.Count, "Not all controller assemblies were initialized.");
            Assert.IsFalse(triedToLoad.Any(asmFile => !asmFile.Equals("Controllers")), "Some assemblies were loaded that were not controller assemblies.");
        }
コード例 #2
0
        public void RegisterController_DummyController_IsRegisteredInStore()
        {
            var initializer = new DummyInitializer();
            var controller  = typeof(DummyController);

            using (new ObjectFactoryContainerRegion())
            {
                ObjectFactory.Container.RegisterType <ConfigManager, ConfigManager>(typeof(XmlConfigProvider).Name.ToUpperInvariant(),
                                                                                    new InjectionConstructor(typeof(XmlConfigProvider).Name));
                ObjectFactory.Container.RegisterType <XmlConfigProvider, DummyConfigProvider>();
                Config.RegisterSection <ResourcesConfig>();
                Config.RegisterSection <ProjectConfig>();

                initializer.RegisterControllerPublic(controller);

                var resourceRegistered = ObjectFactory.Container.IsRegistered(typeof(DummyControllerResoruces), Res.GetResourceClassId(typeof(DummyControllerResoruces)));
                Assert.IsTrue(resourceRegistered, "String resources were not registered for the controller.");
            }

            var registration = ControllerStore.Controllers().SingleOrDefault(c => c.ControllerType == controller);

            Assert.IsNotNull(registration, "Controller was not registered.");

            var route = RouteTable.Routes[controller.Name];

            Assert.IsNull(route, "Route was registered for the controller.");
        }
コード例 #3
0
        public void RegisterVirtualPaths_CurrentAssembly_VirtualPathAndRouteRegistered()
        {
            Assembly       assembly     = Assembly.GetExecutingAssembly();
            PathDefinition vpDefinition = null;

            var initializer = new DummyInitializer();

            using (new ObjectFactoryContainerRegion())
            {
                ObjectFactory.Container.RegisterType <ConfigManager, ConfigManager>(typeof(XmlConfigProvider).Name.ToUpperInvariant(),
                                                                                    new InjectionConstructor(typeof(XmlConfigProvider).Name));
                ObjectFactory.Container.RegisterType <XmlConfigProvider, DummyConfigProvider>();
                ObjectFactory.Container.RegisterType <IResourceResolverStrategy, DummyResolverStrategy>(new ContainerControlledLifetimeManager());

                var strategy = (DummyResolverStrategy)ObjectFactory.Container.Resolve <IResourceResolverStrategy>();
                strategy.ExistsMock = (def, vp) =>
                {
                    vpDefinition = def;
                    return(true);
                };

                Config.RegisterSection <VirtualPathSettingsConfig>();
                Config.RegisterSection <ControlsConfig>();

                initializer.RegisterVirtualPathsPublic(new[] { assembly });

                VirtualPathManager.FileExists("~/" + FrontendManager.VirtualPathBuilder.GetVirtualPath(assembly));
            }

            Assert.AreNotEqual(0, RouteTable.Routes.Count, "No routes were registered.");
            Assert.IsNotNull(RouteTable.Routes.OfType <Route>().FirstOrDefault(r => r.Url == "Frontend-Assembly/Telerik.Sitefinity.Frontend.Test/{*Params}"));
            Assert.IsNotNull(vpDefinition, "Virtual path definition was not found.");
            Assert.AreEqual(vpDefinition.ResourceLocation, assembly.CodeBase, "The resolved virtual path definition was not expected.");
        }
コード例 #4
0
        public void IsControllerAssembly_NullFileName_ReturnsFalse()
        {
            var initializer = new DummyInitializer();
            var result      = initializer.IsControllerContainerPublic(null);

            Assert.IsFalse(result);
        }
コード例 #5
0
        public void IsControllerAssembly_NonExistingFileName_ReturnsFalse()
        {
            var initializer = new DummyInitializer();
            var result      = initializer.IsControllerContainerPublic("C:\\NonExistingPath\\NonExistingAssembly.dll");

            Assert.IsFalse(result);
        }
コード例 #6
0
        public void IsControllerAssembly_DesignerAssembly_ReturnTrue()
        {
            var initializer = new DummyInitializer();
            var result      = initializer.IsControllerContainerPublic(typeof(DesignerController).Assembly.CodeBase);

            Assert.IsTrue(result);
        }
コード例 #7
0
        public void GetAssemblies_ReturnsAllControllerAssemblies()
        {
            var initializer = new DummyInitializer();

            var assemblyFiles = new string[] { "No Controllers", "No Controllers", "Controllers", "No Controllers", "Controllers" };

            initializer.GetAssemblyFileNamesMock  = () => assemblyFiles;
            initializer.IsControllerContainerMock = asmFileName => asmFileName.Equals("Controllers");

            var triedToLoad = new List <string>(2);

            initializer.LoadAssemblyMock = asmFileName =>
            {
                triedToLoad.Add(asmFileName);
                return(Assembly.GetExecutingAssembly());
            };

            var triedToInitializeContainers = new List <string>(2);

            initializer.InitializeControllerContainerMock = assembly =>
            {
                triedToInitializeContainers.Add(assembly.FullName);
            };

            var result = initializer.GetAssembliesPublic();

            Assert.AreEqual(2, result.Count(), "Not all controller assemblies were returned.");
            Assert.AreEqual(2, triedToLoad.Count, "Not all controller assemblies were loaded.");
            Assert.AreEqual(2, triedToInitializeContainers.Count, "Not all controller assemblies were initialized.");
            Assert.IsFalse(triedToLoad.Any(asmFile => !asmFile.Equals("Controllers")), "Some assemblies were loaded that were not controller assemblies.");
        }
コード例 #8
0
        public void GetControllers_CurrentAssembly_GetsControllers()
        {
            var initializer = new DummyInitializer();
            var types = initializer.GetControllersPublic(new[] { Assembly.GetExecutingAssembly() });

            Assert.IsNotNull(types, "GetControllers returned null.");

            //Don't check for exact count. They can change while this assembly grows.
            Assert.IsTrue(types.Count() > 0, "No controllers were found.");
        }
コード例 #9
0
        public void GetControllers_CurrentAssembly_GetsControllers()
        {
            var initializer = new DummyInitializer();
            var types       = initializer.GetControllersPublic(new[] { Assembly.GetExecutingAssembly() });

            Assert.IsNotNull(types, "GetControllers returned null.");

            //Don't check for exact count. They can change while this assembly grows.
            Assert.IsTrue(types.Count() > 0, "No controllers were found.");
        }
コード例 #10
0
        public void Initialize_CallsRegisterVirtualPathsAndInitializeControllers()
        {
            var initializer = new DummyInitializer();

            IEnumerable <Assembly> assemblies = null;

            initializer.GetAssembliesMock = () =>
            {
                assemblies = new List <Assembly>();
                return(assemblies);
            };

            bool registerVirtualPathsCalled = false;

            initializer.RegisterVirtualPathsMock = asm =>
            {
                registerVirtualPathsCalled = true;
                Assert.AreSame(assemblies, asm, "RegisterVirtualPaths was not called with the expected arguments.");
            };

            IEnumerable <Type> controllerTypes = null;

            initializer.GetControllersMock = asm =>
            {
                Assert.AreSame(assemblies, asm, "GetControllerTypes was not called with the expected arguments.");
                controllerTypes = new List <Type>();
                return(controllerTypes);
            };

            bool initializeControllersCalled = false;

            initializer.InitializeControllersMock = types =>
            {
                initializeControllersCalled = true;
                Assert.AreSame(controllerTypes, types, "InitializeControllers was not called with the expected arguments");
            };

            initializer.Initialize();
            Assert.IsTrue(registerVirtualPathsCalled, "RegisterVirtualPaths was not called.");
            Assert.IsTrue(initializeControllersCalled, "InitializeControllers was not called.");
        }
コード例 #11
0
        public void RegisterController_DesignerController_NotRegistersAnylRoutes()
        {
            var initializer = new DummyInitializer();
            var controller  = typeof(DesignerController);

            using (new ObjectFactoryContainerRegion())
            {
                ObjectFactory.Container.RegisterType <ConfigManager, ConfigManager>(typeof(XmlConfigProvider).Name.ToUpperInvariant(),
                                                                                    new InjectionConstructor(typeof(XmlConfigProvider).Name));
                ObjectFactory.Container.RegisterType <XmlConfigProvider, DummyConfigProvider>();

                initializer.RegisterControllerPublic(controller);
            }

            var registration = ControllerStore.Controllers().SingleOrDefault(c => c.ControllerType == controller);

            Assert.IsNotNull(registration, "DesignerController was not registered.");

            var route = RouteTable.Routes[controller.Name];

            Assert.IsNull(route, "Route was registered for the controller.");
        }
コード例 #12
0
        public void InitializeControllers_TwoControllers_BothAreRegisteredAndControllerFactoryIsPrepared()
        {
            var registeredControllers = new List <Type>(2);
            var initializer           = new DummyInitializer();

            using (new ObjectFactoryContainerRegion())
            {
                initializer.RegisterControllerFactoryMock = () =>
                {
                    ObjectFactory.Container.RegisterType <ISitefinityControllerFactory, DummyControllerFactory>();
                };

                initializer.RegisterControllerMock = (t) =>
                {
                    registeredControllers.Add(t);
                };
                initializer.InitializeControllersPublic(new[] { typeof(DummyController), typeof(DummyInitializer) });
            }

            Assert.IsInstanceOfType(ControllerBuilder.Current.GetControllerFactory(), typeof(DummyControllerFactory), "Controller factory was not set.");
            Assert.AreEqual(2, registeredControllers.Count, "Not all widgets were registered.");
            Assert.IsTrue(registeredControllers.Contains(typeof(DummyController)), "The first controller was not registered.");
            Assert.IsTrue(registeredControllers.Contains(typeof(DummyInitializer)), "The second controller was not registered.");
        }
コード例 #13
0
        public void Initialize_CallsRegisterVirtualPathsAndInitializeControllers()
        {
            var initializer = new DummyInitializer();

            IEnumerable<Assembly> assemblies = null;
            initializer.GetAssembliesMock = () =>
            {
                assemblies = new List<Assembly>();
                return assemblies;
            };

            bool registerVirtualPathsCalled = false;
            initializer.RegisterVirtualPathsMock = asm =>
            {
                registerVirtualPathsCalled = true;
                Assert.AreSame(assemblies, asm, "RegisterVirtualPaths was not called with the expected arguments.");
            };

            IEnumerable<Type> controllerTypes = null;
            initializer.GetControllersMock = asm =>
            {
                Assert.AreSame(assemblies, asm, "GetControllerTypes was not called with the expected arguments.");
                controllerTypes = new List<Type>();
                return controllerTypes;
            };

            bool initializeControllersCalled = false;
            initializer.InitializeControllersMock = types =>
            {
                initializeControllersCalled = true;
                Assert.AreSame(controllerTypes, types, "InitializeControllers was not called with the expected arguments");
            };

            initializer.Initialize();
            Assert.IsTrue(registerVirtualPathsCalled, "RegisterVirtualPaths was not called.");
            Assert.IsTrue(initializeControllersCalled, "InitializeControllers was not called.");
        }
コード例 #14
0
        public void IsControllerAssembly_NonExistingFileName_ReturnsFalse()
        {
            var initializer = new DummyInitializer();
            var result = initializer.IsControllerContainerPublic("C:\\NonExistingPath\\NonExistingAssembly.dll");

            Assert.IsFalse(result);
        }
コード例 #15
0
        public void IsControllerAssembly_NullFileName_ReturnsFalse()
        {
            var initializer = new DummyInitializer();
            var result = initializer.IsControllerContainerPublic(null);

            Assert.IsFalse(result);
        }
コード例 #16
0
        public void RegisterController_DesignerController_NotRegistersAnylRoutes()
        {
            var initializer = new DummyInitializer();
            var controller = typeof(DesignerController);

            using (new ObjectFactoryContainerRegion())
            {
                ObjectFactory.Container.RegisterType<ConfigManager, ConfigManager>(typeof(XmlConfigProvider).Name.ToUpperInvariant(),
                    new InjectionConstructor(typeof(XmlConfigProvider).Name));
                ObjectFactory.Container.RegisterType<XmlConfigProvider, DummyConfigProvider>();

                initializer.RegisterControllerPublic(controller);
            }

            var registration = ControllerStore.Controllers().SingleOrDefault(c => c.ControllerType == controller);
            Assert.IsNotNull(registration, "DesignerController was not registered.");

            var route = RouteTable.Routes[controller.Name];
            Assert.IsNull(route, "Route was registered for the controller.");
        }
コード例 #17
0
        public void RegisterController_DummyController_IsRegisteredInStore()
        {
            var initializer = new DummyInitializer();
            var controller = typeof(DummyController);

            using (new ObjectFactoryContainerRegion())
            {
                ObjectFactory.Container.RegisterType<ConfigManager, ConfigManager>(typeof(XmlConfigProvider).Name.ToUpperInvariant(),
                    new InjectionConstructor(typeof(XmlConfigProvider).Name));
                ObjectFactory.Container.RegisterType<XmlConfigProvider, DummyConfigProvider>();
                Config.RegisterSection<ResourcesConfig>();
                Config.RegisterSection<ProjectConfig>();

                initializer.RegisterControllerPublic(controller);

                var resourceRegistered = ObjectFactory.Container.IsRegistered(typeof(DummyControllerResoruces), Res.GetResourceClassId(typeof(DummyControllerResoruces)));
                Assert.IsTrue(resourceRegistered, "String resources were not registered for the controller.");
            }

            var registration = ControllerStore.Controllers().SingleOrDefault(c => c.ControllerType == controller);
            Assert.IsNotNull(registration, "Controller was not registered.");

            var route = RouteTable.Routes[controller.Name];
            Assert.IsNull(route, "Route was registered for the controller.");
        }
コード例 #18
0
        public void RegisterVirtualPaths_CurrentAssembly_VirtualPathAndRouteRegistered()
        {
            Assembly assembly = Assembly.GetExecutingAssembly();
            PathDefinition vpDefinition = null;

            var initializer = new DummyInitializer();
            using (new ObjectFactoryContainerRegion())
            {
                ObjectFactory.Container.RegisterType<ConfigManager, ConfigManager>(typeof(XmlConfigProvider).Name.ToUpperInvariant(),
                    new InjectionConstructor(typeof(XmlConfigProvider).Name));
                ObjectFactory.Container.RegisterType<XmlConfigProvider, DummyConfigProvider>();
                ObjectFactory.Container.RegisterType<IResourceResolverStrategy, DummyResolverStrategy>(new ContainerControlledLifetimeManager());

                var strategy = (DummyResolverStrategy)ObjectFactory.Container.Resolve<IResourceResolverStrategy>();
                strategy.ExistsMock = (def, vp) =>
                    {
                        vpDefinition = def;
                        return true;
                    };

                Config.RegisterSection<VirtualPathSettingsConfig>();
                Config.RegisterSection<ControlsConfig>();

                initializer.RegisterVirtualPathsPublic(new[] { assembly });

                VirtualPathManager.FileExists("~/" + FrontendManager.VirtualPathBuilder.GetVirtualPath(assembly));
            }

            Assert.AreNotEqual(0, RouteTable.Routes.Count, "No routes were registered.");
            Assert.IsNotNull(RouteTable.Routes.OfType<Route>().FirstOrDefault(r => r.Url == "Frontend-Assembly/Telerik.Sitefinity.Frontend.Test/{*Params}"));
            Assert.IsNotNull(vpDefinition, "Virtual path definition was not found.");
            Assert.AreEqual(vpDefinition.ResourceLocation, assembly.CodeBase, "The resolved virtual path definition was not expected.");
        }
コード例 #19
0
        public void IsControllerAssembly_DesignerAssembly_ReturnTrue()
        {
            var initializer = new DummyInitializer();
            var result = initializer.IsControllerContainerPublic(typeof(DesignerController).Assembly.CodeBase);

            Assert.IsTrue(result);
        }
コード例 #20
0
        public void InitializeControllers_TwoControllers_BothAreRegisteredAndControllerFactoryIsPrepared()
        {
            var registeredControllers = new List<Type>(2);
            var initializer = new DummyInitializer();
            using (new ObjectFactoryContainerRegion())
            {
                initializer.RegisterControllerFactoryMock = () =>
                    {
                        ObjectFactory.Container.RegisterType<ISitefinityControllerFactory, DummyControllerFactory>();
                    };

                initializer.RegisterControllerMock = (t) =>
                {
                    registeredControllers.Add(t);
                };
                initializer.InitializeControllersPublic(new[] { typeof(DummyController), typeof(DummyInitializer) });
            }

            Assert.IsInstanceOfType(ControllerBuilder.Current.GetControllerFactory(), typeof(DummyControllerFactory), "Controller factory was not set.");
            Assert.AreEqual(2, registeredControllers.Count, "Not all widgets were registered.");
            Assert.IsTrue(registeredControllers.Contains(typeof(DummyController)), "The first controller was not registered.");
            Assert.IsTrue(registeredControllers.Contains(typeof(DummyInitializer)), "The second controller was not registered.");
        }