public void When_IncludeSubfolders_Then_SubfoldersAreEnumerated() { _ = _finder.GetFiles("", true, IncludeFiles.All, ""); A.CallTo(() => _helpers.EnumerateFiles(A <string> ._, A <string> ._, SearchOption.AllDirectories)) .MustHaveHappened(); }
public void SetUp() { _permittedFiles = A.Fake <IReadOnlyPermittedFiles>(); _fileUploader = A.Fake <IFileUploader>(); _helpers = A.Fake <IHelpers>(); _appSettings = A.Fake <IAppSettings>(); _finder = new FileFinder(_fileUploader, _appSettings, _helpers); A.CallTo(() => _fileUploader.PermittedFiles) .Returns(_permittedFiles); A.CallTo(() => _permittedFiles.IsPermitted(A <string> .Ignored)) .ReturnsLazily((string fileName) => { var extension = Path.GetExtension(fileName); return(extension == ".jpg" || extension == ".png" || extension == ".foo"); }); A.CallTo(() => _helpers.EnumerateFiles(A <string> ._, "*", A <SearchOption> ._)) .Returns(new List <string> { "1.jpg", "2.png", "3.foo", "4.bar", "5.zoo" }); A.CallTo(() => _helpers.EnumerateFiles(A <string> ._, "*.zoo", A <SearchOption> ._)) .Returns(new List <string> { "5.zoo" }); A.CallTo(() => _appSettings.ImageExtensions) .Returns("jpg;png;zoo"); }
public IEnumerable <string> GetFiles(string folderPath, bool includeSubfolders, IncludeFiles includeFiles, string extension) { var pattern = includeFiles == IncludeFiles.SingleExtension ? "*." + extension : "*"; var searchOption = includeSubfolders ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly; var fileNames = _helpers.EnumerateFiles(folderPath, pattern, searchOption); if (includeFiles == IncludeFiles.Uploadable || includeFiles == IncludeFiles.Image) { fileNames = fileNames.Where(x => _fileUploader.PermittedFiles.IsPermitted(x)); if (includeFiles == IncludeFiles.Image) { var imageExtensions = _appSettings.ImageExtensions.Split(';').Select(x => "." + x.ToUpperInvariant()).ToList(); fileNames = fileNames.Where(x => imageExtensions.Contains(Path.GetExtension(x).ToUpperInvariant())); } } return(fileNames); }