public void AccidentalOrderedList() { string source = @"1987\. What a great year to be born."; var expected = new TokenListBuilder() .String(0, 0, "1987. What a great year to be born."); Tokenizer nizer = new Tokenizer(); List<Token> actual = nizer.Tokenize(source); CollectionAssert.AreEqual(expected.List, actual); }
public void OneLine() { string source = @"I am amazing."; var expected = new TokenListBuilder() .String(0, 0, "I am amazing."); Tokenizer nizer = new Tokenizer(); List<Token> actual = nizer.Tokenize(source); CollectionAssert.AreEqual(expected.List, actual); }
public void Plus_OneItem() { string source = @"+ Item"; var expected = new TokenListBuilder() .UnorderedList(0, 0) .String(0, 2, "Item"); Tokenizer nizer = new Tokenizer(); List<Token> actual = nizer.Tokenize(source); CollectionAssert.AreEqual(expected.List, actual); }
public void OneItemLargeIndexNumber() { string source = @"123. Item"; var expected = new TokenListBuilder() .OrderedList(0, 0) .String(0, 5, "Item"); Tokenizer nizer = new Tokenizer(); List<Token> actual = nizer.Tokenize(source); CollectionAssert.AreEqual(expected.List, actual); }
public void Header1_OneLine_Valid() { string source = @"# Header1"; var expected = new TokenListBuilder() .Header1(0, 0) .String(0, 2, "Header1"); Tokenizer nizer = new Tokenizer(); List<Token> actual = nizer.Tokenize(source); CollectionAssert.AreEqual(expected.List, actual); }
public void StartText_OneLink_Http() { string source = @"[A link](http://domain.tld/folder/file.ext) in a text"; var expected = new TokenListBuilder() .LinkLabel(0, 0, "A link") .LinkUrl(0, 8, "http://domain.tld/folder/file.ext") .String(0, 43, " in a text"); Tokenizer nizer = new Tokenizer(); List<Token> actual = nizer.Tokenize(source); CollectionAssert.AreEqual(expected.List, actual); }
public void Header1_NewlineBefore_Valid() { string source = "\n# Header1"; var expected = new TokenListBuilder() .Newline(0, 0) .Header1(1, 0) .String(1, 2, "Header1"); Tokenizer nizer = new Tokenizer(); List<Token> actual = nizer.Tokenize(source); CollectionAssert.AreEqual(expected.List, actual); }
public void NestedOneLine() { string source = @">> something quoted"; var expected = new TokenListBuilder() .Blockquote(0, 0) .Blockquote(0, 1) .String(0, 3, "something quoted"); Tokenizer nizer = new Tokenizer(); List<Token> actual = nizer.Tokenize(source); CollectionAssert.AreEqual(expected.List, actual); }
public void EndText_OneLink_Http() { string source = @"This is a text with [a link](http://domain.tld/folder/file.ext)"; var expected = new TokenListBuilder() .String(0, 0, "This is a text with ") .LinkLabel(0, 20, "a link") .LinkUrl(0, 28, "http://domain.tld/folder/file.ext"); Tokenizer nizer = new Tokenizer(); List<Token> actual = nizer.Tokenize(source); CollectionAssert.AreEqual(expected.List, actual); }
public void Header2_NewlineAfter_Valid() { string source = @"## Header2 "; var expected = new TokenListBuilder() .Header2(0, 0) .String(0, 3, "Header2") .Newline(0, 10); Tokenizer nizer = new Tokenizer(); List<Token> actual = nizer.Tokenize(source); CollectionAssert.AreEqual(expected.List, actual); }
public void Empty_WithLang() { string source = @"```javascript ```"; var expected = new TokenListBuilder() .CodeOpen(0, 0, "javascript") .Newline(0, 13) .CodeClose(1, 0); Tokenizer nizer = new Tokenizer(); List<Token> actual = nizer.Tokenize(source); CollectionAssert.AreEqual(expected.List, actual); }
public void MultipleLines() { string source = @"I am amazing. And everyone knows it :)"; var expected = new TokenListBuilder() .String(0, 0, "I am amazing.") .Newline(0, 13) .String(1, 0, "And everyone knows it :)"); Tokenizer nizer = new Tokenizer(); List<Token> actual = nizer.Tokenize(source); CollectionAssert.AreEqual(expected.List, actual); }
public void Emphasis_EndText() { string source = @"He looks _strong_"; var expected = new TokenListBuilder() .String(0, 0, "He looks ") .Emphasis(0, 9) .String(0, 10, "strong") .Emphasis(0, 16); Tokenizer nizer = new Tokenizer(); List<Token> actual = nizer.Tokenize(source); CollectionAssert.AreEqual(expected.List, actual); }
public void Emphasis_StartText() { string source = @"_Strong_ words, sir."; var expected = new TokenListBuilder() .Emphasis(0, 0) .String(0, 1, "Strong") .Emphasis(0, 7) .String(0, 8, " words, sir."); Tokenizer nizer = new Tokenizer(); List<Token> actual = nizer.Tokenize(source); CollectionAssert.AreEqual(expected.List, actual); }
public void MultipleLines() { string source = @"> something quoted > second line"; var expected = new TokenListBuilder() .Blockquote(0, 0) .String(0, 2, "something quoted") .Newline(0, 18) .Blockquote(1, 0) .String(1, 2, "second line"); Tokenizer nizer = new Tokenizer(); List<Token> actual = nizer.Tokenize(source); CollectionAssert.AreEqual(expected.List, actual); }
public void Mixed_MidText() { string source = @"He looks *_strong_* tonight."; var expected = new TokenListBuilder() .String(0, 0, "He looks ") .Strong(0, 9) .Emphasis(0, 10) .String(0, 11, "strong") .Emphasis(0, 17) .Strong(0, 18) .String(0, 19, " tonight."); Tokenizer nizer = new Tokenizer(); List<Token> actual = nizer.Tokenize(source); CollectionAssert.AreEqual(expected.List, actual); }
public void Mixed_ThreeItems() { string source = @"- Item 1 * Item 2 + Item 3"; var expected = new TokenListBuilder() .UnorderedList(0, 0) .String(0, 2, "Item 1") .Newline(0, 8) .UnorderedList(1, 0) .String(1, 2, "Item 2") .Newline(1, 8) .UnorderedList(2, 0) .String(2, 2, "Item 3"); Tokenizer nizer = new Tokenizer(); List<Token> actual = nizer.Tokenize(source); CollectionAssert.AreEqual(expected.List, actual); }
public void ThreeItems() { string source = @"1. Item 1 2. Item 2 3. Item 3"; var expected = new TokenListBuilder() .OrderedList(0, 0) .String(0, 3, "Item 1") .Newline(0, 9) .OrderedList(1, 0) .String(1, 3, "Item 2") .Newline(1, 9) .OrderedList(2, 0) .String(2, 3, "Item 3"); Tokenizer nizer = new Tokenizer(); List<Token> actual = nizer.Tokenize(source); CollectionAssert.AreEqual(expected.List, actual); }
public void MixedNesting() { string source = @">> something quoted > more recent quote And this is now"; var expected = new TokenListBuilder() .Blockquote(0, 0) .Blockquote(0, 1) .String(0, 3, "something quoted") .Newline(0, 19) .Blockquote(1, 0) .String(1, 2, "more recent quote") .Newline(1, 19) .String(2, 0, "And this is now"); Tokenizer nizer = new Tokenizer(); List<Token> actual = nizer.Tokenize(source); CollectionAssert.AreEqual(expected.List, actual); }
public void ThreeLines_NewlineAfter_Valid() { string source = @"Header1 ======= "; var expected = new TokenListBuilder() .String(0, 0, "Header1") .Newline(0, 7) .StrongLine(1, 0) .StrongLine(1, 1) .StrongLine(1, 2) .StrongLine(1, 3) .StrongLine(1, 4) .StrongLine(1, 5) .StrongLine(1, 6) .Newline(1, 7); Tokenizer nizer = new Tokenizer(); List<Token> actual = nizer.Tokenize(source); CollectionAssert.AreEqual(expected.List, actual); }
public void ThreeLines_NewlineBefore_Valid() { string source = @" Header2 -------"; var expected = new TokenListBuilder() .Newline(0, 0) .String(1, 0, "Header2") .Newline(1, 7) .Line(2, 0) .Line(2, 1) .Line(2, 2) .Line(2, 3) .Line(2, 4) .Line(2, 5) .Line(2, 6); Tokenizer nizer = new Tokenizer(); List<Token> actual = nizer.Tokenize(source); CollectionAssert.AreEqual(expected.List, actual); }
public void JsLoop_NoLang() { string source = @"``` for (var i=0; i<10; i++) { // do something } ```"; var expected = new TokenListBuilder() .CodeOpen(0, 0, "plain") .Newline(0, 3) .Verbatim(1, 0, "for (var i=0; i<10; i++) {") .Newline(1, 26) .Verbatim(2, 0, "\t// do something") .Newline(2, 16) .Verbatim(3, 0, "}") .Newline(3, 1) .CodeClose(4, 0); Tokenizer nizer = new Tokenizer(); List<Token> actual = nizer.Tokenize(source); CollectionAssert.AreEqual(expected.List, actual); }
public void NonFormattingUse() { string source = @"He is a real * in this community. Words_With_Underscore. An _ in the middle of everything. Strange*Use of a star."; var expected = new TokenListBuilder() .String(0, 0, "He is a real * in this community.") .Newline(0, 33) .String(1, 0, "Words_With_Underscore.") .Newline(1, 22) .String(2, 0, "An _ in the middle of everything.") .Newline(2, 33) .String(3, 0, "Strange*Use of a star."); Tokenizer nizer = new Tokenizer(); List<Token> actual = nizer.Tokenize(source); CollectionAssert.AreEqual(expected.List, actual); }
public void TwoLines_NoText() { string source = @"> >"; var expected = new TokenListBuilder() .Blockquote(0, 0) .Newline(0, 1) .Blockquote(1, 0); Tokenizer nizer = new Tokenizer(); List<Token> actual = nizer.Tokenize(source); CollectionAssert.AreEqual(expected.List, actual); }
public void Strong_MidText() { string source = @"He looks *strong* tonight."; var expected = new TokenListBuilder() .String(0, 0, "He looks ") .Strong(0, 9) .String(0, 10, "strong") .Strong(0, 16) .String(0, 17, " tonight."); Tokenizer nizer = new Tokenizer(); List<Token> actual = nizer.Tokenize(source); CollectionAssert.AreEqual(expected.List, actual); }
public void TooManyHashes() { string source = @"#### Header"; Tokenizer nizer = new Tokenizer(); try { nizer.Tokenize(source); Assert.Fail("A syntax exception should have been thrown"); } catch (SyntaxException) { // hephey } }