예제 #1
0
        public void NamedFolderWithPattern()
        {
            var rulesFactory = new FolderRecurseRules();

            rulesFactory.AddGlobPath(@"?X*Z\*.txt");

            List <FolderSegmentRule> filePathSegmentRules = rulesFactory.GenerateRules(false);

            Assert.That(filePathSegmentRules.Count, Is.EqualTo(1));
            Assert.That(filePathSegmentRules[0].Type, Is.EqualTo(EFolderSegmentType.MatchAnyFolderPattern));
            Assert.That(filePathSegmentRules[0].FolderNameRegexes, Has.Member(@"^.X.+Z$"));

            List <FolderSegmentRule> folderPathSegmentRules = rulesFactory.GenerateRules(true);

            Assert.That(folderPathSegmentRules.Count, Is.EqualTo(2));
            Assert.That(folderPathSegmentRules[0].Type, Is.EqualTo(EFolderSegmentType.MatchAnyFolderPattern));
            Assert.That(folderPathSegmentRules[0].FolderNameRegexes, Has.Member(@"^.X.+Z$"));
            Assert.That(folderPathSegmentRules[1].Type, Is.EqualTo(EFolderSegmentType.MatchAnyFolderPattern));
            Assert.That(folderPathSegmentRules[1].FolderNameRegexes, Has.Member(@"^.+\.txt$"));
        }
예제 #2
0
        public void NestedNamedFolderWithNestedDoubleStar()
        {
            var rulesFactory = new FolderRecurseRules();

            rulesFactory.AddGlobPath(@"Folder\**\*.txt");

            List <FolderSegmentRule> filePathSegmentRules = rulesFactory.GenerateRules(false);

            Assert.That(filePathSegmentRules.Count, Is.EqualTo(2));
            Assert.That(filePathSegmentRules[0].Type, Is.EqualTo(EFolderSegmentType.MatchAnyFolderPattern));
            Assert.That(filePathSegmentRules[0].FolderNameRegexes, Has.Member(@"^Folder$"));
            Assert.That(filePathSegmentRules[1].Type, Is.EqualTo(EFolderSegmentType.MatchZeroOrMOreFoldersRecursive));

            List <FolderSegmentRule> folderPathSegmentRules = rulesFactory.GenerateRules(true);

            Assert.That(folderPathSegmentRules.Count, Is.EqualTo(2));
            Assert.That(folderPathSegmentRules[0].Type, Is.EqualTo(EFolderSegmentType.MatchAnyFolderPattern));
            Assert.That(folderPathSegmentRules[0].FolderNameRegexes, Has.Member(@"^Folder$"));
            Assert.That(folderPathSegmentRules[1].Type, Is.EqualTo(EFolderSegmentType.MatchZeroOrMOreFoldersRecursive));
        }
예제 #3
0
        public void MergeDoubleStarBeyondCommonLengthWithSecondPathLonger()
        {
            var rulesFactory = new FolderRecurseRules();

            rulesFactory.AddGlobPath(@"Folder1\*.txt");
            rulesFactory.AddGlobPath(@"Folder2\**\*.txt");

            List <FolderSegmentRule> filePathSegmentRules = rulesFactory.GenerateRules(false);

            Assert.That(filePathSegmentRules.Count, Is.EqualTo(2));
            Assert.That(filePathSegmentRules[0].Type, Is.EqualTo(EFolderSegmentType.MatchAnyFolderPattern));
            Assert.That(filePathSegmentRules[0].FolderNameRegexes, Has.Member("^Folder1$"));
            Assert.That(filePathSegmentRules[0].FolderNameRegexes, Has.Member("^Folder2$"));
            Assert.That(filePathSegmentRules[1].Type, Is.EqualTo(EFolderSegmentType.MatchZeroOrMOreFoldersRecursive));

            List <FolderSegmentRule> folderPathSegmentRules = rulesFactory.GenerateRules(true);

            Assert.That(folderPathSegmentRules.Count, Is.EqualTo(2));
            Assert.That(folderPathSegmentRules[0].Type, Is.EqualTo(EFolderSegmentType.MatchAnyFolderPattern));
            Assert.That(folderPathSegmentRules[0].FolderNameRegexes, Has.Member("^Folder1$"));
            Assert.That(folderPathSegmentRules[0].FolderNameRegexes, Has.Member("^Folder2$"));
            Assert.That(folderPathSegmentRules[1].Type, Is.EqualTo(EFolderSegmentType.MatchZeroOrMOreFoldersRecursive));
        }
예제 #4
0
        public void NestedQuestionMarkFolder()
        {
            var rulesFactory = new FolderRecurseRules();

            rulesFactory.AddGlobPath(@"Folder\?\*.txt");

            List <FolderSegmentRule> filePathSegmentRules = rulesFactory.GenerateRules(false);

            Assert.That(filePathSegmentRules.Count, Is.EqualTo(2));
            Assert.That(filePathSegmentRules[0].Type, Is.EqualTo(EFolderSegmentType.MatchAnyFolderPattern));
            Assert.That(filePathSegmentRules[0].FolderNameRegexes, Has.Member(@"^Folder$"));
            Assert.That(filePathSegmentRules[1].Type, Is.EqualTo(EFolderSegmentType.MatchAnyFolderPattern));
            Assert.That(filePathSegmentRules[1].FolderNameRegexes, Has.Member(@"^.$"));

            List <FolderSegmentRule> folderPathSegmentRules = rulesFactory.GenerateRules(true);

            Assert.That(folderPathSegmentRules.Count, Is.EqualTo(3));
            Assert.That(folderPathSegmentRules[0].Type, Is.EqualTo(EFolderSegmentType.MatchAnyFolderPattern));
            Assert.That(folderPathSegmentRules[0].FolderNameRegexes, Has.Member(@"^Folder$"));
            Assert.That(folderPathSegmentRules[1].Type, Is.EqualTo(EFolderSegmentType.MatchAnyFolderPattern));
            Assert.That(folderPathSegmentRules[1].FolderNameRegexes, Has.Member(@"^.$"));
            Assert.That(folderPathSegmentRules[2].Type, Is.EqualTo(EFolderSegmentType.MatchAnyFolderPattern));
            Assert.That(folderPathSegmentRules[2].FolderNameRegexes, Has.Member(@"^.+\.txt$"));
        }