public void SkipCharacters() { var markdown = new StringMarkdownEnumerable("abcde"); markdown.SkipCharacters(2); markdown.GetNextChar().Should().Be('c'); }
private StringMarkdownEnumerable ParseUntil(string markdown, Tag tag, TagType tagPosition, out TagInfo stoppedAt) { var markdownEnumerable = new StringMarkdownEnumerable(markdown); var tagInfo = TagInfo.Create(tag, tagPosition); markdownEnumerable.ParseUntil(new[] { tagInfo }, out stoppedAt); return(markdownEnumerable); }
public void AtSpecifiedPosition_FindNextTag(string markdown, int position, Tag expectedTag, TagPosition expectedPosition, int expectedPart) { var markdownEnumerable = new StringMarkdownEnumerable(markdown); markdownEnumerable.SkipCharacters(position); var expectedTagInfo = TagInfo.Create(expectedTag, new TagType(expectedPosition, expectedPart)); var returnedTagInfo = markdownEnumerable.GetNextTag(new[] { expectedTagInfo }); returnedTagInfo.Should().Be(expectedTagInfo); }
public void ReturnAllNextChars(string markdown) { var enumerable = new StringMarkdownEnumerable(markdown); var allChars = new StringBuilder(); while (!enumerable.IsFinished()) { allChars.Append(enumerable.GetNextChar()); } allChars.ToString().Should().Be(markdown.Replace(@"\", "")); }
public void ParseUntilManyTags() { var tags = new[] { new SimpleTagInfo(Tag.Strong, TagPosition.Opening), new SimpleTagInfo(Tag.Strong, TagPosition.Closing), new SimpleTagInfo(Tag.Italic, TagPosition.Opening) }; var markdownEnumerable = new StringMarkdownEnumerable("a_ __b"); TagInfo stoppedAt; string parsed = markdownEnumerable.ParseUntil(tags, out stoppedAt); parsed.Should().Be("a_ "); }