blob: 961ce5f5731037998b9f07c423f153ca0688f932 (
plain)
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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
|
package content.annotations
import matchers.content.*
import org.jetbrains.dokka.base.testApi.testRunner.BaseAbstractTest
import org.jetbrains.dokka.base.transformers.documentables.deprecatedAnnotation
import org.jetbrains.dokka.base.transformers.documentables.isDeprecated
import org.jetbrains.dokka.model.Documentable
import org.jetbrains.dokka.model.properties.WithExtraProperties
import org.jetbrains.dokka.pages.ContentPage
import org.jetbrains.dokka.pages.ContentStyle
import org.junit.jupiter.api.Test
import utils.pWrapped
import kotlin.test.assertEquals
import kotlin.test.assertTrue
class JavaDeprecatedTest : BaseAbstractTest() {
private val testConfiguration = dokkaConfiguration {
sourceSets {
sourceSet {
sourceRoots = listOf("src/")
analysisPlatform = "jvm"
}
}
}
@Test
@Suppress("UNCHECKED_CAST")
fun `should assert util functions for deprecation`() {
testInline(
"""
|/src/main/kotlin/deprecated/DeprecatedJavaClass.java
|package deprecated
|
|@Deprecated(forRemoval = true)
|public class DeprecatedJavaClass {}
""".trimIndent(),
testConfiguration
) {
documentablesTransformationStage = { module ->
val deprecatedClass = module.children
.single { it.name == "deprecated" }.children
.single { it.name == "DeprecatedJavaClass" }
val isDeprecated = (deprecatedClass as WithExtraProperties<out Documentable>).isDeprecated()
assertTrue(isDeprecated)
val deprecatedAnnotation = (deprecatedClass as WithExtraProperties<out Documentable>).deprecatedAnnotation
checkNotNull(deprecatedAnnotation)
assertTrue(deprecatedAnnotation.isDeprecated())
assertEquals("java.lang", deprecatedAnnotation.dri.packageName)
assertEquals("Deprecated", deprecatedAnnotation.dri.classNames)
}
}
}
@Test
fun `should change deprecated header if marked for removal`() {
testInline(
"""
|/src/main/kotlin/deprecated/DeprecatedJavaClass.java
|package deprecated
|
|/**
| * Average function description
| */
|@Deprecated(forRemoval = true)
|public class DeprecatedJavaClass {}
""".trimIndent(),
testConfiguration
) {
pagesTransformationStage = { module ->
val deprecatedJavaClass = module.children
.single { it.name == "deprecated" }.children
.single { it.name == "DeprecatedJavaClass" } as ContentPage
deprecatedJavaClass.content.assertNode {
group {
header(1) { +"DeprecatedJavaClass" }
platformHinted {
skipAllNotMatching()
group {
header(3) {
+"Deprecated (for removal)"
}
}
group { pWrapped("Average function description") }
}
}
skipAllNotMatching()
}
}
}
}
@Test
fun `should add footnote for 'since' param`() {
testInline(
"""
|/src/main/kotlin/deprecated/DeprecatedJavaClass.java
|package deprecated
|
|/**
| * Average function description
| */
|@Deprecated(since = "11")
|public class DeprecatedJavaClass {}
""".trimIndent(),
testConfiguration
) {
pagesTransformationStage = { module ->
val deprecatedJavaClass = module.children
.single { it.name == "deprecated" }.children
.single { it.name == "DeprecatedJavaClass" } as ContentPage
deprecatedJavaClass.content.assertNode {
group {
header(1) { +"DeprecatedJavaClass" }
platformHinted {
skipAllNotMatching()
group {
header(3) {
+"Deprecated"
}
group {
check { assertEquals(ContentStyle.Footnote, this.style.firstOrNull()) }
+"Since version 11"
}
}
group { pWrapped("Average function description") }
}
}
skipAllNotMatching()
}
}
}
}
}
|