public void Directories() { Config_Masks masks = new Config_Masks { MasksExclude = false, Masks = new[] { ".xml" }, }; FileUtils.GetDirectories getDirectories = path => { switch (path) { case "root": return(new[] { "include", "exclude" }); default: return(new string[] { }); } }; FileUtils.GetFiles getFiles = path => { Console.WriteLine($"getFiles({path})"); switch (path) { case @"root\include": return(new[] { "file_in_include.xml", "trash.tmp" }); case @"root\exclude": return(new[] { "file_in_exclude.xml" }); default: return(new string[] {}); } }; var files = FileUtils.GetFilesInDirectory(@"root", masks, getFiles, getDirectories); CollectionAssert.AreEqual(new[] { "file_in_include.xml", "file_in_exclude.xml" }, files.ToArray()); masks.DirectoriesExcluded = new[] { "exclude" }; files = FileUtils.GetFilesInDirectory(@"root", masks, getFiles, getDirectories); CollectionAssert.AreEqual(new[] { "file_in_include.xml" }, files.ToArray()); }
public void CaseInsensetiveFiles() { Config_Masks masks = new Config_Masks { DirectoriesExcluded = new string[] { }, Masks = new[] { ".bin" } }; var files = new[] { "TEST.BIN", "test2.Bin", "test3.BIN", "test4.bIN", "test5.bin" }; // ReSharper disable once AccessToModifiedClosure FileUtils.GetFiles getFiles = _ => files; FileUtils.GetDirectories getDirectories = _ => { return(new string[] { }); }; var result = FileUtils.GetFilesInDirectory(@"root", masks, getFiles, getDirectories); CollectionAssert.AreEqual(files, result.ToArray()); }
public void SimpleFiles() { Config_Masks masks = new Config_Masks { DirectoriesExcluded = new string[] {}, Masks = new[] { ".ini", ".exe" } }; FileUtils.GetFiles getFiles = _ => { return(new[] { "test.exe", "test.ini", "test.dat", "test.dbf", "test2.exe" }); }; FileUtils.GetDirectories getDirectories = _ => { return(new string[] { }); }; var files = FileUtils.GetFilesInDirectory(@"root", masks, getFiles, getDirectories); CollectionAssert.AreEqual(new[] { "test.exe", "test.ini", "test2.exe" }, files.ToArray()); masks.MasksExclude = true; files = FileUtils.GetFilesInDirectory(@"root", masks, getFiles, getDirectories); CollectionAssert.AreEqual(new[] { "test.dat", "test.dbf" }, files.ToArray()); }