1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
package parsers
import com.jetbrains.rd.util.first
import org.jetbrains.dokka.base.testApi.testRunner.BaseAbstractTest
import org.jetbrains.dokka.model.DEnum
import org.jetbrains.dokka.model.DModule
import org.jetbrains.dokka.model.doc.CodeBlock
import org.jetbrains.dokka.model.doc.CodeInline
import org.jetbrains.dokka.model.doc.Text
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Test
import utils.*
class JavadocParserTest : BaseAbstractTest() {
private val configuration = dokkaConfiguration {
sourceSets {
sourceSet {
sourceRoots = listOf("src/")
analysisPlatform = "jvm"
}
}
}
private fun performJavadocTest(testOperation: (DModule) -> Unit) {
val configuration = dokkaConfiguration {
sourceSets {
sourceSet {
sourceRoots = listOf("src/main/java")
}
}
}
testInline(
"""
|/src/main/java/sample/Date2.java
|
|package docs
|/**
| * class level docs
| */
|public enum AnEnumType {
| /**
| * content being refreshed, which can be a result of
| * invalidation, refresh that may contain content updates, or the initial load.
| */
| REFRESH
|}
""".trimIndent(),
configuration
) {
documentablesMergingStage = testOperation
}
}
@Test
fun `correctly parsed list`() {
performJavadocTest { module ->
val docs = (module.packages.single().classlikes.single() as DEnum).entries.single().documentation.values.single().children.single().root.text()
assertEquals("content being refreshed, which can be a result of invalidation, refresh that may contain content updates, or the initial load.", docs.trimEnd())
}
}
@Test
fun `code tag`() {
val source = """
|/src/main/kotlin/test/Test.java
|package example
|
| /**
| * Identifies calls to {@code assertThat}.
| *
| * {@code
| * Set<String> s;
| * System.out.println("s1 = " + s);
| * }
| * <pre>{@code
| * Set<String> s2;
| * System.out
| * .println("s2 = " + s2);
| * }</pre>
| *
| */
| public class Test {}
""".trimIndent()
testInline(
source,
configuration,
) {
documentablesCreationStage = { modules ->
val docs = modules.first().packages.first().classlikes.single().documentation.first().value
val root = docs.children.first().root
kotlin.test.assertEquals(
listOf(
Text(body = "Identifies calls to "),
CodeInline(children = listOf(Text(body = "assertThat"))),
Text(body = ". "),
CodeInline(children = listOf(Text(body = "\nSet<String> s;\nSystem.out.println(\"s1 = \" + s);\n")))
),
root.children[0].children
)
kotlin.test.assertEquals(
CodeBlock(children = listOf(Text(body = "\nSet<String> s2;\nSystem.out\n .println(\"s2 = \" + s2);\n"))),
root.children[1]
)
}
}
}
}
|