Exemplo n.º 1
0
        /// <inheritdoc />
        protected override IEnumerable <IDocument> Execute(IExecutionContext context)
        {
            DocumentFileProvider     fileProvider = new DocumentFileProvider(context.Inputs);
            IEnumerable <IDirectory> directories  = context.FileSystem
                                                    .GetInputDirectories()
                                                    .Select(x => fileProvider.GetDirectory(x.Path));
            IEnumerable <IFile> matches = directories.SelectMany(x => Globber.GetFiles(x, _patterns));

            return(matches.Select(x => x.Path).Distinct().Select(match => fileProvider.GetDocument(match)));
        }
            public void AddsParentDirectories()
            {
                // Given
                IEnumerable <TestDocument> documents = GetDocuments();

                // When
                DocumentFileProvider provider = new DocumentFileProvider(documents, true);

                // Then
                provider.GetDirectory("/input").Exists.ShouldBeTrue();
                provider.GetDirectory("/input/a").Exists.ShouldBeTrue();
                provider.GetDirectory("/input/c").Exists.ShouldBeTrue();
                provider.GetDirectory("/input/c/d").Exists.ShouldBeTrue();
            }
            public void UsesDestination()
            {
                // Given
                IEnumerable <TestDocument> documents = GetDocuments();

                // When
                DocumentFileProvider provider = new DocumentFileProvider(documents, false);

                // Then
                provider.GetFile("/input/a/a.md").Exists.ShouldBeFalse();
                provider.GetFile("/input/a/b.md").Exists.ShouldBeFalse();
                provider.GetFile("/input/c/d/c.md").Exists.ShouldBeFalse();
                provider.GetFile("/a/a.md").Exists.ShouldBeTrue();
                provider.GetFile("/a/b.md").Exists.ShouldBeTrue();
                provider.GetFile("/a/c.md").Exists.ShouldBeTrue();
            }