public FilteringTests() { _fileSystemInfo = new Mock <FileSystemInfo>(); _delegatesCallCount = 0; _startPath = "D://"; _visitor = new FileSystemVisitor.FileSystemVisitor(_startPath, (info) => false); }
public void VisitFiles_NoFiltersRegistered_ReturnsAllEntities() { Mock <IFileSystem> fileSystem = SetupFileSystem(10); IFileSystemVisitor visitor = new FileSystemVisitor.FileSystemVisitor(fileSystem.Object); var result = visitor.Visit(RootPath); Assert.AreEqual(10, result.Length); }
public void VisitFiles_FiltersRegistered_ReturnsZeroEntities() { Mock <IFileSystem> fileSystem = SetupFileSystem(10); IFileSystemVisitor visitor = new FileSystemVisitor.FileSystemVisitor(fileSystem.Object, info => info.Exists, info => info.Exists); var result = visitor.Visit(RootPath); Assert.AreEqual(0, result.Length); }
public void VisitFiles_FiltersRegistered_ReturnsAllFilteredEntities() { Mock <IFileSystem> fileSystem = SetupFileSystem(10); IFileSystemVisitor visitor = new FileSystemVisitor.FileSystemVisitor(fileSystem.Object, info => info.FullName.Contains(EntityName), info => info.FullName.Contains(EntityName)); var result = visitor.Visit(RootPath); Assert.AreEqual(10, result.Length); }
public void VisitFiles_SubscribeToStartEvent_EventWasCalled() { bool eventWasCalled = false; Mock <IFileSystem> fileSystem = SetupFileSystem(10); IFileSystemVisitor visitor = new FileSystemVisitor.FileSystemVisitor(fileSystem.Object); visitor.VisitingStarted += (sender, args) => eventWasCalled = true; visitor.Visit(RootPath); Assert.IsTrue(eventWasCalled); }
public void VisitFiles_AbortVisitingInFileFoundedEvent_VisitingAborted() { Mock <IFileSystem> fileSystem = SetupFileSystem(10); IFileSystemVisitor visitor = new FileSystemVisitor.FileSystemVisitor(fileSystem.Object); visitor.FileFounded += (sender, args) => throw new VisitingAbortedException(); var result = visitor.Visit(RootPath); Assert.AreEqual(0, result.Length); }
public Operation CreateOperation() { ILogger logger = new ConsoleLogger(); IFileSystem fileSystem = new FileSystem.FileSystem(); IFileSystemVisitor visitor = new FileSystemVisitor(fileSystem, info => info.Name.Contains("a"), info => info.Name.Contains("a")); Subscriber subscriber = new Subscriber(visitor, logger); return(new Operation(visitor, logger) { Subscriber = subscriber }); }
public void VisitFiles_SubscribeToFileFoundedEvent_SkipHalfOfElements() { var boolValue = false; Mock <IFileSystem> fileSystem = SetupFileSystem(10); IFileSystemVisitor visitor = new FileSystemVisitor.FileSystemVisitor(fileSystem.Object); visitor.FileFounded += (sender, args) => { boolValue = !boolValue; args.IsSkipVisitedEntity = boolValue; }; var result = visitor.Visit(RootPath); Assert.AreEqual(5, result.Length); }
public void VisitFiles_SetupFilter_SubscribeToFilteredFileFoundedEvent_SkipsHalfOfElementsAndAppliesFilter() { var boolValue = false; var boolValue2 = false; Mock <IFileSystem> fileSystem = SetupFileSystem(20); IFileSystemVisitor visitor = new FileSystemVisitor.FileSystemVisitor(fileSystem.Object, info => { boolValue2 = !boolValue2; return(boolValue2); }, info => info.Exists); visitor.FilteredFileFounded += (sender, args) => { boolValue = !boolValue; args.IsSkipVisitedEntity = boolValue; }; var result = visitor.Visit(RootPath); Assert.AreEqual(5, result.Length); }
static void Main(string[] args) { string startingPoint = "D:\\Терри Пратчетт Собрание сочинений"; var visitor = new FileSystemVisitor(startingPoint, (info) => true); visitor.Start += (s, e) => { Console.WriteLine("Start iteration"); }; visitor.Finish += (s, e) => { Console.WriteLine("Finish iteration"); }; visitor.FileFinded += (s, e) => { Console.WriteLine("Finded file: " + e.FindedItem.Name); }; visitor.FilteredFileFinded += (s, e) => { Console.WriteLine("Finded filtered file: " + e.FindedItem.Name); }; visitor.DirectoryFinded += (s, e) => { Console.WriteLine("Finded directory: " + e.FindedItem.Name); }; visitor.FilteredDirectoryFinded += (s, e) => { Console.WriteLine("Finded filtered directory: " + e.FindedItem.Name); }; foreach (var fileSysInfo in visitor.GetFileInfoSequence()) { Console.WriteLine(fileSysInfo); Console.ReadKey(); } }