public void EmptyPathThrows()
        {
            DirectoryModuleCatalog catalog = new DirectoryModuleCatalog();

            catalog.ModulePath = string.Empty;
            catalog.Load();
        }
Exemple #2
0
        /// <summary>
        /// Proporciona el contenido del catalogo de módulos.
        /// </summary>
        /// <returns>un nuevo Module Catalog.</returns>
        /// <remarks>
        /// Este metodo usa el metodo de descubrimiento de modulos para "rellenar" el catalogo de modulos
        /// Esto implica establecer un evento de postcompilación en las propiedades del proyecto que copie
        /// los ensamblados obtenidos en la compilación del mismo hasta el directorio donde le decimos que podra
        /// encontrar dichos modulos.
        /// </remarks>
        protected override IModuleCatalog CreateModuleCatalog()
        {
            var moduleCatalog = new DirectoryModuleCatalog();

            moduleCatalog.ModulePath = @".\Modules";
            return(moduleCatalog);
        }
Exemple #3
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);
        }
Exemple #4
0
        protected override void ConfigureModuleCatalog(IModuleCatalog moduleCatalog)
        {
            DirectoryModuleCatalog directoryCatalog = (DirectoryModuleCatalog)moduleCatalog;

            directoryCatalog.Initialize();

            moduleCollection = new ObservableCollection <ModuleModel>();
            TypeFilter typeFilter = new TypeFilter(InterfaceFilter);

            foreach (IModuleCatalogItem item in directoryCatalog.Items)
            {
                ModuleInfo mi = (ModuleInfo)item;
                // in .NetFrameWork we dont need to replace
                Assembly asm = Assembly.LoadFrom(mi.Ref.Replace(@"file:///", ""));

                foreach (Type t in asm.GetTypes())
                {
                    Type[] myInterfaces = t.FindInterfaces(typeFilter, typeof(IModuleService).ToString());

                    if (myInterfaces.Length > 0)
                    {
                        IModuleService moduleService = (IModuleService)asm.CreateInstance(t.FullName);
                        ModuleModel    module        = moduleService.GetModule();
                        moduleCollection.Add(module);
                    }
                }
            }
        }
        public void ShouldGetDependantModulesFromAttribute()
        {
            CompilerHelper.CompileFile(@"Prism.Wpf.Tests.Mocks.Modules.MockDependencyModule.cs",
                                       ModulesDirectory3 + @"\DependencyModule.dll");

            CompilerHelper.CompileFile(@"Prism.Wpf.Tests.Mocks.Modules.MockDependantModule.cs",
                                       ModulesDirectory3 + @"\DependantModule.dll");

            DirectoryModuleCatalog catalog = new DirectoryModuleCatalog
            {
                ModulePath = ModulesDirectory3
            };

            catalog.Load();

            var modules = catalog.Modules.ToArray();

            Assert.Equal(2, modules.Length);
            var dependantModule  = modules.First(module => module.ModuleName == "DependantModule");
            var dependencyModule = modules.First(module => module.ModuleName == "DependencyModule");

            Assert.NotNull(dependantModule);
            Assert.NotNull(dependencyModule);
            Assert.NotNull(dependantModule.DependsOn);
            Assert.Single(dependantModule.DependsOn);
            Assert.Equal(dependencyModule.ModuleName, dependantModule.DependsOn[0]);
        }
Exemple #6
0
        protected override IModuleCatalog CreateModuleCatalog()
        {
            DirectoryModuleCatalog catelog = new DirectoryModuleCatalog();

            catelog.ModulePath = @".\Modules";
            return(catelog);
        }
        public void ShouldIgnoreAbstractClassesThatImplementIModule()
        {
            CompilerHelper.CleanUpDirectory(ModulesDirectory1);
            CompilerHelper.CompileFile(@"Prism.Avalonia.Tests.Mocks.Modules.MockAbstractModule.cs",
                                       ModulesDirectory1 + @"\MockAbstractModule.dll");

            string filename            = typeof(DirectoryModuleCatalog).Assembly.Location;
            string destinationFileName = Path.Combine(ModulesDirectory1, Path.GetFileName(filename));

            File.Copy(filename, destinationFileName);

            DirectoryModuleCatalog catalog = new DirectoryModuleCatalog
            {
                ModulePath = ModulesDirectory1
            };

            catalog.Load();

            var modules = catalog.Modules.ToArray();

            Assert.AreEqual(1, modules.Length);
            Assert.AreEqual("MockInheritingModule", modules[0].ModuleName);

            CompilerHelper.CleanUpDirectory(ModulesDirectory1);
        }
        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);
        }
        /// <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()
        {
            // 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);
        }
