generated from rnentjes/kotlin-server-web-empty
Add comprehensive assertions to ParseTest for validating Markdown parsing, removing printMarkdownParts debug method, and refining test coverage.
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package nl.astraeus.markdown.parser
|
||||
|
||||
import kotlin.test.Test
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
class ParseTest {
|
||||
|
||||
@@ -19,7 +20,25 @@ class ParseTest {
|
||||
|
||||
val md = markdown(input)
|
||||
|
||||
printMarkdownParts(md)
|
||||
assertEquals(3, md.size)
|
||||
val p1 = md[0] as MarkdownPart.Paragraph
|
||||
assertEquals("Dit is een ", (p1.parts[0] as MarkdownPart.ParagraphPart.Text).text)
|
||||
assertEquals("test", (p1.parts[1] as MarkdownPart.ParagraphPart.Bold).text)
|
||||
assertEquals(", laat ", (p1.parts[2] as MarkdownPart.ParagraphPart.Text).text)
|
||||
assertEquals("mij", (p1.parts[3] as MarkdownPart.ParagraphPart.BoldItalic).text)
|
||||
assertEquals(" maar eens zien!\n\n", (p1.parts[4] as MarkdownPart.ParagraphPart.Text).text)
|
||||
|
||||
val p2 = md[1] as MarkdownPart.Paragraph
|
||||
assertEquals("link: ", (p2.parts[0] as MarkdownPart.ParagraphPart.Text).text)
|
||||
val link = p2.parts[1] as MarkdownPart.ParagraphPart.Link
|
||||
assertEquals("www.nos.nl ", link.url)
|
||||
assertEquals("NOS", link.label)
|
||||
assertEquals("Nos title", link.title)
|
||||
assertEquals(" of zo.\n\n", (p2.parts[2] as MarkdownPart.ParagraphPart.Text).text)
|
||||
|
||||
val l1 = md[2] as MarkdownPart.UnorderedList
|
||||
assertEquals(1, l1.lines.size)
|
||||
assertEquals("link: [NU](www.nu.nl \"Nu site\") of zo.", l1.lines[0].text)
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -31,7 +50,11 @@ class ParseTest {
|
||||
|
||||
val md = markdown(input)
|
||||
|
||||
printMarkdownParts(md)
|
||||
assertEquals(1, md.size)
|
||||
val p = md[0] as MarkdownPart.Paragraph
|
||||
val img = p.parts[0] as MarkdownPart.ParagraphPart.Image
|
||||
assertEquals("test2", img.alt)
|
||||
assertEquals("https://upload.wikimedia.org/wikipedia/commons.png", img.src)
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -47,7 +70,10 @@ class ParseTest {
|
||||
|
||||
val md = markdown(input)
|
||||
|
||||
printMarkdownParts(md)
|
||||
assertEquals(3, md.size)
|
||||
assertEquals("Dit is een text\n\n", (md[0] as MarkdownPart.Paragraph).parts[0].let { (it as MarkdownPart.ParagraphPart.Text).text })
|
||||
assertEquals("Code block\nCode block\n\n", (md[1] as MarkdownPart.CodeBlock).text)
|
||||
assertEquals("Meer text\n\n", (md[2] as MarkdownPart.Paragraph).parts[0].let { (it as MarkdownPart.ParagraphPart.Text).text })
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -65,7 +91,12 @@ class ParseTest {
|
||||
|
||||
val md = markdown(input)
|
||||
|
||||
printMarkdownParts(md)
|
||||
assertEquals(3, md.size)
|
||||
val list = md[1] as MarkdownPart.UnorderedList
|
||||
assertEquals(2, list.lines.size)
|
||||
assertEquals("First More text", list.lines[0].text)
|
||||
assertEquals("Second More text", list.lines[1].text)
|
||||
assertEquals("Another paragraph\n\n", (md[2] as MarkdownPart.Paragraph).parts[0].let { (it as MarkdownPart.ParagraphPart.Text).text })
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -81,7 +112,19 @@ class ParseTest {
|
||||
|
||||
val md = markdown(input)
|
||||
|
||||
printMarkdownParts(md)
|
||||
assertEquals(1, md.size)
|
||||
val list = md[0] as MarkdownPart.UnorderedList
|
||||
assertEquals(6, list.lines.size)
|
||||
assertEquals("First", list.lines[0].text)
|
||||
assertEquals(0, list.lines[0].indentation)
|
||||
assertEquals("Second", list.lines[1].text)
|
||||
assertEquals("2.1", list.lines[2].text)
|
||||
assertEquals(2, list.lines[2].indentation)
|
||||
assertEquals("2.1.1", list.lines[3].text)
|
||||
assertEquals(4, list.lines[3].indentation)
|
||||
assertEquals("2.1.1", list.lines[4].text)
|
||||
assertEquals(6, list.lines[4].indentation)
|
||||
assertEquals("3", list.lines[5].text)
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -99,7 +142,11 @@ class ParseTest {
|
||||
|
||||
val md = markdown(input)
|
||||
|
||||
printMarkdownParts(md)
|
||||
assertEquals(3, md.size)
|
||||
val list = md[1] as MarkdownPart.UnorderedList
|
||||
assertEquals(2, list.lines.size)
|
||||
assertEquals("First More text", list.lines[0].text)
|
||||
assertEquals("Second More text", list.lines[1].text)
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -119,7 +166,15 @@ class ParseTest {
|
||||
|
||||
val md = markdown(input)
|
||||
|
||||
printMarkdownParts(md)
|
||||
assertEquals(3, md.size)
|
||||
val list = md[1] as MarkdownPart.UnorderedList
|
||||
assertEquals(4, list.lines.size)
|
||||
assertEquals("First More text", list.lines[0].text)
|
||||
assertEquals("Second More text", list.lines[1].text)
|
||||
assertEquals("Sub 1", list.lines[2].text)
|
||||
assertEquals(2, list.lines[2].indentation)
|
||||
assertEquals("Sub 2", list.lines[3].text)
|
||||
assertEquals(2, list.lines[3].indentation)
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -140,7 +195,12 @@ class ParseTest {
|
||||
|
||||
val md = markdown(input)
|
||||
|
||||
printMarkdownParts(md)
|
||||
assertEquals(3, md.size)
|
||||
val list = md[1] as MarkdownPart.OrderedList
|
||||
assertEquals(5, list.lines.size)
|
||||
assertEquals(" First More text", list.lines[0].text)
|
||||
assertEquals(" Sub 1", list.lines[2].text)
|
||||
assertEquals(2, list.lines[2].indentation)
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -158,7 +218,11 @@ class ParseTest {
|
||||
|
||||
val md = markdown(input)
|
||||
|
||||
printMarkdownParts(md)
|
||||
assertEquals(3, md.size)
|
||||
val list = md[1] as MarkdownPart.OrderedList
|
||||
assertEquals(2, list.lines.size)
|
||||
assertEquals("First More text", list.lines[0].text)
|
||||
assertEquals("Second More text", list.lines[1].text)
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -177,7 +241,15 @@ class ParseTest {
|
||||
|
||||
val md = markdown(input)
|
||||
|
||||
printMarkdownParts(md)
|
||||
assertEquals(3, md.size)
|
||||
val list = md[1] as MarkdownPart.CheckboxList
|
||||
assertEquals(3, list.lines.size)
|
||||
assertEquals(false, list.lines[0].checked)
|
||||
assertEquals("Not checked, with some more text here", list.lines[0].text)
|
||||
assertEquals(true, list.lines[1].checked)
|
||||
assertEquals("Checked!", list.lines[1].text)
|
||||
assertEquals(true, list.lines[2].checked)
|
||||
assertEquals("Checked, text it!", list.lines[2].text)
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -192,7 +264,12 @@ class ParseTest {
|
||||
|
||||
val md = markdown(input)
|
||||
|
||||
printMarkdownParts(md)
|
||||
assertEquals(2, md.size)
|
||||
assertEquals("Todo", (md[0] as MarkdownPart.Header).text)
|
||||
val list = md[1] as MarkdownPart.CheckboxList
|
||||
assertEquals(2, list.lines.size)
|
||||
assertEquals(false, list.lines[0].checked)
|
||||
assertEquals(true, list.lines[1].checked)
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -220,7 +297,11 @@ class ParseTest {
|
||||
|
||||
val md = markdown(input)
|
||||
|
||||
printMarkdownParts(md)
|
||||
assertEquals(5, md.size)
|
||||
assertEquals(MarkdownPart.CheckboxList::class, md[1]::class)
|
||||
assertEquals(MarkdownPart.CheckboxList::class, md[3]::class)
|
||||
val list2 = md[3] as MarkdownPart.CheckboxList
|
||||
assertEquals(2, list2.lines[0].indentation)
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -247,7 +328,18 @@ class ParseTest {
|
||||
|
||||
val md = markdown(input)
|
||||
|
||||
printMarkdownParts(md)
|
||||
assertEquals(5, md.size)
|
||||
val list1 = md[1] as MarkdownPart.CheckboxList
|
||||
assertEquals(3, list1.lines.size)
|
||||
assertEquals(0, list1.lines[0].indentation)
|
||||
assertEquals(0, list1.lines[1].indentation)
|
||||
assertEquals(2, list1.lines[2].indentation)
|
||||
|
||||
val list2 = md[3] as MarkdownPart.CheckboxList
|
||||
assertEquals(3, list2.lines.size)
|
||||
assertEquals(2, list2.lines[0].indentation)
|
||||
assertEquals(4, list2.lines[1].indentation)
|
||||
assertEquals(2, list2.lines[2].indentation)
|
||||
}
|
||||
|
||||
|
||||
@@ -261,7 +353,11 @@ class ParseTest {
|
||||
|
||||
val md = markdown(input)
|
||||
|
||||
printMarkdownParts(md)
|
||||
assertEquals(2, md.size)
|
||||
val list = md[1] as MarkdownPart.CheckboxList
|
||||
assertEquals(2, list.lines.size)
|
||||
assertEquals(false, list.lines[0].checked)
|
||||
assertEquals(true, list.lines[1].checked)
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -270,18 +366,12 @@ class ParseTest {
|
||||
|
||||
val md = markdown(input)
|
||||
|
||||
printMarkdownParts(md)
|
||||
assertEquals(2, md.size)
|
||||
assertEquals("Markdown", (md[0] as MarkdownPart.Header).text)
|
||||
assertEquals(1, (md[0] as MarkdownPart.Header).size)
|
||||
val p = md[1] as MarkdownPart.Paragraph
|
||||
assertEquals("My ", (p.parts[0] as MarkdownPart.ParagraphPart.Text).text)
|
||||
assertEquals("markdown", (p.parts[1] as MarkdownPart.ParagraphPart.Bold).text)
|
||||
}
|
||||
|
||||
private fun printMarkdownParts(md: List<MarkdownPart>) {
|
||||
for (part in md) {
|
||||
if (part is MarkdownPart.Paragraph) {
|
||||
for (para in part.parts) {
|
||||
println("PARA: ${para::class.simpleName} - ${para.toString().take(75)}")
|
||||
}
|
||||
} else {
|
||||
println("PART: ${part::class.simpleName} - ${part.toString().take(75)}")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user