/// <summary>
 /// Creates the <see cref="IModuleCatalog"/> used by Prism.
 /// </summary>
 /// <remarks>
 /// The base implementation returns a new ModuleCatalog.
 /// </remarks>
 /// <returns>
 /// A ConfigurationModuleCatalog.
 /// </returns>
 protected override IModuleCatalog CreateModuleCatalog()
 {
     // When using MEF, the existing Prism ModuleCatalog is still the place to configure modules via configuration files.
     var cnfgModule = new ConfigurationModuleCatalog();
     cnfgModule.Store = new Microsoft.Practices.Prism.Modularity.ConfigurationStoreNetShared();
     return cnfgModule;
 }
 public void CanInitConfigModuleEnumerator()
 {
     MockConfigurationStore store = new MockConfigurationStore();
     ConfigurationModuleCatalog catalog = new ConfigurationModuleCatalog();
     catalog.Store = store;
     Assert.IsNotNull(catalog);
 }
        public void GetZeroModules()
        {
            MockConfigurationStore store = new MockConfigurationStore();
            ConfigurationModuleCatalog catalog = new ConfigurationModuleCatalog() { Store = store };
            catalog.Load();

            Assert.AreEqual(0, catalog.Modules.Count());
        }
        public void ShouldReturnAListOfModuleInfo()
        {
            MockConfigurationStore store = new MockConfigurationStore();
            store.Modules = new[] { new ModuleConfigurationElement(@"MocksModules\MockModuleA.dll", "TestModules.MockModuleAClass", "MockModuleA", false) };

            ConfigurationModuleCatalog catalog = new ConfigurationModuleCatalog(){Store = store};
            catalog.Load();

            IEnumerable<ModuleInfo> modules = catalog.Modules;

            Assert.IsNotNull(modules);
            Assert.AreEqual(1, modules.Count());
            Assert.AreNotEqual(InitializationMode.WhenAvailable, modules.First().InitializationMode);
            Assert.IsNotNull(modules.First().Ref);
            StringAssert.StartsWith(modules.First().Ref, "file://");
            Assert.IsTrue( modules.First().Ref.Contains(@"MocksModules/MockModuleA.dll"));
            Assert.IsNotNull( modules.First().ModuleType);
            Assert.AreEqual("TestModules.MockModuleAClass",  modules.First().ModuleType);

        }
