예제 #1
0
        public void SearchPatternFindsCorrectFiles(string searchPattern, SearchOption searchOption, int expectedCount)
        {
            // Given
            Engine engine = new Engine();

            engine.Trace.AddListener(new TestTraceListener());
            engine.InputFolder = @"TestFiles\Input\";
            Metadata metadata = new Metadata(engine);
            Pipeline pipeline = new Pipeline("Pipeline", engine, null);

            IDocument[]       inputs    = { new Document(metadata, pipeline) };
            IExecutionContext context   = new ExecutionContext(engine, pipeline);
            ReadFiles         readFiles = new ReadFiles(searchPattern).WithSearchOption(searchOption);

            // When
            IEnumerable <IDocument> documents = readFiles.Execute(inputs, context);
            int count = documents.Count();

            // Then
            Assert.AreEqual(expectedCount, count);
        }
예제 #2
0
        public void SearchPatternWorksWithoutInputPathTrailingSlash()
        {
            // Given
            Engine engine = new Engine();

            engine.Trace.AddListener(new TestTraceListener());
            engine.InputFolder = @"TestFiles\Input";
            Metadata metadata = new Metadata(engine);
            Pipeline pipeline = new Pipeline("Pipeline", engine, null);

            IDocument[]       inputs    = { new Document(metadata, pipeline) };
            IExecutionContext context   = new ExecutionContext(engine, pipeline);
            ReadFiles         readFiles = new ReadFiles("*.txt");

            // When
            IEnumerable <IDocument> documents = readFiles.Execute(inputs, context);
            int count = documents.Count();

            // Then
            Assert.AreEqual(3, count);
        }
예제 #3
0
        public void WhereAndWithExtensionsGetsCorrectFiles()
        {
            // Given
            Engine engine = new Engine();

            engine.Trace.AddListener(new TestTraceListener());
            engine.InputFolder = @"TestFiles\Input";
            Metadata metadata = new Metadata(engine);
            Pipeline pipeline = new Pipeline("Pipeline", engine, null);

            IDocument[]       inputs    = { new Document(metadata, pipeline) };
            IExecutionContext context   = new ExecutionContext(engine, pipeline);
            ReadFiles         readFiles = new ReadFiles("*.*").Where(x => x.Contains("-c")).WithExtensions("txt");

            // When
            IEnumerable <IDocument> documents = readFiles.Execute(inputs, context);
            int count = documents.Count();

            // Then
            Assert.AreEqual(1, count);
        }
예제 #4
0
        public void RelativePathsAreConsistentBeforeAndAfterWriteFiles()
        {
            // Given
            Engine engine = new Engine();

            engine.Trace.AddListener(new TestTraceListener());
            engine.InputFolder  = @"TestFiles\Input";
            engine.OutputFolder = @"TestFiles\Output\";
            Pipeline pipeline = new Pipeline("Pipeline", engine, null);

            IDocument[]       inputs     = { new Document(engine, pipeline) };
            IExecutionContext context    = new ExecutionContext(engine, pipeline);
            ReadFiles         readFiles  = new ReadFiles(@"test-c.txt");
            WriteFiles        writeFiles = new WriteFiles("txt");

            // When
            IDocument readFilesDocument              = readFiles.Execute(inputs, context).First();
            object    readFilesRelativeFilePath      = readFilesDocument.Metadata[Keys.RelativeFilePath];
            object    readFilesRelativeFilePathBase  = readFilesDocument.Metadata[Keys.RelativeFilePathBase];
            object    readFilesRelativeFileDir       = readFilesDocument.Metadata[Keys.RelativeFileDir];
            IDocument writeFilesDocument             = writeFiles.Execute(new [] { readFilesDocument }, context).First();
            object    writeFilesRelativeFilePath     = writeFilesDocument.Metadata[Keys.RelativeFilePath];
            object    writeFilesRelativeFilePathBase = writeFilesDocument.Metadata[Keys.RelativeFilePathBase];
            object    writeFilesRelativeFileDir      = writeFilesDocument.Metadata[Keys.RelativeFileDir];

            foreach (IDocument document in inputs)
            {
                ((IDisposable)document).Dispose();
            }

            // Then
            Assert.AreEqual(@"Subfolder\test-c.txt", readFilesRelativeFilePath);
            Assert.AreEqual(@"Subfolder\test-c", readFilesRelativeFilePathBase);
            Assert.AreEqual(@"Subfolder", readFilesRelativeFileDir);
            Assert.AreEqual(@"Subfolder\test-c.txt", writeFilesRelativeFilePath);
            Assert.AreEqual(@"Subfolder\test-c", writeFilesRelativeFilePathBase);
            Assert.AreEqual(@"Subfolder", writeFilesRelativeFileDir);
            ((IDisposable)readFilesDocument).Dispose();
            ((IDisposable)writeFilesDocument).Dispose();
        }