/// <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); }
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; }