public void IgnoreDirectoryRegexTest1() { HashSet <string> ignoredFiles = new HashSet <string> { TestDirManager.Dir1_HelloHtml, TestDirManager.Dir1_HelloXml, TestDirManager.Dir2_MyDir_Myfile1Text, TestDirManager.Dir2_MyDir_Myfile2Text, TestDirManager.Dir2_MyfileTxt, TestDirManager.Dir2_Myfile2Txt, TestDirManager.Dir3_HiddenFile, TestDirManager.Dir3_HiddenHtml, }; HashSet <string> ignoredDirs = new HashSet <string> { TestDirManager.Dir1, TestDirManager.Dir2, TestDirManager.Dir2_MyDir, TestDirManager.Dir3 }; IgnoreConfig config = new IgnoreConfig(); config.AddDirNameToIgnore( @"dir\d", true ); foreach (string dir in TestDirManager.DirList) { if (ignoredDirs.Contains(dir)) { Assert.IsTrue(config.ShouldIgnore(dir), dir); } else { Assert.IsFalse(config.ShouldIgnore(dir), dir); } } foreach (string file in TestDirManager.FileList) { if (ignoredFiles.Contains(file)) { Assert.IsTrue(config.ShouldIgnore(file), file); } else { Assert.IsFalse(config.ShouldIgnore(file), file); } } }
public void NothingSpecifiedTest() { IgnoreConfig config = new IgnoreConfig(); foreach (string dir in TestDirManager.DirList) { Assert.IsFalse(config.ShouldIgnore(dir)); } foreach (string file in TestDirManager.FileList) { Assert.IsFalse(config.ShouldIgnore(file)); } }
private static void DirRegexExistsInCollection(IReadOnlyCollection <Regex> collection, string pattern, bool ignoreCase) { Regex expectedRegex = IgnoreConfig.CreateIgnoreDirRegex(pattern, ignoreCase); Regex foundRegex = collection.FirstOrDefault( r => { return(r.Options.Equals(expectedRegex.Options) && r.ToString().Equals(expectedRegex.ToString())); } ); Assert.IsNotNull(foundRegex); }
public void IgnoreDirectoryRegexTest2() { IgnoreConfig config = new IgnoreConfig(); config.AddDirNameToIgnore( @"dir", true ); foreach (string dir in TestDirManager.DirList) { Assert.IsFalse(config.ShouldIgnore(dir), dir); } foreach (string file in TestDirManager.FileList) { Assert.IsFalse(config.ShouldIgnore(file), file); } }
public void IgnoreSpecificDirectory1() { HashSet <string> ignoredFiles = new HashSet <string> { TestDirManager.Dir2_MyDir_Myfile1Text, TestDirManager.Dir2_MyDir_Myfile2Text, TestDirManager.Dir2_MyfileTxt, TestDirManager.Dir2_Myfile2Txt, }; HashSet <string> ignoredDirs = new HashSet <string> { TestDirManager.Dir2, TestDirManager.Dir2_MyDir }; IgnoreConfig config = new IgnoreConfig(); config.AddSpecificDirToIgnore(TestDirManager.Dir2); foreach (string dir in TestDirManager.DirList) { if (ignoredDirs.Contains(dir)) { Assert.IsTrue(config.ShouldIgnore(dir), dir); } else { Assert.IsFalse(config.ShouldIgnore(dir), dir); } } foreach (string file in TestDirManager.FileList) { if (ignoredFiles.Contains(file)) { Assert.IsTrue(config.ShouldIgnore(file), file); } else { Assert.IsFalse(config.ShouldIgnore(file), file); } } }
public void IgnoreDirectoryRegexTest4() { HashSet <string> ignoredFiles = new HashSet <string> { TestDirManager.Dir2_MyDir_Myfile1Text, TestDirManager.Dir2_MyDir_Myfile2Text }; HashSet <string> ignoredDirs = new HashSet <string> { TestDirManager.Dir2_MyDir }; IgnoreConfig config = new IgnoreConfig(); config.AddDirNameToIgnore( @"mydir", true ); foreach (string dir in TestDirManager.DirList) { if (ignoredDirs.Contains(dir)) { Assert.IsTrue(config.ShouldIgnore(dir), dir); } else { Assert.IsFalse(config.ShouldIgnore(dir), dir); } } foreach (string file in TestDirManager.FileList) { if (ignoredFiles.Contains(file)) { Assert.IsTrue(config.ShouldIgnore(file), file); } else { Assert.IsFalse(config.ShouldIgnore(file), file); } } }
public void IgnoreFileRegexTest() { HashSet <string> ignoredFiles = new HashSet <string> { TestDirManager.HiddenDir_HelloTxt, TestDirManager.HiddenDir_Hello2Txt, TestDirManager.Dir1_HelloHtml, TestDirManager.Dir1_HelloXml, TestDirManager.Dir2_MyDir_Myfile2Text, TestDirManager.Dir2_Myfile2Txt }; List <Regex> regexes = new List <Regex> { new Regex("hello", RegexOptions.IgnoreCase), new Regex("myFile.+") }; IgnoreConfig config = new IgnoreConfig(); foreach (Regex regex in regexes) { config.AddFileRegexToIgnore(regex); } // No directores are ignored. foreach (string dir in TestDirManager.DirList) { Assert.IsFalse(config.ShouldIgnore(dir), dir); } foreach (string file in TestDirManager.FileList) { if (ignoredFiles.Contains(file)) { Assert.IsTrue(config.ShouldIgnore(file), file); } else { Assert.IsFalse(config.ShouldIgnore(file), file); } } }
public void IgnoreFileExtensionTest() { HashSet <string> ignoredFiles = new HashSet <string> { TestDirManager.Dir1_HelloHtml, TestDirManager.Dir2_MyDir_Myfile1Text, TestDirManager.Dir3_HiddenHtml }; List <Regex> regexes = new List <Regex> { new Regex(@"\.html", RegexOptions.IgnoreCase), new Regex(@"\.text") }; IgnoreConfig config = new IgnoreConfig(); foreach (Regex regex in regexes) { config.AddIgnoredFileExtension(regex); } // No directores are ignored. foreach (string dir in TestDirManager.DirList) { Assert.IsFalse(config.ShouldIgnore(dir), dir); } foreach (string file in TestDirManager.FileList) { if (ignoredFiles.Contains(file)) { Assert.IsTrue(config.ShouldIgnore(file), file); } else { Assert.IsFalse(config.ShouldIgnore(file), file); } } }
public void IgnoreSpecificFilesTest() { HashSet <string> ignoredFiles = new HashSet <string> { TestDirManager.HiddenDir_HelloTxt, TestDirManager.Dir1_HelloHtml, TestDirManager.Dir2_MyDir, TestDirManager.Dir2_MyDir_Myfile2Text, TestDirManager.Dir3_HiddenHtml, TestDirManager.RootFile1 }; IgnoreConfig config = new IgnoreConfig(); foreach (string file in ignoredFiles) { config.AddSpecificFileToIgnore(file); } // No directores are ignored. foreach (string dir in TestDirManager.DirList) { Assert.IsFalse(config.ShouldIgnore(dir), dir); } foreach (string file in TestDirManager.FileList) { if (ignoredFiles.Contains(file)) { Assert.IsTrue(config.ShouldIgnore(file), file); } else { Assert.IsFalse(config.ShouldIgnore(file), file); } } }
public void NewInstanceShouldBeEmpty() { var ignoreConfig = new IgnoreConfig(); ignoreConfig.IsEmpty.ShouldBeTrue(); }
public Config() { Branches = new Dictionary <string, BranchConfig?>(); Ignore = new IgnoreConfig(); }
public void XmlLoadTest() { string fileName = Path.Combine(testFilesDir, "TestConfig.xml"); FilesingConfig config = XmlLoader.LoadConfigFromXml(fileName, TestDirManager.TestDir); // Check global ignore config { Assert.AreEqual(1, config.GlobalIgnoreConfigs.Count); IgnoreConfig globalIgnoreConfig = config.GlobalIgnoreConfigs[0]; // Should only contain 1 file: Assert.AreEqual(1, globalIgnoreConfig.IgnoredFiles.Count); PathExistsInCollection(globalIgnoreConfig.IgnoredFiles, TestDirManager.RootFile1); // Should only contain 1 dir: Assert.AreEqual(1, globalIgnoreConfig.IgnoredDirectories.Count); PathExistsInCollection(globalIgnoreConfig.IgnoredDirectories, TestDirManager.Dir2_MyDir); // Should only contain 1 file with regex: Assert.AreEqual(1, globalIgnoreConfig.IgnoredFilesWithRegex.Count); FileRegexExistsInCollection(globalIgnoreConfig.IgnoredFilesWithRegex, "myFile.+", false); // Should only contain 1 dir with regex: Assert.AreEqual(1, globalIgnoreConfig.IgnoredDirectoriesWithRegex.Count); DirRegexExistsInCollection(globalIgnoreConfig.IgnoredDirectoriesWithRegex, "dir3", true); // Should contain 2 extensions to ignore. Assert.AreEqual(2, globalIgnoreConfig.IgnoredFileExtensions.Count); FileRegexExistsInCollection(globalIgnoreConfig.IgnoredFileExtensions, @"\.html", true); FileRegexExistsInCollection(globalIgnoreConfig.IgnoredFileExtensions, @"\.dll", false); } // Check Requirements Config { Assert.AreEqual(1, config.GlobalRequireConfigs.Count); RequireConfig globalRequireConfig = config.GlobalRequireConfigs[0]; // Should only contain 1 file: Assert.AreEqual(1, globalRequireConfig.RequiredFiles.Count); PathExistsInCollection(globalRequireConfig.RequiredFiles, TestDirManager.Dir1_HelloHtml); // Should only contain 1 dir: Assert.AreEqual(1, globalRequireConfig.RequiredDirs.Count); PathExistsInCollection(globalRequireConfig.RequiredDirs, TestDirManager.Dir1); } // Check Patterns Assert.AreEqual(3, config.PatternConfigs.Count); // Check pattern 0 { PatternConfig config0 = config.PatternConfigs[0]; Assert.AreEqual("public", config0.Pattern.ToString()); Assert.AreEqual(RegexOptions.Compiled | RegexOptions.IgnoreCase, config0.Pattern.Options); // No ignores or requirements. Assert.AreEqual(0, config0.IgnoreConfigs.Count); Assert.AreEqual(0, config0.RequireConfigs.Count); } // Check pattern 1: { PatternConfig config1 = config.PatternConfigs[1]; Assert.AreEqual("class", config1.Pattern.ToString()); Assert.AreEqual(RegexOptions.Compiled, config1.Pattern.Options); // Check ignore config { Assert.AreEqual(1, config1.IgnoreConfigs.Count); IgnoreConfig ignoreConfig = config1.IgnoreConfigs[0]; // Should only contain 1 file: Assert.AreEqual(1, ignoreConfig.IgnoredFiles.Count); PathExistsInCollection(ignoreConfig.IgnoredFiles, TestDirManager.RootFile2); // Should only contain 1 dir: Assert.AreEqual(1, ignoreConfig.IgnoredDirectories.Count); PathExistsInCollection(ignoreConfig.IgnoredDirectories, TestDirManager.Dir1); // Should only contain 1 file with regex: Assert.AreEqual(1, ignoreConfig.IgnoredFilesWithRegex.Count); FileRegexExistsInCollection(ignoreConfig.IgnoredFilesWithRegex, "Hello", false); // Should only contain 1 dir with regex: Assert.AreEqual(1, ignoreConfig.IgnoredDirectoriesWithRegex.Count); DirRegexExistsInCollection(ignoreConfig.IgnoredDirectoriesWithRegex, "Dir1", false); // Should contain 2 extensions to ignore. Assert.AreEqual(2, ignoreConfig.IgnoredFileExtensions.Count); FileRegexExistsInCollection(ignoreConfig.IgnoredFileExtensions, @"\.txt", true); FileRegexExistsInCollection(ignoreConfig.IgnoredFileExtensions, @"\.EXE", false); } // Check requirements config { Assert.AreEqual(1, config1.RequireConfigs.Count); RequireConfig requireConfig = config1.RequireConfigs[0]; // Should only contain 1 file: Assert.AreEqual(1, requireConfig.RequiredFiles.Count); PathExistsInCollection(requireConfig.RequiredFiles, TestDirManager.Dir2_MyfileTxt); // Should only contain 1 dir: Assert.AreEqual(1, requireConfig.RequiredDirs.Count); PathExistsInCollection(requireConfig.RequiredDirs, TestDirManager.Dir2_MyDir); } } // Check pattern 2: { PatternConfig config2 = config.PatternConfigs[2]; Assert.AreEqual("hello", config2.Pattern.ToString()); Assert.AreEqual(RegexOptions.Compiled | RegexOptions.IgnoreCase, config2.Pattern.Options); // No ignores or requirements. Assert.AreEqual(0, config2.IgnoreConfigs.Count); Assert.AreEqual(0, config2.RequireConfigs.Count); } }