public void ParaFormatting() { string markdown = @" para 1 *bold * ^italic^ _underline_ "; Markdown md = new Markdown(markdown); MDTester tester = new MDTester(md); tester.Next().TestIsBlankLine(); tester.Next().Test((para) => { Assert.IsTrue(para.Type == MarkdownType.Paragraph); MDTester ptest = new MDTester(para); ptest.Next().Test((node) => { Assert.IsTrue(node.Type == MarkdownType.Text); Assert.IsTrue(node.Text == "para 1 "); }); ptest.Next().Test((node) => { Assert.IsTrue(node.Type == MarkdownType.Bold); Assert.IsTrue(node.HasChildren); Assert.IsTrue(node.Children[0].Type == MarkdownType.Text); Assert.IsTrue(node.Children[0].Text == "bold "); }); ptest.Next().Test((node) => { Assert.IsTrue(node.Type == MarkdownType.Text); Assert.IsTrue(node.Text == " "); }); ptest.Next().Test((node) => { Assert.IsTrue(node.Type == MarkdownType.Italic); Assert.IsTrue(node.HasChildren); Assert.IsTrue(node.Children[0].Type == MarkdownType.Text); Assert.IsTrue(node.Children[0].Text == "italic"); }); ptest.Next().Test((node) => { Assert.IsTrue(node.Type == MarkdownType.Text); Assert.IsTrue(node.Text == " "); }); ptest.Next().Test((node) => { Assert.IsTrue(node.Type == MarkdownType.Underline); Assert.IsTrue(node.HasChildren); Assert.IsTrue(node.Children[0].Type == MarkdownType.Text); Assert.IsTrue(node.Children[0].Text == "underline"); }); }); tester.Next().TestIsBlankLine(); }
public void DetectsHeaders() { string markdown = @" #Heading No Space # Heading With Space ##Heading level 2 ### Heading level 3 " ; Markdown md = new Markdown(markdown); MDTester tester = new MDTester(md); Func <MarkdownNode, bool> isHeading = (n) => n.Type == MarkdownType.Heading1 || n.Type == MarkdownType.Heading2 || n.Type == MarkdownType.Heading3; tester.Next(n => isHeading(n)).Test((node) => { Assert.IsTrue(node.Type == MarkdownType.Heading1, "Heading 1 not correct"); Assert.IsTrue(node.Text == "Heading No Space", "Heading 1 not correct"); }); tester.Next(n => isHeading(n)).Test((node) => { Assert.IsTrue(node.Type == MarkdownType.Heading1, "Heading 2 not correct"); Assert.IsTrue(node.Text == "Heading With Space", "Heading 2 not correct"); }); tester.Next(n => isHeading(n)).Test((node) => { Assert.IsTrue(node.Type == MarkdownType.Heading2, "Heading 3 not correct"); Assert.IsTrue(node.Text == "Heading level 2", "Heading 3 not correct"); }); tester.Next(n => isHeading(n)).Test((node) => { Assert.IsTrue(node.Type == MarkdownType.Heading3, "Heading 4 not correct"); Assert.IsTrue(node.Text == "Heading level 3", "Heading 4 not correct"); }); }
public void DetectsParasAndLineBreaks() { string markdown = @" para 1 para 2 para 3 "; Markdown md = new Markdown(markdown); MDTester tester = new MDTester(md); tester.Next(n => n.Type == MarkdownType.Paragraph || n.Type == MarkdownType.BlankLine).Test((node) => { Assert.IsTrue(node.Type == MarkdownType.BlankLine); Assert.IsTrue(node.Text == null); }); tester.Next(n => n.Type == MarkdownType.Paragraph || n.Type == MarkdownType.BlankLine).Test((node) => { Assert.IsTrue(node.Type == MarkdownType.Paragraph); Assert.IsTrue(node.Text == null); Assert.IsTrue(node.HasChildren); Assert.IsTrue(node.Children[0].Text == "para 1"); Assert.IsTrue(node.Children[0].Type == MarkdownType.Text); }); tester.Next(n => n.Type == MarkdownType.Paragraph || n.Type == MarkdownType.BlankLine).Test((node) => { Assert.IsTrue(node.Type == MarkdownType.Paragraph); Assert.IsTrue(node.Text == null); Assert.IsTrue(node.HasChildren); Assert.IsTrue(node.Children[0].Text == "para 2"); Assert.IsTrue(node.Children[0].Type == MarkdownType.Text); }); tester.Next(n => n.Type == MarkdownType.Paragraph || n.Type == MarkdownType.BlankLine).Test((node) => { Assert.IsTrue(node.Type == MarkdownType.BlankLine); Assert.IsTrue(node.Text == null); }); tester.Next(n => n.Type == MarkdownType.Paragraph || n.Type == MarkdownType.BlankLine).Test((node) => { Assert.IsTrue(node.Type == MarkdownType.Paragraph); Assert.IsTrue(node.Text == null); Assert.IsTrue(node.HasChildren); Assert.IsTrue(node.Children[0].Text == "para 3"); Assert.IsTrue(node.Children[0].Type == MarkdownType.Text); }); tester.Next(n => n.Type == MarkdownType.Paragraph || n.Type == MarkdownType.BlankLine).Test((node) => { Assert.IsTrue(node.Type == MarkdownType.BlankLine); Assert.IsTrue(node.Text == null); }); }
public void DetectsBullets() { string markdown = @" - Item 1 - Item 2 - Item 3 #. Enum 1 #. Enum 2 #. Enum 3 " ; Markdown md = new Markdown(markdown); MDTester tester = new MDTester(md); tester.Next(n => n.Type == MarkdownType.Bulleted).Test((node) => { Assert.IsTrue(node.Text == "Item 1", "Bullet item was not found"); }); tester.Next(n => n.Type == MarkdownType.Bulleted).Test((node) => { Assert.IsTrue(node.Text == "Item 2", "Bullet item was not found"); }); tester.Next(n => n.Type == MarkdownType.Bulleted).Test((node) => { Assert.IsTrue(node.Text == "Item 3", "Bullet item was not found"); }); tester.Next(n => n.Type == MarkdownType.Numbered).Test((node) => { Assert.IsTrue(node.Text == "Enum 1", "Bullet item was not found"); }); tester.Next(n => n.Type == MarkdownType.Numbered).Test((node) => { Assert.IsTrue(node.Text == "Enum 2", "Bullet item was not found"); }); tester.Next(n => n.Type == MarkdownType.Numbered).Test((node) => { Assert.IsTrue(node.Text == "Enum 3", "Bullet item was not found"); }); }