Skip to content

Commit

Permalink
Add tests for MarkdownParser class
Browse files Browse the repository at this point in the history
  • Loading branch information
dbelokon committed Nov 18, 2021
1 parent 500a1c6 commit f339935
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 1 deletion.
53 changes: 53 additions & 0 deletions glazed-donut.Tests/MarkdownParserTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using GlazedDonut.FileParsing.Parsing;
using Xunit;

namespace glazed_donut.Tests
{
public class MarkdownParserTests
{
[Fact]
public void ThrowException_WhenStreamIsNull()
{
ArgumentNullException e = Assert.Throws<ArgumentNullException>(() => {
var parser = new MarkdownParser(null);
});

Assert.NotNull(e);
}

[Fact]
public void ReturnEmptyParagraph_WhenStreamIsEmpty()
{
var str = "";
var stream = new MemoryStream(Encoding.UTF8.GetBytes(str));
var parser = new MarkdownParser(stream);

var htmlString = parser.Parse();

Assert.Equal("", htmlString);
}

[Theory, MemberData(nameof(ValidInputStringData))]
public void ReturnHtmlString_WhenParagraphIsValid(string input, string expectedHtml)
{
var stream = new MemoryStream(Encoding.UTF8.GetBytes(input));
var parser = new MarkdownParser(stream);

var htmlString = parser.Parse();

Assert.Equal(expectedHtml, htmlString);
}

public static IEnumerable<object[]> ValidInputStringData =>
new List<object[]>
{
new object[] { "Markdown", "<p>Markdown</p>\n" },
new object[] { "# Markdown", "<h1>Markdown</h1>\n" },
new object[] { "---", "<hr>" }
};
}
}
2 changes: 1 addition & 1 deletion glazed-donut/FileParsing/Parsing/MarkdownParser.cs
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ private string ProduceHtmlString(IEnumerable<string> paragraphs)
{
if (IsHeading(p))
{
htmlString += $"<h1>{p.Replace("\n", " ").Replace("#", string.Empty)}</h1>\n";
htmlString += $"<h1>{p.Replace("#", string.Empty).Trim()}</h1>\n";
}
else if (IsHorizontalLine(p))
{
Expand Down

0 comments on commit f339935

Please sign in to comment.