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]); }
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() { string path = @".\DependantModules"; CompilerHelper.CleanUpDirectory(path); CompilerHelper.CompileFile(@"Microsoft.Practices.Composite.Tests.Mocks.Modules.MockDependencyModule.cs", @".\DependantModules\DependencyModule.dll"); CompilerHelper.CompileFile(@"Microsoft.Practices.Composite.Tests.Mocks.Modules.MockDependantModule.cs", @".\DependantModules\DependantModule.dll"); IModuleEnumerator enumerator = new DirectoryLookupModuleEnumerator(path); ModuleInfo[] modules = enumerator.GetModules(); 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]); }
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 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]); }
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); }
public void GetStartupLoadedModulesDoesntRetrieveOnDemandLoaded() { string path = @".\AttributedModules"; CompilerHelper.CleanUpDirectory(path); CompilerHelper.CompileFile(@"Microsoft.Practices.Composite.Tests.Mocks.Modules.MockAttributedModule.cs", @".\AttributedModules\MockAttributedModule.dll"); IModuleEnumerator enumerator = new DirectoryLookupModuleEnumerator(path); Assert.AreEqual <int>(1, enumerator.GetModules().Length); Assert.AreEqual <int>(0, enumerator.GetStartupLoadedModules().Length); }
public void ShouldGetOnDemandFromAttribute() { CompilerHelper.CompileFile(@"Prism.WinForms.Tests.Mocks.Modules.MockAttributedModule.cs", ModulesDirectory3 + @"\MockAttributedModule.dll"); DirectoryModuleCatalog catalog = new DirectoryModuleCatalog(); catalog.ModulePath = ModulesDirectory3; catalog.Load(); ModuleInfo[] modules = catalog.Modules.ToArray(); Assert.AreEqual(1, modules.Length); Assert.AreEqual(InitializationMode.OnDemand, modules[0].InitializationMode); }
public void ShouldLoadAssemblyEvenIfIsExposingTypesFromAnAssemblyInTheGac() { string path = @".\Mocks\Modules"; CompilerHelper.CleanUpDirectory(path); CompilerHelper.CompileFile(@"Microsoft.Practices.Composite.Tests.Mocks.Modules.MockExposingTypeFromGacAssemblyModule.cs", @".\Mocks\Modules\MockExposingTypeFromGacAssemblyModule.dll", @"System.Transactions.dll"); IModuleEnumerator enumerator = new DirectoryLookupModuleEnumerator(path); ModuleInfo[] modules = enumerator.GetModules(); Assert.AreEqual(1, modules.Count()); }
public void GetModuleReturnsOnlySpecifiedModule() { string path = @".\AttributedModules"; CompilerHelper.CleanUpDirectory(path); CompilerHelper.CompileFile(@"Microsoft.Practices.Composite.Tests.Mocks.Modules.MockAttributedModule.cs", @".\AttributedModules\MockAttributedModule.dll"); IModuleEnumerator enumerator = new DirectoryLookupModuleEnumerator(path); var module = enumerator.GetModule("TestModule"); Assert.IsNotNull(module); Assert.AreEqual("TestModule", module.ModuleName); }
public void UseClassNameAsModuleNameWhenNotSpecifiedInAttribute() { string path = @".\MocksModules"; CompilerHelper.CleanUpDirectory(path); CompilerHelper.CompileFile(@"Microsoft.Practices.Composite.Tests.Mocks.Modules.MockModuleA.cs", @".\MocksModules\MockModuleA.dll"); IModuleEnumerator enumerator = new DirectoryLookupModuleEnumerator(path); ModuleInfo[] modules = enumerator.GetModules(); Assert.IsNotNull(modules); Assert.AreEqual("MockModuleA", modules[0].ModuleName); }
public void UseClassNameAsModuleNameWhenNotSpecifiedInAttribute() { CompilerHelper.CompileFile(@"Microsoft.Practices.Prism.Tests.Mocks.Modules.MockModuleA.cs", ModulesDirectory1 + @"\MockModuleA.dll"); DirectoryModuleCatalog catalog = new DirectoryModuleCatalog(); catalog.ModulePath = ModulesDirectory1; catalog.Load(); ModuleInfo[] modules = catalog.Modules.ToArray(); Assert.IsNotNull(modules); Assert.AreEqual("MockModuleA", modules[0].ModuleName); }
public void ShouldNotLoadAssembliesInCurrentAppDomain() { string path = @".\Mocks\Modules"; CompilerHelper.CleanUpDirectory(path); CompilerHelper.CompileFile(@"Microsoft.Practices.Composite.Tests.Mocks.Modules.MockModuleA.cs", @".\Mocks\Modules\MockModuleA.dll"); IModuleEnumerator enumerator = new DirectoryLookupModuleEnumerator(path); ModuleInfo[] modules = enumerator.GetModules(); Assembly loadedAssembly = Array.Find <Assembly>(AppDomain.CurrentDomain.GetAssemblies(), assembly => assembly.Location.Equals(modules[0].AssemblyFile, StringComparison.InvariantCultureIgnoreCase)); Assert.IsNull(loadedAssembly); }
public void ShouldGetStartupLoadedFromAttribute() { string path = @".\AttributedModules"; CompilerHelper.CleanUpDirectory(path); CompilerHelper.CompileFile(@"Microsoft.Practices.Composite.Tests.Mocks.Modules.MockAttributedModule.cs", @".\AttributedModules\MockAttributedModule.dll"); IModuleEnumerator enumerator = new DirectoryLookupModuleEnumerator(path); ModuleInfo[] modules = enumerator.GetModules(); Assert.AreEqual(1, modules.Length); Assert.AreEqual <bool>(false, modules[0].StartupLoaded); }
public void ShouldLoadAssemblyEvenIfIsExposingTypesFromAnAssemblyInTheGac() { CompilerHelper.CompileFile(@"Prism.Wpf.Tests.Mocks.Modules.MockExposingTypeFromGacAssemblyModule.cs", ModulesDirectory4 + @"\MockExposingTypeFromGacAssemblyModule.dll", @"System.Transactions.dll"); DirectoryModuleCatalog catalog = new DirectoryModuleCatalog { ModulePath = ModulesDirectory4 }; catalog.Load(); var modules = catalog.Modules.ToArray(); Assert.Single(modules); }
public void ShouldNotLoadAssembliesInCurrentAppDomain() { CompilerHelper.CompileFile(@"Microsoft.Practices.Composite.Tests.Mocks.Modules.MockModuleA.cs", ModulesDirectory4 + @"\MockModuleA.dll"); DirectoryModuleCatalog catalog = new DirectoryModuleCatalog(); catalog.ModulePath = ModulesDirectory4; catalog.Load(); ModuleInfo[] modules = catalog.Modules.ToArray(); Assembly loadedAssembly = Array.Find <Assembly>(AppDomain.CurrentDomain.GetAssemblies(), assembly => assembly.Location.Equals(modules[0].Ref, StringComparison.InvariantCultureIgnoreCase)); Assert.IsNull(loadedAssembly); }
public void ShouldGetModuleNameFromAttribute() { CompilerHelper.CompileFile(@"Microsoft.Practices.Prism.Tests.Mocks.Modules.MockAttributedModule.cs", ModulesDirectory2 + @"\MockAttributedModule.dll"); DirectoryModuleCatalog catalog = new DirectoryModuleCatalog(); catalog.ModulePath = ModulesDirectory2; catalog.Load(); ModuleInfo[] modules = catalog.Modules.ToArray(); Assert.AreEqual(1, modules.Length); Assert.AreEqual("TestModule", modules[0].ModuleName); }
public void ShouldLoadAssemblyEvenIfTheyAreReferencingEachOther() { string path = @".\Mocks\Modules"; CompilerHelper.CleanUpDirectory(path); CompilerHelper.CompileFile(@"Microsoft.Practices.Composite.Tests.Mocks.Modules.MockModuleA.cs", @".\Mocks\Modules\MockModuleZZZ.dll"); CompilerHelper.CompileFile(@"Microsoft.Practices.Composite.Tests.Mocks.Modules.MockModuleReferencingOtherModule.cs", @".\Mocks\Modules\MockModuleReferencingOtherModule.dll", @".\Mocks\Modules\MockModuleZZZ.dll"); IModuleEnumerator enumerator = new DirectoryLookupModuleEnumerator(path); ModuleInfo[] modules = enumerator.GetModules(); Assert.AreEqual(2, modules.Count()); }
public void ShouldDefaultInitializationModeToWhenAvailable() { CompilerHelper.CompileFile(@"Prism.Wpf.Tests.Mocks.Modules.MockModuleA.cs", ModulesDirectory1 + @"\MockModuleA.dll"); DirectoryModuleCatalog catalog = new DirectoryModuleCatalog { ModulePath = ModulesDirectory1 }; catalog.Load(); var modules = catalog.Modules.ToArray(); Assert.NotNull(modules); Assert.Equal(InitializationMode.WhenAvailable, modules[0].InitializationMode); }
public void ShouldGetOnDemandFromAttribute() { CompilerHelper.CompileFile(@"Prism.Wpf.Tests.Mocks.Modules.MockAttributedModule.cs", ModulesDirectory3 + @"\MockAttributedModule.dll"); DirectoryModuleCatalog catalog = new DirectoryModuleCatalog { ModulePath = ModulesDirectory3 }; catalog.Load(); var modules = catalog.Modules.ToArray(); Assert.Single(modules); Assert.Equal(InitializationMode.OnDemand, modules[0].InitializationMode); }
public void UseClassNameAsModuleNameWhenNotSpecifiedInAttribute() { CompilerHelper.CompileFile(@"Prism.Avalonia.Tests.Mocks.Modules.MockModuleA.cs", ModulesDirectory1 + @"\MockModuleA.dll"); DirectoryModuleCatalog catalog = new DirectoryModuleCatalog { ModulePath = ModulesDirectory1 }; catalog.Load(); var modules = catalog.Modules.ToArray(); Assert.IsNotNull(modules); Assert.AreEqual("MockModuleA", modules[0].ModuleName); }
public void ShouldGetModuleNameFromAttribute() { CompilerHelper.CompileFile(@"Prism.Avalonia.Tests.Mocks.Modules.MockAttributedModule.cs", ModulesDirectory2 + @"\MockAttributedModule.dll"); DirectoryModuleCatalog catalog = new DirectoryModuleCatalog { ModulePath = ModulesDirectory2 }; catalog.Load(); var modules = catalog.Modules.ToArray(); Assert.AreEqual(1, modules.Length); Assert.AreEqual("TestModule", modules[0].ModuleName); }
public void ShouldLoadAssemblyEvenIfTheyAreReferencingEachOther() { CompilerHelper.CompileFile(@"Prism.Avalonia.Tests.Mocks.Modules.MockModuleA.cs", ModulesDirectory4 + @"\MockModuleZZZ.dll"); CompilerHelper.CompileFile(@"Prism.Avalonia.Tests.Mocks.Modules.MockModuleReferencingOtherModule.cs", ModulesDirectory4 + @"\MockModuleReferencingOtherModule.dll", ModulesDirectory4 + @"\MockModuleZZZ.dll"); DirectoryModuleCatalog catalog = new DirectoryModuleCatalog { ModulePath = ModulesDirectory4 }; catalog.Load(); var modules = catalog.Modules.ToArray(); Assert.AreEqual(2, modules.Count()); }