Beispiel #1
0
        public FilteringTests()
        {
            _fileSystemInfo     = new Mock <FileSystemInfo>();
            _delegatesCallCount = 0;
            _startPath          = "D://";

            _visitor = new FileSystemVisitor.FileSystemVisitor(_startPath, (info) => false);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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);
        }
Beispiel #7
0
        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
            });
        }
Beispiel #8
0
        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);
        }
Beispiel #9
0
        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);
        }
Beispiel #10
0
        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();
            }
        }