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$")); }
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)); }
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)); }
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$")); }