Пример #1
0
        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());
        }
Пример #2
0
            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);
            }
Пример #3
0
        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);
        }
Пример #6
0
        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);
        }
Пример #7
0
            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);
            }
Пример #8
0
        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);
        }
Пример #9
0
        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());
        }