public void MergeWithSecondPathLonger() { var rulesFactory = new FolderRecurseRules(); rulesFactory.AddGlobPath(@"Folder1\*.txt"); rulesFactory.AddGlobPath(@"Folder2\Subfolder\*.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.MatchAnyFolderPattern)); Assert.That(filePathSegmentRules[1].FolderNameRegexes, Has.Member("^Subfolder$")); 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("^Folder1$")); Assert.That(folderPathSegmentRules[0].FolderNameRegexes, Has.Member("^Folder2$")); Assert.That(folderPathSegmentRules[1].Type, Is.EqualTo(EFolderSegmentType.MatchAnyFolderPattern)); Assert.That(folderPathSegmentRules[1].FolderNameRegexes, Has.Member("^Subfolder$")); Assert.That(folderPathSegmentRules[1].FolderNameRegexes, Has.Member(@"^.+\.txt$")); Assert.That(folderPathSegmentRules[2].Type, Is.EqualTo(EFolderSegmentType.MatchAnyFolderPattern)); Assert.That(folderPathSegmentRules[2].FolderNameRegexes.Count, Is.EqualTo(1)); Assert.That(folderPathSegmentRules[2].FolderNameRegexes, Has.Member(@"^.+\.txt$")); }
public void NestedNamedFolderWithInitialDoubleStar() { var rulesFactory = new FolderRecurseRules(); rulesFactory.AddGlobPath(@"**\Folder\*.txt"); List <FolderSegmentRule> filePathSegmentRules = rulesFactory.GenerateRules(false); Assert.That(filePathSegmentRules.Count, Is.EqualTo(1)); Assert.That(filePathSegmentRules[0].Type, Is.EqualTo(EFolderSegmentType.MatchZeroOrMOreFoldersRecursive)); List <FolderSegmentRule> folderPathSegmentRules = rulesFactory.GenerateRules(true); Assert.That(folderPathSegmentRules.Count, Is.EqualTo(1)); Assert.That(folderPathSegmentRules[0].Type, Is.EqualTo(EFolderSegmentType.MatchZeroOrMOreFoldersRecursive)); }
public void NoFolders() { var rulesFactory = new FolderRecurseRules(); rulesFactory.AddGlobPath(@"*.txt"); List <FolderSegmentRule> filePathSegmentRules = rulesFactory.GenerateRules(false); Assert.That(filePathSegmentRules.Count, Is.EqualTo(0)); List <FolderSegmentRule> folderPathSegmentRules = rulesFactory.GenerateRules(true); Assert.That(folderPathSegmentRules.Count, Is.EqualTo(1)); Assert.That(folderPathSegmentRules[0].Type, Is.EqualTo(EFolderSegmentType.MatchAnyFolderPattern)); Assert.That(folderPathSegmentRules[0].FolderNameRegexes, Has.Member(@"^.+\.txt$")); }
public void MergeDoubleStarWithinCommonLengthWithSecondPathLonger() { var rulesFactory = new FolderRecurseRules(); rulesFactory.AddGlobPath(@"Folder\*.txt"); rulesFactory.AddGlobPath(@"**\SubFolder\*.txt"); List <FolderSegmentRule> filePathSegmentRules = rulesFactory.GenerateRules(false); Assert.That(filePathSegmentRules.Count, Is.EqualTo(1)); Assert.That(filePathSegmentRules[0].Type, Is.EqualTo(EFolderSegmentType.MatchZeroOrMOreFoldersRecursive)); List <FolderSegmentRule> folderPathSegmentRules = rulesFactory.GenerateRules(true); Assert.That(folderPathSegmentRules.Count, Is.EqualTo(1)); Assert.That(folderPathSegmentRules[0].Type, Is.EqualTo(EFolderSegmentType.MatchZeroOrMOreFoldersRecursive)); }
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$")); }