Exemple #11
0
        protected override IModuleCatalog CreateModuleCatalog()
        {
            var moduleCatalog = new DirectoryModuleCatalog();

            moduleCatalog.ModulePath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + @"\Modules\";
            return(moduleCatalog);
        }
        public void LoadsValidAssembliesWhenInvalidDllsArePresent()
        {
            CompilerHelper.CompileFile(@"Microsoft.Practices.Prism.Tests.Mocks.Modules.MockModuleA.cs",
                                       InvalidModulesDirectory + @"\MockModuleA.dll");

            DirectoryModuleCatalog catalog = new DirectoryModuleCatalog();

            catalog.ModulePath = InvalidModulesDirectory;
            try
            {
                catalog.Load();
            }
            catch (Exception)
            {
                Assert.Fail("Should not have thrown.");
            }

            ModuleInfo[] modules = catalog.Modules.ToArray();

            Assert.IsNotNull(modules);
            Assert.AreEqual(1, modules.Length);
            Assert.IsNotNull(modules[0].Ref);
            StringAssert.StartsWith(modules[0].Ref, "file://");
            Assert.IsTrue(modules[0].Ref.Contains(@"MockModuleA.dll"));
            Assert.IsNotNull(modules[0].ModuleType);
            StringAssert.Contains(modules[0].ModuleType, "Microsoft.Practices.Prism.Tests.Mocks.Modules.MockModuleA");
        }
        public void ShouldCorrectlyEscapeRef()
        {
            string assemblyPath = ModulesDirectory6 + @"\Mock Module #.dll";

            CompilerHelper.CompileFile(@"Prism.Avalonia.Tests.Mocks.Modules.MockModuleA.cs", assemblyPath);
            string fullAssemblyPath = Path.GetFullPath(assemblyPath);

            DirectoryModuleCatalog catalog = new DirectoryModuleCatalog
            {
                ModulePath = ModulesDirectory6
            };

            catalog.Load();

            var modules = catalog.Modules.ToArray();

            Assert.IsNotNull(modules);
            Assert.AreEqual(1, modules.Length);
            Assert.IsNotNull(modules[0].Ref);

            string moduleRef = modules[0].Ref;

            // = new Uri(moduleRef);
            Assert.IsTrue(Uri.TryCreate(moduleRef, UriKind.Absolute, out Uri moduleUri));

            Assert.AreEqual(fullAssemblyPath, moduleUri.LocalPath);
        }
        public void ShouldGetDependantModulesFromAttribute()
        {
            CompilerHelper.CompileFile(@"Microsoft.Practices.Prism.Tests.Mocks.Modules.MockDependencyModule.cs",
                                       ModulesDirectory3 + @"\DependencyModule.dll");

            CompilerHelper.CompileFile(@"Microsoft.Practices.Prism.Tests.Mocks.Modules.MockDependantModule.cs",
                                       ModulesDirectory3 + @"\DependantModule.dll");

            DirectoryModuleCatalog catalog = new DirectoryModuleCatalog();

            catalog.ModulePath = ModulesDirectory3;
            catalog.Load();

            ModuleInfo[] modules = catalog.Modules.ToArray();

            Assert.AreEqual(2, modules.Length);
            var dependantModule  = modules.First(module => module.ModuleName == "DependantModule");
            var dependencyModule = modules.First(module => module.ModuleName == "DependencyModule");

            Assert.IsNotNull(dependantModule);
            Assert.IsNotNull(dependencyModule);
            Assert.IsNotNull(dependantModule.DependsOn);
            Assert.AreEqual(1, dependantModule.DependsOn.Count);
            Assert.AreEqual(dependencyModule.ModuleName, dependantModule.DependsOn[0]);
        }
Exemple #15
0
        protected override IModuleCatalog CreateModuleCatalog()
        {
            DirectoryModuleCatalog moduleCatalog = new DirectoryModuleCatalog();

            moduleCatalog.ModulePath = FileDirectoryUtil.GetAssemblyDirectory();
            return(moduleCatalog);
        }
        public void NonExistentPathThrows()
        {
            DirectoryModuleCatalog catalog = new DirectoryModuleCatalog();

            catalog.ModulePath = "NonExistentPath";
            catalog.Load();
        }
Exemple #17
0
        protected override IModuleCatalog CreateModuleCatalog()
        {
            var moduleCatelog = new DirectoryModuleCatalog();

            moduleCatelog.ModulePath = ConfigurationManager.AppSettings["PathToModules"];

            return(moduleCatelog);
        }
            public ModuleInfo[] DoEnumeration(string path)
            {
                DirectoryModuleCatalog catalog = new DirectoryModuleCatalog();

                catalog.ModulePath = path;
                catalog.Load();
                return(catalog.Modules.ToArray());
            }
 public void NullPathThrows()
 {
     var ex = Assert.Throws <InvalidOperationException>(() =>
     {
         DirectoryModuleCatalog catalog = new DirectoryModuleCatalog();
         catalog.Load();
     });
 }
