public void TestVisitFileReturnsFalseStopsWalking()
        {
            var visitor = new TestVisitFileReturnsFalseStopsWalkingVisitor()
            {
                FileSystemInfoFullNames           = GetFileSystemInfoFullNames(),
                StopWalkingAfterVisitFileFullName = _a1FileInfo.FullName,
            };
            var walker = DirectoryWalker.Create(visitor);

            walker.Walk(_tmpDirInfo);

            var prunedFileSystemInfoFullNames = new List <string>
            {
                _a2FileInfo.FullName,
                _c5FileInfo.FullName,
                _c6FileInfo.FullName,
                _cDirInfo.FullName,
            };

            for (int i = 0; i < visitor.FileSystemInfoFullNames.Count; i++)
            {
                Console.WriteLine("Pruned: " + visitor.FileSystemInfoFullNames[i]);
                Assert.That(visitor.FileSystemInfoFullNames[i] == prunedFileSystemInfoFullNames[i]);
            }
        }
        public void TestDepthFirstVisitAllFileSystemInfos()
        {
            var visitor = new TestDepthFirstVisitAllFileSystemInfosVisitor {
                FileSystemInfoFullNames = GetFileSystemInfoFullNames()
            };
            var walker = DirectoryWalker.Create(visitor);

            walker.Walk(_tmpDirInfo);
            Assert.AreEqual(0, visitor.FileSystemInfoFullNames.Count);
        }
        public void TestPreVisitFalsePrunesDirectory()
        {
            var visitor = new TestPreVisitFalsePrunesDirectoryVisitor
            {
                FileSystemInfoFullNames = GetFileSystemInfoFullNames(),
                PruneDirectoryFullName  = _abDirInfo.FullName,
            };
            var walker = DirectoryWalker.Create(visitor);

            walker.Walk(_tmpDirInfo);

            foreach (var fullName in visitor.FileSystemInfoFullNames)
            {
                Console.WriteLine("Pruned: " + fullName);
                Assert.That(fullName.StartsWith(_abDirInfo.FullName));
            }
        }