aboutsummaryrefslogtreecommitdiff
path: root/plugins/base/src/test/kotlin/translators
diff options
context:
space:
mode:
authorAndrey Tyrin <andrei.tyrin@jetbrains.com>2023-01-12 20:03:06 +0100
committerGitHub <noreply@github.com>2023-01-12 20:03:06 +0100
commit303c937a7c33fa9df5c28079c423ee071e87e410 (patch)
tree6849bd6114d2711fe49be4d9f06a7fc089399c38 /plugins/base/src/test/kotlin/translators
parent8d1536bdbadbab7e1b89902b0cc920c36a6103ad (diff)
downloaddokka-303c937a7c33fa9df5c28079c423ee071e87e410.tar.gz
dokka-303c937a7c33fa9df5c28079c423ee071e87e410.tar.bz2
dokka-303c937a7c33fa9df5c28079c423ee071e87e410.zip
Default Java constructor (#2795)
Diffstat (limited to 'plugins/base/src/test/kotlin/translators')
-rw-r--r--plugins/base/src/test/kotlin/translators/DefaultPsiToDocumentableTranslatorTest.kt90
1 files changed, 89 insertions, 1 deletions
diff --git a/plugins/base/src/test/kotlin/translators/DefaultPsiToDocumentableTranslatorTest.kt b/plugins/base/src/test/kotlin/translators/DefaultPsiToDocumentableTranslatorTest.kt
index 711b9c02..537a4bfc 100644
--- a/plugins/base/src/test/kotlin/translators/DefaultPsiToDocumentableTranslatorTest.kt
+++ b/plugins/base/src/test/kotlin/translators/DefaultPsiToDocumentableTranslatorTest.kt
@@ -8,7 +8,6 @@ import org.jetbrains.dokka.links.PointingToDeclaration
import org.jetbrains.dokka.model.*
import org.jetbrains.dokka.model.doc.*
import org.jetbrains.dokka.plugability.DokkaPlugin
-import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.Assertions.*
import org.junit.jupiter.api.Test
import utils.assertNotNull
@@ -741,4 +740,93 @@ class DefaultPsiToDocumentableTranslatorTest : BaseAbstractTest() {
}
}
}
+
+ @Test
+ fun `should have public default constructor in public class`() {
+ testInline(
+ """
+ |/src/main/java/test/A.java
+ |package test;
+ |public class A {
+ |}
+ """.trimIndent(),
+ configuration
+ ) {
+ documentablesMergingStage = { module ->
+ val testedClass = module.findClasslike(packageName = "test", "A") as DClass
+
+ assertEquals(1, testedClass.constructors.size, "Expect 1 default constructor")
+ assertTrue(
+ testedClass.constructors.first().parameters.isEmpty(),
+ "Expect default constructor doesn't have params"
+ )
+ assertEquals(JavaVisibility.Public, testedClass.constructors.first().visibility())
+ }
+ }
+ }
+
+ @Test
+ fun `should have package-private default constructor in package-private class`() {
+ testInline(
+ """
+ |/src/main/java/test/A.java
+ |package test;
+ |class A {
+ |}
+ """.trimIndent(),
+ configuration
+ ) {
+ documentablesMergingStage = { module ->
+ val testedClass = module.findClasslike(packageName = "test", "A") as DClass
+
+ assertEquals(1, testedClass.constructors.size, "Expect 1 default constructor")
+ assertEquals(JavaVisibility.Default, testedClass.constructors.first().visibility())
+ }
+ }
+ }
+
+ @Test
+ fun `should have private default constructor in private nested class`() {
+ testInline(
+ """
+ |/src/main/java/test/A.java
+ |package test;
+ |class A {
+ | private static class PrivateNested{}
+ |}
+ """.trimIndent(),
+ configuration
+ ) {
+ documentablesMergingStage = { module ->
+ val parentClass = module.findClasslike(packageName = "test", "A") as DClass
+ val testedClass = parentClass.classlikes.single { it.name == "PrivateNested" } as DClass
+
+ assertEquals(1, testedClass.constructors.size, "Expect 1 default constructor")
+ assertEquals(JavaVisibility.Private, testedClass.constructors.first().visibility())
+ }
+ }
+ }
+
+ @Test
+ fun `should not have a default constructor because have explicit private`() {
+ testInline(
+ """
+ |/src/main/java/test/A.java
+ |package test;
+ |public class A {
+ | private A(){}
+ |}
+ """.trimIndent(),
+ configuration
+ ) {
+ documentablesMergingStage = { module ->
+ val testedClass = module.findClasslike(packageName = "test", "A") as DClass
+
+ assertEquals(1, testedClass.constructors.size, "Expect 1 declared constructor")
+ assertEquals(JavaVisibility.Private, testedClass.constructors.first().visibility())
+ }
+ }
+ }
}
+
+private fun DFunction.visibility() = visibility.values.first()