Beispiel #1
0
        public void GetControllersMetaData_LocalControllers_GetWithoutIgnored()
        {
            // Assign

            SimplifyWebTypesFinder.ExcludedAssembliesPrefixes.Remove("Simplify");
            SimplifyWebTypesFinder.ExcludedAssembliesPrefixes.Add("DynamicProxyGenAssembly2");
            SimplifyWebTypesFinder.CleanLoadedTypesAndAssembliesInfo();

            var factory = new Mock <IControllerMetaDataFactory>();
            var store   = new ControllersMetaStore(factory.Object);

            factory.SetupSequence(x => x.CreateControllerMetaData(It.IsAny <Type>()))
            .Returns(new ControllerMetaData(typeof(TestController1), new ControllerExecParameters(null, 2)))
            .Returns(new ControllerMetaData(typeof(TestController6)))
            .Returns(new ControllerMetaData(typeof(TestController2), new ControllerExecParameters(null, 1)))
            .Returns(new ControllerMetaData(typeof(TestController4)))
            .Returns(new ControllerMetaData(typeof(TestController5)));

            // Act
            var metaData = store.ControllersMetaData;

            Assert.AreEqual(5, metaData.Count);

            factory.Verify(x => x.CreateControllerMetaData(It.Is <Type>(t => t == typeof(TestController1))));
            factory.Verify(x => x.CreateControllerMetaData(It.Is <Type>(t => t == typeof(TestController2))));
            factory.Verify(x => x.CreateControllerMetaData(It.Is <Type>(t => t == typeof(TestController4))));
            factory.Verify(x => x.CreateControllerMetaData(It.Is <Type>(t => t == typeof(TestController5))));
            factory.Verify(x => x.CreateControllerMetaData(It.Is <Type>(t => t == typeof(TestController6))));
        }
Beispiel #2
0
        public void FindTypesDerivedFrom_NoDerivedTypes_NullReturned()
        {
            // Act
            var types = SimplifyWebTypesFinder.FindTypesDerivedFrom <TestBootstrapper>();

            // Assert
            Assert.AreEqual(0, types.Count);
        }
Beispiel #3
0
        public void FindTypeDerivedFrom_NoDerivedTypes_NullReturned()
        {
            // Act
            var type = SimplifyWebTypesFinder.FindTypeDerivedFrom <TestBootstrapper>();

            // Assert
            Assert.IsNull(type);
        }
Beispiel #4
0
        public void FindTypeDerivedFrom_BaseBootstrapper_TestBootstrapperReturned()
        {
            // Assign

            SimplifyWebTypesFinder.ExcludedAssembliesPrefixes.Remove("Simplify");
            SimplifyWebTypesFinder.CleanLoadedTypesAndAssembliesInfo();

            // Act
            var type = SimplifyWebTypesFinder.FindTypeDerivedFrom <BaseBootstrapper>();

            // Assert
            Assert.AreEqual("Simplify.Web.Tests.TestEntities.TestBootstrapper", type !.FullName);
        }
Beispiel #5
0
        public void CreateBootstrapper_HaveUserType_TestBootstrapperReturned()
        {
            // Assign

            SimplifyWebTypesFinder.ExcludedAssembliesPrefixes.Remove("Simplify");
            SimplifyWebTypesFinder.CleanLoadedTypesAndAssembliesInfo();

            // Act
            var bootstrapper = BootstrapperFactory.CreateBootstrapper();

            // Assert

            Assert.AreEqual("Simplify.Web.Tests.TestEntities.TestBootstrapper", bootstrapper.GetType().FullName);
        }
