Skip to content

Commit

Permalink
Improved tests
Browse files Browse the repository at this point in the history
  • Loading branch information
valterc committed Apr 18, 2023
1 parent cd5d11e commit 512b282
Show file tree
Hide file tree
Showing 3 changed files with 59 additions and 55 deletions.
55 changes: 0 additions & 55 deletions src/Markdig.Tests/TestStringLineGroup.cs

This file was deleted.

35 changes: 35 additions & 0 deletions src/Markdig.Tests/TestStringSliceList.cs
Original file line number Diff line number Diff line change
Expand Up @@ -180,4 +180,39 @@ static void Test<T>(T iterator) where T : ICharIterator
Assert.AreEqual('\0', iterator.CurrentChar); iterator.SkipChar();
}
}

[Test]
public void TestStringLineGroupCharIteratorAtCapacity()
{
string str = "ABCDEFGHI";
var text = new StringLineGroup(1)
{
// Will store the following line at capacity
new StringSlice(str, NewLine.CarriageReturnLineFeed) { Start = 0, End = 2 },
};

var iterator = text.ToCharIterator();
var chars = ToString(iterator);
TextAssert.AreEqual("ABC\r\n", chars.ToString());
TextAssert.AreEqual("ABC", text.ToString());
}

[Test]
public void TestStringLineGroupCharIteratorForcingIncreaseCapacity()
{
string str = "ABCDEFGHI";
var text = new StringLineGroup(1)
{
// Will store the following line at capacity
new StringSlice(str, NewLine.CarriageReturnLineFeed) { Start = 0, End = 2 },

// Will force increase capacity to 2 and store the line at capacity
new StringSlice(str, NewLine.CarriageReturnLineFeed) { Start = 3, End = 3 },
};

var iterator = text.ToCharIterator();
var chars = ToString(iterator);
TextAssert.AreEqual("ABC\r\nD\r\n", chars.ToString());
TextAssert.AreEqual("ABC\r\nD", text.ToString());
}
}
24 changes: 24 additions & 0 deletions src/Markdig.Tests/TestYamlFrontMatterExtension.cs
Original file line number Diff line number Diff line change
Expand Up @@ -83,4 +83,28 @@ public object Render(MarkdownObject markdownObject)
return null;
}
}

[TestCase("---\nkey1: value1\nkey2: value2\n---\n\n# Content\n")]
[TestCase("---\nkey1: value1\nkey2: value2\nkey3: value3\nkey4: value4\nkey5: value5\nkey6: value6\nkey7: value7\nkey8: value8\n---\n\n# Content\n")]
public void FrontMatterBlockLinesCharIterator(string value)
{
var builder = new MarkdownPipelineBuilder();
builder.Extensions.Add(new YamlFrontMatterExtension());
var markdownDocument = Markdown.Parse(value, builder.Build());

var yamlBlocks = markdownDocument.Descendants<YamlFrontMatterBlock>();
Assert.True(yamlBlocks.Any());

foreach (var yamlBlock in yamlBlocks)
{
var iterator = yamlBlock.Lines.ToCharIterator();
while(iterator.CurrentChar != '\0')
{
iterator.NextChar();
}
}

Assert.Pass("No exception parsing and iterating through YAML front matter block lines");
}

}

0 comments on commit 512b282

Please sign in to comment.