Exemple #20
0
        protected override IModuleCatalog CreateModuleCatalog()
        {
            base.CreateModuleCatalog();
            var moduleCatalog = new DirectoryModuleCatalog {
                ModulePath = @"."
            };

            return(moduleCatalog);
        }
Exemple #21
0
        /// <summary>
        /// adds the <see cref="DirectoryModuleCatalog"/> to the <see cref="AggregateModuleCatalog"/>. All modules in the DirectoryModules folder will be loaded.
        /// </summary>
        protected override void ConfigureModuleCatalog()
        {
            DirectoryModuleCatalog directoryCatalog = new DirectoryModuleCatalog()
            {
                ModulePath = @".\DirectoryModules"
            };

            ((AggregateModuleCatalog)ModuleCatalog).AddCatalog(directoryCatalog);
        }
        protected override void ConfigureModuleCatalog()
        {
            base.ConfigureModuleCatalog();

            DirectoryModuleCatalog _directoyCatalog = this.ModuleCatalog as DirectoryModuleCatalog;

            _directoyCatalog.ModulePath = AppDomain.CurrentDomain.BaseDirectory;
            _directoyCatalog.Initialize();
        }
        protected override IModuleCatalog CreateModuleCatalog()
        {
            var modulePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Modules");
            var catalog    = new DirectoryModuleCatalog {
                ModulePath = modulePath
            };

            return(catalog);
        }
Exemple #24
0
        /// <summary>
        /// Creating catalog of Modules from .dlls in "Modules" folder
        /// </summary>
        protected override IModuleCatalog CreateModuleCatalog()
        {
            var catalog = new DirectoryModuleCatalog()
            {
                ModulePath = @"./Modules"
            };

            return(catalog);
        }
        protected override IModuleCatalog CreateModuleCatalog()
        {
            string absolutePath = Path.GetFullPath(AppDomain.CurrentDomain.BaseDirectory + "../../../Modules");
            DirectoryModuleCatalog directoryModuleCatalog = new DirectoryModuleCatalog()
            {
                ModulePath = absolutePath
            };

            return(directoryModuleCatalog);
        }
Exemple #26
0
        /// <summary>
        /// Creates the <see cref="T:Microsoft.Practices.Prism.Modularity.IModuleCatalog"/> used by Prism.
        /// </summary>
        protected override IModuleCatalog CreateModuleCatalog()
        {
            var moduleCatalog = new DirectoryModuleCatalog {
                ModulePath = ModulesDirectory
            };

            moduleCatalog.Initialize();

            return(moduleCatalog);
        }
Exemple #27
0
        /// <summary>
        /// Inizializza il catalogo per la creazione dei moduli aggiuntivi
        /// (si potrebbe utilizzare DirectoryModuleCatalog)
        /// </summary>
        protected override IModuleCatalog CreateModuleCatalog()
        {
            //Carica tutti i moduli definiti nello XAML
            //return Microsoft.Practices.Prism.Modularity.ModuleCatalog.CreateFromXaml(
            //    new Uri(ModuleCatalogUri, UriKind.Relative));

            var moduleCatalog = new DirectoryModuleCatalog();

            moduleCatalog.ModulePath = @".\";
            return(moduleCatalog);
        }
Exemple #28
0
        /// <summary>
        /// GetModuleCatalog returns the list of Modules to
        /// add to the Shell.  Use the DirectoryModuleCatalog
        /// so that the application scans the directory for
        /// Modules.
        /// </summary>
        /// <returns></returns>
        protected override IModuleCatalog GetModuleCatalog()
        {
            //Create the DirectoryModuleCatalog
            DirectoryModuleCatalog dmc = new DirectoryModuleCatalog();

            //Set the base path of the directory
            dmc.ModulePath = ".";

            //Return the result
            return(dmc);
        }
 public void EmptyPathThrows()
 {
     var ex = Assert.Throws <InvalidOperationException>(() =>
     {
         DirectoryModuleCatalog catalog = new DirectoryModuleCatalog
         {
             ModulePath = string.Empty
         };
         catalog.Load();
     });
 }
 public void NonExistentPathThrows()
 {
     var ex = Assert.Throws <InvalidOperationException>(() =>
     {
         DirectoryModuleCatalog catalog = new DirectoryModuleCatalog
         {
             ModulePath = "NonExistentPath"
         };
         catalog.Load();
     });
 }