public void GetModuleReturnsModuleInfoForModule()
        {
            var enumerator = new StaticModuleEnumerator();
            enumerator.AddModule(typeof(MockModule));
            enumerator.AddModule(typeof(AnotherModule));

            var module = enumerator.GetModule(typeof(MockModule).Name);
            Assert.AreEqual(typeof(MockModule).FullName, module.ModuleType);
        }
        public void GetStartupModulesReturnsAllModules()
        {
            var enumerator = new StaticModuleEnumerator();
            enumerator.AddModule(typeof(MockModule));
            enumerator.AddModule(typeof(AnotherModule));

            var startupModules = enumerator.GetStartupLoadedModules();
            Assert.AreEqual(2, startupModules.Length);

            var allModules = enumerator.GetModules();
            Assert.AreSame(allModules[0], startupModules[0]);
        }
        public void CanPassDependantModules()
        {
            var enumerator = new StaticModuleEnumerator();
            enumerator.AddModule(typeof(MockModule), "DependentModule");

            var modules = enumerator.GetModules();
            Assert.IsNotNull(modules[0].DependsOn);
            Assert.AreEqual(1, modules[0].DependsOn.Count);
            Assert.AreEqual("DependentModule", modules[0].DependsOn[0]);
        }
        public void CanAddModuleToEnumerator()
        {
            var enumerator = new StaticModuleEnumerator();
            enumerator.AddModule(typeof(MockModule));

            var modules = enumerator.GetModules();
            Assert.AreEqual(1, modules.Length);
            Assert.AreEqual(typeof(MockModule).Name, modules[0].ModuleName);
            Assert.AreEqual(typeof(MockModule).FullName, modules[0].ModuleType);
            Assert.AreEqual(typeof(MockModule).Assembly.Location, modules[0].AssemblyFile);
        }
        public void TestGetModuleStatusInformationWithoutLoadedModules()
        {
            StaticModuleEnumerator moduleEnumerator = new StaticModuleEnumerator();
            IUnityContainer container = new UnityContainer();

            moduleEnumerator.AddModule(typeof(ModuleMock));

            // Register the loopback construction used by compositewpf and
            // inject the unity extension for module tracking
            container.RegisterInstance<IUnityContainer>(container);
            container.AddNewExtension<ModuleTrackingUnityExtension>();

            container.RegisterInstance<IModuleCatalog>(moduleEnumerator);
            container.RegisterInstance<IModuleStatusService>(container.Resolve<ModuleStatusService>());

            ReadOnlyCollection<ModuleStatusInfo> modules = container.Resolve<IModuleStatusService>().GetModules();

            Assert.IsNotNull(modules);
            Assert.AreEqual(1, modules.Count);
            Assert.AreEqual(ModuleStatus.Unloaded, modules[0].Status);
        }
        public void FluentInterfaceShouldReturnTheSameInstance()
        {
            var enumerator = new StaticModuleEnumerator();

            Assert.AreSame(enumerator, enumerator.AddModule(typeof(MockModule)));
        }