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

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

            catalog.Load();

            var modules = catalog.Modules;

            Assert.NotNull(modules);
            Assert.Single(modules);
            Assert.NotEqual(InitializationMode.WhenAvailable, modules.First().InitializationMode);
            Assert.NotNull(modules.First().Ref);
            Assert.StartsWith("file://", modules.First().Ref);
            Assert.Contains(@"MocksModules/MockModuleA.dll", modules.First().Ref);
            Assert.NotNull(modules.First().ModuleType);
            Assert.Equal("TestModules.MockModuleAClass", modules.First().ModuleType);
        }
        /// <summary>
        /// The configure module catalog.
        /// </summary>
        protected override void ConfigureModuleCatalog()
        {
            var moduleCatalog = new NuGetBasedModuleCatalog
            {
                AllowPrereleaseVersions = true,
            };

            // Module A is defined from NuGet.
            moduleCatalog.AddModule(new ModuleInfo("ModuleA", "ModularityWithCatel.Desktop.ModuleA, ModularityWithCatel.Desktop.ModuleA")
            {
                Ref = "ModularityWithCatel.Desktop.ModuleA"
            });

            // Module C is defined from NuGet.
            moduleCatalog.AddModule(new ModuleInfo("ModuleC", "ModularityWithCatel.Desktop.ModuleC, ModularityWithCatel.Desktop.ModuleC")
            {
                Ref = "ModularityWithCatel.Desktop.ModuleC", InitializationMode = InitializationMode.OnDemand
            });

            ModuleCatalog.Add(moduleCatalog);

            // 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.
            var directoryCatalog = new DirectoryModuleCatalog {
                ModulePath = @".\DirectoryModules"
            };

            ModuleCatalog.Add(directoryCatalog);

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

            ModuleCatalog.Add(configurationCatalog);
        }
        protected override void ConfigureModuleCatalog()
        {
            base.ConfigureModuleCatalog();

            var appCatatlog = (ApplicationModuleCatalog)ModuleCatalog;

            // Module A is referenced to the project and added by code.
            Type moduleAType = typeof(ModuleA.ModuleA);

            appCatatlog.AddModule(new ModuleInfo(moduleAType.Name, moduleAType.AssemblyQualifiedName));


            // Module B is defined in configuration AppConfig (module section).
            ConfigurationModuleCatalog configurationCatalog = new ConfigurationModuleCatalog();

            appCatatlog.AddCatalog(configurationCatalog);

            // Module C is not defined by will be loaded from diretory.
            DirectoryModuleCatalog directoryCatalog = new DirectoryModuleCatalog()
            {
                ModulePath = @".\Modules"
            };

            appCatatlog.AddCatalog(directoryCatalog);
        }
        public void EnumeratesThreeModulesWithDependencies()
        {
            var store   = new MockConfigurationStore();
            var module1 = new ModuleConfigurationElement("Module1.dll", "Test.Module1", "Module1", false)
            {
                Dependencies = new ModuleDependencyCollection(
                    new[] { new ModuleDependencyConfigurationElement("Module2") })
            };

            var module2 = new ModuleConfigurationElement("Module2.dll", "Test.Module2", "Module2", false)
            {
                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.Equal(3, modules.Count());
            Assert.Contains(modules, module => module.ModuleName == "Module1");
            Assert.Contains(modules, module => module.ModuleName == "Module2");
            Assert.Contains(modules, module => module.ModuleName == "Module3");
        }
示例#5
0
        protected override void ConfigureModuleCatalog()
        {
            Type moduleAType = typeof(ModuleA.ModuleA);

            ModuleCatalog.AddModule(new ModuleInfo(moduleAType.Name, moduleAType.AssemblyQualifiedName));

            Type moduleCType = typeof(ModuleC.ModuleC);

            ModuleCatalog.AddModule(new ModuleInfo()
            {
                ModuleName         = moduleCType.Name,
                ModuleType         = moduleCType.AssemblyQualifiedName,
                InitializationMode = InitializationMode.OnDemand
            });

            DirectoryModuleCatalog directoryCatalog = new DirectoryModuleCatalog()
            {
                ModulePath = @".\DirectoryModules"
            };

            ((AggregateModuleCatalog)ModuleCatalog).AddCatalog(directoryCatalog);

            ConfigurationModuleCatalog configurationCatalog = new ConfigurationModuleCatalog();

            ((AggregateModuleCatalog)ModuleCatalog).AddCatalog(configurationCatalog);
        }
        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);
        }
示例#7
0
        public void CanInitConfigModuleEnumerator()
        {
            MockConfigurationStore     store   = new MockConfigurationStore();
            ConfigurationModuleCatalog catalog = new ConfigurationModuleCatalog();

            catalog.Store = store;
            Assert.IsNotNull(catalog);
        }
