public void ApplyingUsageRulesToAssemblyFoldersReturnsCorrectAssemblies() { //include dir2 //include browser file directly //include textfile directly IList <UsageRule> usageRules = new List <UsageRule> { new UsageRule { MatchType = UsageRuleNameMatch.DirectoryFullName, Name = Dir2, UsageRuleFunction = UsageRuleFunction.Include }, new UsageRule { MatchType = UsageRuleNameMatch.FullName, Name = browser.FullName, UsageRuleFunction = UsageRuleFunction.Include }, new UsageRule { MatchType = UsageRuleNameMatch.FullName, Name = Textfile, UsageRuleFunction = UsageRuleFunction.Include }, }; IList <string> assemblyFolders = new List <string>(); AssemblyLocator.UsageRules.UsageRuleAssemblyApplicator assemblyApplicator = new AssemblyLocator.UsageRules.UsageRuleAssemblyApplicator(); IList <Assembly> assemblies = assemblyApplicator.ApplyUsageRulesToFolders(usageRules, assemblyFolders); Assert.AreEqual(2, assemblies.Count); IList <string> assemblyNames = assemblies.Select(x => x.FullName).ToList(); Assert.Contains(cabinet.FullName, assemblyNames.ToArray()); Assert.Contains(browser.FullName, assemblyNames.ToArray()); //include file //exclude file //find all assemblies in given folder and add to list //search all usages for all includes that are valid files //check file is a valid assembly and add to list //search all usages for all excludes that are valid files //remove assembly from list //"C:\Windows\System32\browser.dll" //"C:\Windows\System32\cabinet.dll" //"C:\Windows\System32\netbios.dll" }
public void ApplyUsageRulesToFoldersToFindAssemblies() { //this can fail due to restrictions or depenendcies... need to look at using MEF to load them all. // Assembly s = Assembly.LoadFrom(@"C:\hoh_code\Bailey\bailey\trunk\source\Bailey.DAL\bin\Debug\Bailey.Common.dll"); // Assembly.UnsafeLoadFrom(@"C:\Windows\System32\browser.dll"); IList <string> assemblyFolders = new List <string>() { Dir4, Dir8, Dir9 }; IList <Assembly> assemblies = new List <Assembly>(); AssemblyLocator.UsageRules.UsageRuleAssemblyApplicator assemblyApplicator = new AssemblyLocator.UsageRules.UsageRuleAssemblyApplicator(); assemblyApplicator.FindAllAssembiesForGivenFolders(assemblyFolders, assemblies); Assert.AreEqual(1, assemblies.Count); IList <string> assemblyNames = assemblies.Select(x => x.FullName).ToList(); Assert.Contains(cabinet.FullName, assemblyNames.ToArray()); }
public void RemoveAllExplicityExcludedAssemblies() { //TODO some how (probably using MEF) load an assembly IList <Assembly> assemblies = new List <Assembly>(); //load an assembly into list (browser) Assert.AreEqual(1, assemblies.Count); IList <UsageRule> usageRules = new List <UsageRule> { new UsageRule { Name = browser.FullName, UsageRuleFunction = UsageRuleFunction.Exclude }, }; AssemblyLocator.UsageRules.UsageRuleAssemblyApplicator assemblyApplicator = new AssemblyLocator.UsageRules.UsageRuleAssemblyApplicator(); assemblyApplicator.RemoveAllExplicityExcludedAssemblies(usageRules, assemblies); Assert.AreEqual(0, assemblies.Count); }
public void FindAllAssembliesSpecifiedInUsageRules() { IList <UsageRule> usageRules = new List <UsageRule> { new UsageRule { MatchType = UsageRuleNameMatch.FullName, Name = browser.FullName, UsageRuleFunction = UsageRuleFunction.Include }, new UsageRule { MatchType = UsageRuleNameMatch.FullName, Name = Textfile, UsageRuleFunction = UsageRuleFunction.Include }, }; IList <Assembly> assemblies = new List <Assembly>(); AssemblyLocator.UsageRules.UsageRuleAssemblyApplicator assemblyApplicator = new AssemblyLocator.UsageRules.UsageRuleAssemblyApplicator(); assemblyApplicator.FindAllAssembliesSpecifiedInUsageRules(usageRules, assemblies); Assert.AreEqual(1, assemblies.Count); IList <string> assemblyNames = assemblies.Select(x => x.FullName).ToList(); Assert.Contains(browser.FullName, assemblyNames.ToArray()); }
public void ApplyingUsageRulesToAssemblyFoldersReturnsCorrectAssemblies() { //include dir2 //include browser file directly //include textfile directly IList<UsageRule> usageRules = new List<UsageRule> { new UsageRule { MatchType = UsageRuleNameMatch.DirectoryFullName, Name = Dir2, UsageRuleFunction = UsageRuleFunction.Include }, new UsageRule { MatchType = UsageRuleNameMatch.FullName, Name = browser.FullName, UsageRuleFunction = UsageRuleFunction.Include }, new UsageRule { MatchType = UsageRuleNameMatch.FullName, Name = Textfile, UsageRuleFunction = UsageRuleFunction.Include }, }; IList<string> assemblyFolders = new List<string>(); AssemblyLocator.UsageRules.UsageRuleAssemblyApplicator assemblyApplicator = new AssemblyLocator.UsageRules.UsageRuleAssemblyApplicator(); IList<Assembly> assemblies = assemblyApplicator.ApplyUsageRulesToFolders(usageRules, assemblyFolders); Assert.AreEqual(2, assemblies.Count); IList<string> assemblyNames = assemblies.Select(x => x.FullName).ToList(); Assert.Contains(cabinet.FullName, assemblyNames.ToArray()); Assert.Contains(browser.FullName, assemblyNames.ToArray()); //include file //exclude file //find all assemblies in given folder and add to list //search all usages for all includes that are valid files //check file is a valid assembly and add to list //search all usages for all excludes that are valid files //remove assembly from list //"C:\Windows\System32\browser.dll" //"C:\Windows\System32\cabinet.dll" //"C:\Windows\System32\netbios.dll" }
public void ApplyUsageRulesToFoldersToFindAssemblies() { //this can fail due to restrictions or depenendcies... need to look at using MEF to load them all. // Assembly s = Assembly.LoadFrom(@"C:\hoh_code\Bailey\bailey\trunk\source\Bailey.DAL\bin\Debug\Bailey.Common.dll"); // Assembly.UnsafeLoadFrom(@"C:\Windows\System32\browser.dll"); IList<string> assemblyFolders = new List<string>() { Dir4, Dir8, Dir9 }; IList<Assembly> assemblies = new List<Assembly>(); AssemblyLocator.UsageRules.UsageRuleAssemblyApplicator assemblyApplicator = new AssemblyLocator.UsageRules.UsageRuleAssemblyApplicator(); assemblyApplicator.FindAllAssembiesForGivenFolders(assemblyFolders, assemblies); Assert.AreEqual(1, assemblies.Count); IList<string> assemblyNames = assemblies.Select(x => x.FullName).ToList(); Assert.Contains(cabinet.FullName, assemblyNames.ToArray()); }
public void RemoveAllExplicityExcludedAssemblies() { //TODO some how (probably using MEF) load an assembly IList<Assembly> assemblies = new List<Assembly>(); //load an assembly into list (browser) Assert.AreEqual(1, assemblies.Count); IList<UsageRule> usageRules = new List<UsageRule> { new UsageRule { Name = browser.FullName, UsageRuleFunction = UsageRuleFunction.Exclude }, }; AssemblyLocator.UsageRules.UsageRuleAssemblyApplicator assemblyApplicator = new AssemblyLocator.UsageRules.UsageRuleAssemblyApplicator(); assemblyApplicator.RemoveAllExplicityExcludedAssemblies(usageRules, assemblies); Assert.AreEqual(0, assemblies.Count); }
public void FindAllAssembliesSpecifiedInUsageRules() { IList<UsageRule> usageRules = new List<UsageRule> { new UsageRule { MatchType = UsageRuleNameMatch.FullName, Name = browser.FullName, UsageRuleFunction = UsageRuleFunction.Include }, new UsageRule { MatchType = UsageRuleNameMatch.FullName, Name = Textfile, UsageRuleFunction = UsageRuleFunction.Include }, }; IList<Assembly> assemblies = new List<Assembly>(); AssemblyLocator.UsageRules.UsageRuleAssemblyApplicator assemblyApplicator = new AssemblyLocator.UsageRules.UsageRuleAssemblyApplicator(); assemblyApplicator.FindAllAssembliesSpecifiedInUsageRules(usageRules, assemblies); Assert.AreEqual(1, assemblies.Count); IList<string> assemblyNames = assemblies.Select(x => x.FullName).ToList(); Assert.Contains(browser.FullName, assemblyNames.ToArray()); }