Beispiel #1
0
        public void EnumeratesOneModuleWithServicesForRegistration()
        {
            Type   registerAs   = typeof(string);
            Type   concreteType = typeof(Int32);
            string scope        = "Global";
            MockModuleInfoStore        store   = new MockModuleInfoStore();
            ModuleConfigurationElement module1 =
                new ModuleConfigurationElement("Module1.Name", "Module1.Assembly", "Module1.VirtualPath");

            module1.Services =
                new ServiceConfigurationElementCollection(
                    new ServiceConfigurationElement[] { new ServiceConfigurationElement(registerAs, concreteType, scope) });
            store.Modules = new ModuleConfigurationElement[] { module1 };
            WebModuleEnumerator enumerator = new WebModuleEnumerator(store);

            IModuleInfo[] modules = enumerator.EnumerateModules();

            Assert.AreEqual(1, modules.Length);
            Assert.IsNotNull(modules[0] as DependantModuleInfo);
            DependantModuleInfo moduleInfo = (DependantModuleInfo)modules[0];

            Assert.IsNotNull(moduleInfo.Services);
            Assert.AreEqual(1, moduleInfo.Services.Length);
            Assert.AreEqual(registerAs, moduleInfo.Services[0].RegisterAs);
            Assert.AreEqual(concreteType, moduleInfo.Services[0].Type);
            Assert.AreEqual(ServiceScope.Global, moduleInfo.Services[0].Scope);
        }
Beispiel #2
0
        public void Enumerates0Modules()
        {
            WebModuleEnumerator enumerator = new WebModuleEnumerator(new MockModuleInfoStore());

            IModuleInfo[] modules = enumerator.EnumerateModules();

            Assert.AreEqual(0, modules.Length);
        }
        private DependantModuleInfo[] GetModuleInfoCollection()
        {
            string path = (new System.IO.DirectoryInfo(@".\Support\MockWebsite")).FullName;
            WebConfigModuleInfoStore store            = new WebConfigModuleInfoStore(path);
            WebModuleEnumerator      moduleEnumerator = new WebModuleEnumerator(store);

            return((DependantModuleInfo[])moduleEnumerator.EnumerateModules());
        }
Beispiel #4
0
        public void EnumerateThrowsIfDuplicateAssemblyNames()
        {
            MockModuleInfoStore        store   = new MockModuleInfoStore();
            ModuleConfigurationElement module1 =
                new ModuleConfigurationElement("Module1.Name", "Module1.Assembly", "Module1.VirtualPath");
            ModuleConfigurationElement module2 =
                new ModuleConfigurationElement("Module2.Name", "Module1.Assembly", "Module2.VirtualPath");

            store.Modules = new ModuleConfigurationElement[] { module2, module1 };
            WebModuleEnumerator enumerator = new WebModuleEnumerator(store);

            IModuleInfo[] modules = enumerator.EnumerateModules();
        }
Beispiel #5
0
        public void EnumeratesOneModuleWithoutVirtualPath()
        {
            MockModuleInfoStore store = new MockModuleInfoStore();

            store.Modules =
                new ModuleConfigurationElement[] { new ModuleConfigurationElement("Module1.Name", "Module1.Assembly", null) };
            WebModuleEnumerator enumerator = new WebModuleEnumerator(store);

            IModuleInfo[] modules = enumerator.EnumerateModules();

            Assert.AreEqual(1, modules.Length);
            Assert.AreEqual("Module1.Name", modules[0].Name);
            Assert.AreEqual("Module1.Assembly", modules[0].AssemblyName);
            Assert.AreEqual(null, modules[0].VirtualPath);
        }
Beispiel #6
0
        public void EnumeratesTwoModulesWithoutVirtualPath()
        {
            MockModuleInfoStore        store   = new MockModuleInfoStore();
            ModuleConfigurationElement module1 = new ModuleConfigurationElement("Module1.Name", "Module1.Assembly", null);
            ModuleConfigurationElement module2 = new ModuleConfigurationElement("Module2.Name", "Module2.Assembly", string.Empty);

            store.Modules = new ModuleConfigurationElement[] { module2, module1 };
            WebModuleEnumerator enumerator = new WebModuleEnumerator(store);

            IModuleInfo[] modules = enumerator.EnumerateModules();

            Assert.AreEqual(2, modules.Length);
            Assert.AreEqual("Module1.Name", modules[0].Name);
            Assert.AreEqual("Module2.Name", modules[1].Name);
        }
Beispiel #7
0
        public void EnumeratesThreeModulesWithoutDependenciesInCorrectOrder()
        {
            MockModuleInfoStore        store   = new MockModuleInfoStore();
            ModuleConfigurationElement module1 =
                new ModuleConfigurationElement("Module1.Name", "Module1.Assembly", "Module1.VirtualPath");
            ModuleConfigurationElement module2 =
                new ModuleConfigurationElement("Module2.Name", "Module2.Assembly", "Module2.VirtualPath");
            ModuleConfigurationElement module3 =
                new ModuleConfigurationElement("Module3.Name", "Module3.Assembly", "Module3.VirtualPath");

            store.Modules = new ModuleConfigurationElement[] { module3, module2, module1 };
            WebModuleEnumerator enumerator = new WebModuleEnumerator(store);

            IModuleInfo[] modules = enumerator.EnumerateModules();

            Assert.AreEqual(3, modules.Length);
            Assert.AreEqual("Module1.Name", modules[0].Name);
            Assert.AreEqual("Module2.Name", modules[1].Name);
            Assert.AreEqual("Module3.Name", modules[2].Name);
        }
        public override bool OnBeginRecipe(object currentValue, out object newValue)
        {
            if (currentValue == null)
            {
                ExpressionEvaluationService evaluator   = new ExpressionEvaluationService();
                IDictionaryService          dictservice = (IDictionaryService)GetService(typeof(IDictionaryService));

                string path = evaluator.Evaluate(
                    this._pathExpression,
                    new ServiceAdapterDictionary(dictservice)).ToString();

                WebConfigXmlParseModuleInfoStore store = new WebConfigXmlParseModuleInfoStore(path);
                WebModuleEnumerator moduleEnumerator   = new WebModuleEnumerator(store);

                IModuleInfo[] modules = moduleEnumerator.EnumerateModules();

                newValue = new ModuleInfoMapper().Translate(modules);

                return(true);
            }

            newValue = null;
            return(false);
        }