Пример #1
0
        public void When_IncludeSubfolders_Then_SubfoldersAreEnumerated()
        {
            _ = _finder.GetFiles("", true, IncludeFiles.All, "");

            A.CallTo(() => _helpers.EnumerateFiles(A <string> ._, A <string> ._, SearchOption.AllDirectories))
            .MustHaveHappened();
        }
Пример #2
0
        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");
        }
Пример #3
0
        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);
        }