示例#8
0
        protected override IModuleCatalog GetModuleCatalog()
        {
            // Gets the catalog from the app.config
            var catalog = new ConfigurationModuleCatalog();

            catalog.Load();
            return(catalog);
        }
示例#9
0
        public void NullConfigurationStoreThrows()
        {
            ConfigurationModuleCatalog catalog = new ConfigurationModuleCatalog()
            {
                Store = null
            };

            catalog.Load();
        }
 public void NullConfigurationStoreThrows()
 {
     var ex = Assert.Throws <InvalidOperationException>(() =>
     {
         ConfigurationModuleCatalog catalog = new ConfigurationModuleCatalog()
         {
             Store = null
         };
         catalog.Load();
     });
 }
        public void GetZeroModules()
        {
            MockConfigurationStore     store   = new MockConfigurationStore();
            ConfigurationModuleCatalog catalog = new ConfigurationModuleCatalog()
            {
                Store = store
            };

            catalog.Load();

            Assert.Empty(catalog.Modules);
        }
示例#12
0
        public void GetZeroModules()
        {
            MockConfigurationStore     store   = new MockConfigurationStore();
            ConfigurationModuleCatalog catalog = new ConfigurationModuleCatalog()
            {
                Store = store
            };

            catalog.Load();

            Assert.AreEqual(0, catalog.Modules.Count());
        }
示例#13
0
        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();
        }
示例#14
0
        public void Run()
        {
            var moduleCatalog = new ConfigurationModuleCatalog();

            moduleCatalog.Initialize();

            _container = new UnityContainer();

            ConfigureContainer();

            //Загружаем модули
            using (var manager = new ModuleManager(new ModuleInitializer(_container), moduleCatalog))
                manager.Run();

            CreateShell();
        }
        public void GetModulesNotThrownIfModuleSectionIsNotDeclared()
        {
            MockNullConfigurationStore store = new MockNullConfigurationStore();

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

            catalog.Load();

            var modules = catalog.Modules;

            Assert.NotNull(modules);
            Assert.Empty(modules);
        }
        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.Equal(2, catalog.Modules.Count());
        }
示例#17
0
        protected override void ConfigureModuleCatalog()
        {
            Type DashboardModuleType = typeof(DashboardModule);

            ModuleCatalog.AddModule(new ModuleInfo(DashboardModuleType.Name, DashboardModuleType.AssemblyQualifiedName));


            ConfigurationModuleCatalog configurationCatalog = new ConfigurationModuleCatalog();

            ((AggregateModuleCatalog)ModuleCatalog).AddCatalog(configurationCatalog);

            // ModuleCatalog moduleCatalog = (ModuleCatalog)this.ModuleCatalog;
            // moduleCatalog.AddModule(typeof(MonitoringModule));
            //// moduleCatalog.AddModule(typeof(VideoMonitoringModule));
            // moduleCatalog.AddModule(typeof(DataAnaysisModule));
            //// moduleCatalog.AddModule(typeof(DashboardModule));
        }
        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.Single(catalog.Modules);
            Assert.Equal <int>(0, catalog.Modules.Count(m => m.InitializationMode != InitializationMode.OnDemand));
        }
示例#19
0
        private void Window_Loaded(object sender, System.Windows.RoutedEventArgs e)
        {
            //IModuleCatalog imc = Application.;
            //Console.WriteLine(imc.Modules);
            ConfigurationModuleCatalog cmc = new ConfigurationModuleCatalog();

            Console.WriteLine(cmc.Modules);

            /*
             *
             *
             * foreach (var tmp in mt.GetModuleLoadeds())
             * {
             *  RibbonGroup rb2 = new RibbonGroup();
             *  rb2.Header = tmp;
             *  rbcollection.Add(rb2);
             * }
             *
             * HomeTab.ItemsSource = rbcollection;
             */
        }
示例#20
0
        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);
        }
示例#21
0
        protected override IModuleCatalog GetModuleCatalog()
        {
            ModuleCatalog catalog = new ConfigurationModuleCatalog();

            return(catalog);
        }
示例#22
0
        protected override IModuleCatalog CreateModuleCatalog()
        {
            ConfigurationModuleCatalog catalog = new ConfigurationModuleCatalog();

            return(catalog);
        }
        protected override void ConfigureModuleCatalog()
        {
            ConfigurationModuleCatalog configurationCatalog = new ConfigurationModuleCatalog();

            ((AggregateModuleCatalog)ModuleCatalog).AddCatalog(configurationCatalog);
        }