Пример #1
0
        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);
                }
            }
        }
Пример #2
0
        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));
            }
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
            }
        }
Пример #5
0
        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);
                }
            }
        }
Пример #6
0
        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);
                }
            }
        }
Пример #7
0
        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);
                }
            }
        }
Пример #8
0
        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);
                }
            }
        }
Пример #9
0
        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);
                }
            }
        }
Пример #10
0
    public void NewInstanceShouldBeEmpty()
    {
        var ignoreConfig = new IgnoreConfig();

        ignoreConfig.IsEmpty.ShouldBeTrue();
    }
Пример #11
0
 public Config()
 {
     Branches = new Dictionary <string, BranchConfig?>();
     Ignore   = new IgnoreConfig();
 }
Пример #12
0
        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);
            }
        }