Beispiel #5
0
        protected override void ConfigureModuleCatalog()
        {
            var moduleAType = typeof (ModuleA.Wpf.ModuleA);
            ModuleCatalog.AddModule(new ModuleInfo(moduleAType.Name, moduleAType.AssemblyQualifiedName));

            var moduleCType = typeof (ModuleC.Wpf.ModuleC);
            ModuleCatalog.AddModule(new ModuleInfo
                {
                    ModuleName = moduleCType.Name,
                    ModuleType = moduleCType.AssemblyQualifiedName,
                    InitializationMode = InitializationMode.OnDemand
                });
#if (!SILVERLIGHT)
            var directoryCatalog = new DirectoryModuleCatalog {ModulePath = @".\Modules"};
            ((AggregateModuleCatalog) ModuleCatalog).AddCatalog(directoryCatalog);

            var configurationCatalog = new ConfigurationModuleCatalog();
            ((AggregateModuleCatalog) ModuleCatalog).AddCatalog(configurationCatalog);
#endif
        }
        public void EnumeratesThreeModulesWithDependencies()
        {
            var store = new MockConfigurationStore();
            var module1 = new ModuleConfigurationElement("Module1.dll", "Test.Module1", "Module1", false);
            module1.Dependencies = new ModuleDependencyCollection(
                new[] { new ModuleDependencyConfigurationElement("Module2") });

            var module2 = new ModuleConfigurationElement("Module2.dll", "Test.Module2", "Module2", false);
            module2.Dependencies = new ModuleDependencyCollection(
                new[] { new ModuleDependencyConfigurationElement("Module3") });

            var module3 = new ModuleConfigurationElement("Module3.dll", "Test.Module3", "Module3", false);
            store.Modules = new[] { module3, module2, module1 };

            ConfigurationModuleCatalog catalog = new ConfigurationModuleCatalog() { Store = store };
            catalog.Load();

            var modules = catalog.Modules;

            Assert.AreEqual(3, modules.Count());
            Assert.IsTrue(modules.Any(module => module.ModuleName == "Module1"));
            Assert.IsTrue(modules.Any(module => module.ModuleName == "Module2"));
            Assert.IsTrue(modules.Any(module => module.ModuleName == "Module3"));
        }
        protected override void ConfigureModuleCatalog()
        {
            // Module A is defined in the code.
            Type moduleAType = typeof(ModuleA);
            ModuleCatalog.AddModule(new ModuleInfo(moduleAType.Name, moduleAType.AssemblyQualifiedName));

            // Module C is defined in the code.
            Type moduleCType = typeof(ModuleC);
            ModuleCatalog.AddModule(new ModuleInfo()
            {
                ModuleName = moduleCType.Name,
                ModuleType = moduleCType.AssemblyQualifiedName,
                InitializationMode = InitializationMode.OnDemand
            });

            // Module B and Module D are copied to a directory as part of a post-build step.
            // These modules are not referenced in the project and are discovered by inspecting a directory.
            // Both projects have a post-build step to copy themselves into that directory.
            DirectoryModuleCatalog directoryCatalog = new DirectoryModuleCatalog() { ModulePath = @".\DirectoryModules" };
            ((AggregateModuleCatalog)ModuleCatalog).AddCatalog(directoryCatalog);

            // Module E and Module F are defined in configuration.
            ConfigurationModuleCatalog configurationCatalog = new ConfigurationModuleCatalog();
            ((AggregateModuleCatalog)ModuleCatalog).AddCatalog(configurationCatalog);

        }
 public void NullConfigurationStoreThrows()
 {
     ConfigurationModuleCatalog catalog = new ConfigurationModuleCatalog(){Store = null};
     catalog.Load();
 }
        public void GetModulesNotThrownIfModuleSectionIsNotDeclared()
        {
            MockNullConfigurationStore store = new MockNullConfigurationStore();

            ConfigurationModuleCatalog catalog = new ConfigurationModuleCatalog() { Store = store };
            catalog.Load();

            var modules = catalog.Modules;

            Assert.IsNotNull(modules);
            Assert.AreEqual(0, modules.Count());
        }
        public void GetStartupLoadedModulesDoesntRetrieveOnDemandLoaded()
        {
            MockConfigurationStore store = new MockConfigurationStore();
            var module1 = new ModuleConfigurationElement("Module1.dll", "Test.Module1", "Module1", false);
            store.Modules = new[] { module1 };

            ConfigurationModuleCatalog catalog = new ConfigurationModuleCatalog() { Store = store };
            catalog.Load();

            Assert.AreEqual<int>(1, catalog.Modules.Count());
            Assert.AreEqual<int>(0, catalog.Modules.Count(m => m.InitializationMode != InitializationMode.OnDemand));
        }
        public void EnumerateNotThrowsIfDuplicateAssemblyFile()
        {
            MockConfigurationStore store = new MockConfigurationStore();
            var module1 = new ModuleConfigurationElement("Module1.dll", "Test.Module1", "Module1", false);
            var module2 = new ModuleConfigurationElement("Module1.dll", "Test.Module2", "Module2", false);
            store.Modules = new[] { module2, module1 };
            ConfigurationModuleCatalog catalog = new ConfigurationModuleCatalog() { Store = store };
            catalog.Load();

            Assert.AreEqual(2, catalog.Modules.Count());
        }
 public void EnumerateThrowsIfDuplicateNames()
 {
     MockConfigurationStore store = new MockConfigurationStore();
     var module1 = new ModuleConfigurationElement("Module1.dll", "Test.Module1", "Module1", false);
     var module2 = new ModuleConfigurationElement("Module2.dll", "Test.Module2", "Module1", false);
     store.Modules = new[] { module2, module1 };
     ConfigurationModuleCatalog catalog = new ConfigurationModuleCatalog() { Store = store };
     catalog.Load();
 }
 protected override IModuleCatalog CreateModuleCatalog()
 {
     ModuleCatalog catalog = new ConfigurationModuleCatalog();
     return catalog;
 }