public async Task IncludesFile() { // Given TestFileProvider fileProvider = new TestFileProvider(); fileProvider.AddDirectory("/"); fileProvider.AddDirectory("/A"); fileProvider.AddDirectory("/A/B"); fileProvider.AddFile("/A/B/c.txt", "foo"); TestFileSystem fileSystem = new TestFileSystem { FileProvider = fileProvider }; fileSystem.InputPaths.Clear(); fileSystem.InputPaths.Add("/A"); TestExecutionContext context = new TestExecutionContext { FileSystem = fileSystem }; TestDocument document = new TestDocument(); KeyValuePair <string, string>[] args = new KeyValuePair <string, string>[] { new KeyValuePair <string, string>(null, "B/c.txt") }; IncludeShortcode shortcode = new IncludeShortcode(); // When TestDocument result = (TestDocument)await shortcode.ExecuteAsync(args, string.Empty, document, context); // Then result.Content.ShouldBe("foo"); }
public async Task IncludesWebResource() { // Given TestExecutionContext context = new TestExecutionContext { Engine = new TestEngine { HttpResponseFunc = (_, __) => new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent("Hello from the other side.") } } }; TestDocument document = new TestDocument(); KeyValuePair <string, string>[] args = new KeyValuePair <string, string>[] { new KeyValuePair <string, string>(null, "http://foo.com/bar") }; IncludeShortcode shortcode = new IncludeShortcode(); // When ShortcodeResult result = await shortcode.ExecuteAsync(args, string.Empty, document, context); // Then result.ContentProvider.GetStream().ReadToEnd().ShouldBe("Hello from the other side."); }
public async Task NullResultIfFileDoesNotExist() { // Given TestFileProvider fileProvider = new TestFileProvider(); fileProvider.AddDirectory("/"); fileProvider.AddDirectory("/A"); fileProvider.AddDirectory("/A/B"); fileProvider.AddFile("/A/B/c.txt", "foo"); TestFileSystem fileSystem = new TestFileSystem { FileProvider = fileProvider }; fileSystem.InputPaths.Clear(); fileSystem.InputPaths.Add("/A"); TestExecutionContext context = new TestExecutionContext { FileSystem = fileSystem }; context.TestLoggerProvider.ThrowLogLevel = LogLevel.Error; TestDocument document = new TestDocument(); KeyValuePair <string, string>[] args = new KeyValuePair <string, string>[] { new KeyValuePair <string, string>(null, "B/d.txt") }; IncludeShortcode shortcode = new IncludeShortcode(); // When ShortcodeResult result = await shortcode.ExecuteAsync(args, string.Empty, document, context); // Then result.ShouldBeNull(); }
public async Task IncludesFileRelativeToSource() { // Given TestFileProvider fileProvider = new TestFileProvider(); fileProvider.AddDirectory("/"); fileProvider.AddDirectory("/A"); fileProvider.AddDirectory("/A/B"); fileProvider.AddDirectory("/A/D"); fileProvider.AddFile("/A/B/c.txt", "foo"); TestFileSystem fileSystem = new TestFileSystem { FileProvider = fileProvider }; fileSystem.InputPaths.Clear(); fileSystem.InputPaths.Add("/A"); TestExecutionContext context = new TestExecutionContext { FileSystem = fileSystem }; TestDocument document = new TestDocument(new NormalizedPath("/A/D/x.txt"), (NormalizedPath)null); KeyValuePair <string, string>[] args = new KeyValuePair <string, string>[] { new KeyValuePair <string, string>(null, "../B/c.txt") }; IncludeShortcode shortcode = new IncludeShortcode(); // When ShortcodeResult result = await shortcode.ExecuteAsync(args, string.Empty, document, context); // Then result.ContentProvider.GetStream().ReadToEnd().ShouldBe("foo"); }