/// <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(); }