public void render_with_ContentTransformer_exception_should_trace_the_error() { fileSystem.AddFile(@"C:\TestSite\SomeFile.md", new MockFileData("---\r\n---# Title\r\n[foo]")); StringBuilder sb = new StringBuilder(); TextWriter writer = new StringWriter(sb); Tracing.Logger.SetWriter(writer); Tracing.Logger.AddCategory(Tracing.Category.Info); Tracing.Logger.AddCategory(Tracing.Category.Error); Tracing.Logger.AddCategory(Tracing.Category.Debug); var contentTransformer = Substitute.For <IContentTransform>(); contentTransformer.Transform(Arg.Any <string>()).Returns(s => { throw new Exception("foo bar"); }); var generator = new SiteContextGenerator(fileSystem, new[] { contentTransformer }, new LinkHelper()); // act var siteContext = generator.BuildContext(@"C:\TestSite", @"C:\TestSite\_site", false); Assert.Equal(1, siteContext.Pages.Count); Assert.Equal("<p><b>Error converting markdown</b></p><pre>---\r\n---# Title\r\n[foo]</pre>", siteContext.Pages[0].Content); Assert.Contains(@"Error (foo bar) converting C:\TestSite\SomeFile.md", sb.ToString()); Assert.Contains(@"System.Exception: foo bar", sb.ToString()); }
public override void When() { FileSystem.AddFile(@"C:\website\_layouts\default.html", new MockFileData(TemplateContents)); FileSystem.AddFile(@"C:\website\index.md", new MockFileData(PageContents)); var generator = new SiteContextGenerator(FileSystem, Enumerable.Empty <IContentTransform>()); var context = generator.BuildContext(@"C:\website\", false); Subject.FileSystem = FileSystem; Subject.Process(context); }
public override void When() { FileSystem.AddFile(@"C:\website\_layouts\default.cshtml", new MockFileData(TemplateContents)); FileSystem.AddFile(@"C:\website\index.cshtml", new MockFileData(IndexContents)); var generator = new SiteContextGenerator(FileSystem, new LinkHelper(), new Configuration()); var context = generator.BuildContext(@"C:\website\", @"C:\website\_site", false); Subject.FileSystem = FileSystem; Subject.Process(context); }
public void permalink_is_well_formatted(string permalink, string expectedUrl, string categories) { generator = new SiteContextGenerator(fileSystem, new LinkHelper(), new ConfigurationMock(string.Format("permalink: {0}", permalink))); fileSystem.AddFile(@"C:\TestSite\_posts\2015-03-09-foobar-baz.md", new MockFileData(string.Format(@"--- categories: [{0}] ---# Title", categories))); // act var siteContext = generator.BuildContext(@"C:\TestSite", @"C:\TestSite\_site", false); var firstPost = siteContext.Posts.First(); Assert.Equal(expectedUrl, firstPost.Url); }
public void permalink_with_folder_categories_frontmatter_only() { generator = new SiteContextGenerator(fileSystem, new LinkHelper(), new ConfigurationMock(@"only_frontmatter_categories: true")); fileSystem.AddFile(@"C:\TestSite\foo\bar\_posts\2015-03-09-SomeFile.md", new MockFileData(@"--- categories: [cat1, cat2] ---# Title")); var outputPath = "/cat1/cat2/2015/03/09/SomeFile.html"; // act var siteContext = generator.BuildContext(@"C:\TestSite", @"C:\TestSite\_site", false); var firstPost = siteContext.Posts.First(); Assert.Equal(outputPath, firstPost.Url); }
public override void When() { FileSystem.AddFile(@"C:\website\index.md", new MockFileData(PageContent)); var generator = new SiteContextGenerator(FileSystem, new LinkHelper(), new ConfigurationMock(ConfigContents)); var context = generator.BuildContext(@"C:\website\", @"C:\website\_site", false); Subject.FileSystem = FileSystem; Subject.TagFactories = new List <TagFactoryBase> { new CustomTagFactory() }; Subject.Process(context); }
public override void When() { FileSystem.AddFile(@"C:\website\_layouts\default.html", new MockFileData(TemplateContents)); FileSystem.AddFile(@"C:\website\index.md", new MockFileData(IndexContents)); for (var i = 1; i <= 7; i++) { FileSystem.AddFile(String.Format(@"C:\website\_posts\2012-02-0{0}-p{0}.md", i), new MockFileData(PostContents)); } var generator = new SiteContextGenerator(FileSystem, Enumerable.Empty <IContentTransform>()); var context = generator.BuildContext(@"C:\website\", false); Subject.FileSystem = FileSystem; Subject.Process(context); }
public override void When() { FileSystem.AddFile(@"C:\website\_layouts\default.cshtml", new MockFileData(TemplateContents)); FileSystem.AddFile(@"C:\website\index.md", new MockFileData(IndexContents)); for (var i = 1; i <= 7; i++) { FileSystem.AddFile(String.Format(@"C:\website\_posts\2012-02-0{0}-p{0}.md", i), new MockFileData(String.Format(PostContents, i))); } var generator = new SiteContextGenerator(FileSystem, new LinkHelper(), new Configuration()); var context = generator.BuildContext(@"C:\website\", @"C:\website\_site", false); Subject.FileSystem = FileSystem; Subject.Process(context); }
public void render_with_ContentTransformer_should_transform_content() { fileSystem.AddFile(@"C:\TestSite\SomeFile.md", new MockFileData(@"--- ---# Title [foo]")); var contentTransformer = Substitute.For <IContentTransform>(); contentTransformer.Transform(Arg.Any <string>()).Returns(s => s[0].ToString().Replace("[foo]", "bar")); var generator = new SiteContextGenerator(fileSystem, new[] { contentTransformer }, new LinkHelper()); // act var siteContext = generator.BuildContext(@"C:\TestSite", @"C:\TestSite\_site", false); Assert.Equal(1, siteContext.Pages.Count); Assert.Equal("<h1>Title</h1><p>bar</p>", siteContext.Pages[0].Content.RemoveWhiteSpace()); }