Beispiel #6
0
        /// <summary>
        /// Registers the types in container.
        /// </summary>
        // ReSharper disable once MethodTooLong
        public void Register()
        {
            // Registering non Simplify.Web types

            RegisterConfiguration();

            // Registering Simplify.Web core types

            RegisterControllersMetaStore();
            RegisterViewsMetaStore();

            RegisterSimplifyWebSettings();
            RegisterViewFactory();
            RegisterControllerFactory();
            RegisterControllerPathParser();
            RegisterRouteMatcher();
            RegisterControllersAgent();
            RegisterControllerResponseBuilder();
            RegisterControllerExecutor();
            RegisterControllersProcessor();
            RegisterEnvironment();
            RegisterLanguageManagerProvider();
            RegisterTemplateFactory();
            RegisterFileReader();
            RegisterStringTable();
            RegisterDataCollector();
            RegisterListsGenerator();
            RegisterStringTableItemsSetter();
            RegisterPageBuilder();
            RegisterResponseWriter();
            RegisterPageProcessor();
            RegisterControllersRequestHandler();
            RegisterStaticFileResponseFactory();
            RegisterStaticFileHandler();
            RegisterStaticFilesRequestHandler();
            RegisterRequestHandler();
            RegisterStopwatchProvider();
            RegisterContextVariablesSetter();
            RegisterWebContextProvider();
            RegisterRedirector();
            RegisterModelHandler();
            RegisterDefaultModelBinders();
            RegisterDefaultModelValidators();

            var typesToIgnore = SimplifyWebTypesFinder.GetTypesToIgnore();

            RegisterControllers(typesToIgnore);
            RegisterViews(typesToIgnore);
        }
		private static IEnumerable<Type> GetIgnoredTypes()
		{
			var typesToIgnore = new List<Type>();

			var ignoreContainingClass = SimplifyWebTypesFinder.GetAllTypes().FirstOrDefault(t => t.IsDefined(typeof(IgnoreTypesRegistrationAttribute), true));

			if (ignoreContainingClass == null)
				return typesToIgnore;

			var attributes = ignoreContainingClass.GetCustomAttributes(typeof(IgnoreTypesRegistrationAttribute), false);

			typesToIgnore.AddRange(((IgnoreTypesRegistrationAttribute)attributes[0]).Types);

			return typesToIgnore;
		}
Beispiel #8
0
        public void CreateBootstrapper_NoUserType_BaseBootstrapperReturned()
        {
            // Assign

            if (!SimplifyWebTypesFinder.ExcludedAssembliesPrefixes.Contains("Simplify"))
            {
                SimplifyWebTypesFinder.ExcludedAssembliesPrefixes.Add("Simplify");
            }

            SimplifyWebTypesFinder.CleanLoadedTypesAndAssembliesInfo();

            // Act
            var bootstrapper = BootstrapperFactory.CreateBootstrapper();

            // Assert

            Assert.AreEqual("Simplify.Web.Bootstrapper.BaseBootstrapper", bootstrapper.GetType().FullName);
        }
        public void FindTypesDerivedFrom_TypeHave3TypesDerived_3TestControllersReturned()
        {
            // Assign

            SimplifyWebTypesFinder.ExcludedAssembliesPrefixes.Remove("Simplify");
            SimplifyWebTypesFinder.ExcludedAssembliesPrefixes.Add("DynamicProxyGenAssembly2");
            SimplifyWebTypesFinder.CleanLoadedTypesAndAssembliesInfo();

            // Act
            var types  = SimplifyWebTypesFinder.FindTypesDerivedFrom <Controller>();
            var types2 = SimplifyWebTypesFinder.FindTypesDerivedFrom <AsyncController>();

            // Assert

            Assert.AreEqual(2, types.Count);
            Assert.AreEqual(1, types2.Count);
            Assert.AreEqual("Simplify.Web.Tests.TestEntities.TestController1", types[0].FullName);
            Assert.AreEqual("Simplify.Web.Tests.TestEntities.TestController3", types[1].FullName);
            Assert.AreEqual("Simplify.Web.Tests.TestEntities.TestController2", types2[0].FullName);
        }
        /// <summary>
        /// Creates the bootstrapper.
        /// </summary>
        /// <returns></returns>
        public static BaseBootstrapper CreateBootstrapper()
        {
            var userBootstrapperType = SimplifyWebTypesFinder.FindTypeDerivedFrom <BaseBootstrapper>();

            return(userBootstrapperType != null ? (BaseBootstrapper)Activator.CreateInstance(userBootstrapperType) : new BaseBootstrapper());
        }