示例#1
0
        public void NothingSpecifiedTest()
        {
            RequireConfig config = new RequireConfig();

            foreach (string dir in TestDirManager.DirList)
            {
                Assert.IsFalse(config.IsRequired(dir));
            }
            foreach (string file in TestDirManager.FileList)
            {
                Assert.IsFalse(config.IsRequired(file));
            }
        }
示例#2
0
        public void RequireSpecificDirectory1()
        {
            HashSet <string> requiredFiles = new HashSet <string>
            {
                TestDirManager.Dir2_MyDir_Myfile1Text,
                TestDirManager.Dir2_MyDir_Myfile2Text,
                TestDirManager.Dir2_MyfileTxt,
                TestDirManager.Dir2_Myfile2Txt,
            };

            HashSet <string> requiredDirs = new HashSet <string>
            {
                TestDirManager.Dir2,
                TestDirManager.Dir2_MyDir
            };

            RequireConfig config = new RequireConfig();

            config.AddRequiredDir(TestDirManager.Dir2);

            foreach (string dir in TestDirManager.DirList)
            {
                if (requiredDirs.Contains(dir))
                {
                    Assert.IsTrue(config.IsRequired(dir), dir);
                }
                else
                {
                    Assert.IsFalse(config.IsRequired(dir), dir);
                }
            }
            foreach (string file in TestDirManager.FileList)
            {
                if (requiredFiles.Contains(file))
                {
                    Assert.IsTrue(config.IsRequired(file), file);
                }
                else
                {
                    Assert.IsFalse(config.IsRequired(file), file);
                }
            }
        }
示例#3
0
        public void RequireSpecificFilesTest()
        {
            HashSet <string> requiredFiles = new HashSet <string>
            {
                TestDirManager.HiddenDir_HelloTxt,
                TestDirManager.Dir1_HelloHtml,
                TestDirManager.Dir2_MyDir,
                TestDirManager.Dir2_MyDir_Myfile2Text,
                TestDirManager.Dir3_HiddenHtml,
                TestDirManager.RootFile1
            };

            RequireConfig config = new RequireConfig();

            foreach (string file in requiredFiles)
            {
                config.AddRequiredFile(file);
            }

            // No directores are required.
            foreach (string dir in TestDirManager.DirList)
            {
                Assert.IsFalse(config.IsRequired(dir), dir);
            }
            foreach (string file in TestDirManager.FileList)
            {
                if (requiredFiles.Contains(file))
                {
                    Assert.IsTrue(config.IsRequired(file), file);
                }
                else
                {
                    Assert.IsFalse(config.IsRequired(file), file);
                }
            }
        }
示例#4
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);
            }
        }