aboutsummaryrefslogtreecommitdiff
path: root/plugins/kotlin-as-java/src/test/kotlin/JvmFieldTest.kt
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/kotlin-as-java/src/test/kotlin/JvmFieldTest.kt')
-rw-r--r--plugins/kotlin-as-java/src/test/kotlin/JvmFieldTest.kt170
1 files changed, 0 insertions, 170 deletions
diff --git a/plugins/kotlin-as-java/src/test/kotlin/JvmFieldTest.kt b/plugins/kotlin-as-java/src/test/kotlin/JvmFieldTest.kt
deleted file mode 100644
index 6167e13a..00000000
--- a/plugins/kotlin-as-java/src/test/kotlin/JvmFieldTest.kt
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
- */
-
-package kotlinAsJavaPlugin
-
-import org.jetbrains.dokka.base.testApi.testRunner.BaseAbstractTest
-import org.jetbrains.dokka.model.AdditionalModifiers
-import org.jetbrains.dokka.model.ExtraModifiers
-import org.jetbrains.dokka.model.JavaVisibility
-import kotlin.test.*
-
-class JvmFieldTest : BaseAbstractTest() {
- val configuration = dokkaConfiguration {
- sourceSets {
- sourceSet {
- sourceRoots = listOf("src/")
- classpath += jvmStdlibPath!!
- }
- }
- }
-
- @Test
- fun `should keep properties annotated with JvmField as properties`() {
- testInline(
- """
- |/src/main/kotlin/kotlinAsJavaPlugin/sample.kt
- |package kotlinAsJavaPlugin
- |class SampleClass(@JvmField val property: String, val otherProperty: String)
- """.trimMargin(),
- configuration,
- ) {
- documentablesTransformationStage = { module ->
- val classLike = module.packages.flatMap { it.classlikes }.first()
- assertNotNull(classLike.properties.firstOrNull { it.name == "property" })
- assertEquals(
- listOf("getOtherProperty"),
- classLike.functions.map { it.name })
- }
- }
- }
-
- @Test
- fun `should work for top-level property`(){
- testInline(
- """
- |/src/main/kotlin/kotlinAsJavaPlugin/sample.kt
- |package kotlinAsJavaPlugin
- |@JvmField
- |val property: String = TODO()
- """.trimMargin(),
- configuration,
- ) {
- documentablesTransformationStage = { module ->
- val classLike = module.packages.flatMap { it.classlikes }.first()
- assertNotNull(classLike.properties.firstOrNull { it.name == "property" })
- assertEquals(
- emptyList(),
- classLike.functions.map { it.name })
- }
- }
- }
-
- @Test
- fun `properties without JvmName should be kept private`() {
- testInline(
- """
- |/src/main/kotlin/kotlinAsJavaPlugin/sample.kt
- |package kotlinAsJavaPlugin
- |class SampleClass(val property: String)
- """.trimMargin(),
- configuration,
- ) {
- documentablesTransformationStage = { module ->
- val classLike = module.packages.flatMap { it.classlikes }.first()
- assertEquals(JavaVisibility.Private, classLike.properties.firstOrNull()?.visibility?.values?.first())
- assertNotNull(classLike.functions.firstOrNull { it.name.startsWith("get") })
- assertEquals(
- JavaVisibility.Public,
- classLike.functions.first { it.name.startsWith("get") }.visibility.values.first()
- )
- }
- }
- }
-
- @Test
- fun `object jvmfield property should have no getters`(){
- testInline(
- """
- |/src/main/kotlin/kotlinAsJavaPlugin/sample.kt
- |package kotlinAsJavaPlugin
- |object MyObject {
- | @JvmField
- | val property: String = TODO()
- |}
- """.trimMargin(),
- configuration,
- ) {
- documentablesTransformationStage = { module ->
- val classLike = module.packages.flatMap { it.classlikes }.first()
- val property = classLike.properties.singleOrNull { it.name == "property" }
- assertNotNull(property)
- assertEquals(
- emptyList(),
- classLike.functions.map { it.name }
- )
- assertNull(property.getter)
- assertNull(property.setter)
- }
- }
- }
-
- @Test
- fun `enum jvmfield property should have no getters`(){
- testInline(
- """
- |/src/main/kotlin/kotlinAsJavaPlugin/sample.kt
- |package kotlinAsJavaPlugin
- |enum class MyEnum {
- | ITEM;
- |
- | @JvmField
- | val property: String = TODO()
- |}
- """.trimMargin(),
- configuration,
- ) {
- documentablesTransformationStage = { module ->
- val classLike = module.packages.flatMap { it.classlikes }.first()
- val property = classLike.properties.singleOrNull { it.name == "property" }
- assertNotNull(property)
- assertEquals(
- emptyList(),
- classLike.functions
- .filter{ it.name.contains("property", ignoreCase = true) }
- .map { it.name }
- )
- assertNull(property.getter)
- assertNull(property.setter)
- }
- }
- }
-
-
- @Test
- fun `object jvmfield property should be static`(){
- testInline(
- """
- |/src/main/kotlin/kotlinAsJavaPlugin/sample.kt
- |package kotlinAsJavaPlugin
- |object MyObject {
- | @JvmField
- | val property: String = TODO()
- |}
- """.trimMargin(),
- configuration,
- ) {
- documentablesTransformationStage = { module ->
- val classLike = module.packages.flatMap { it.classlikes }.first()
- val property = classLike.properties.singleOrNull { it.name == "property" }
- assertNotNull(property)
-
- val extra = property.extra[AdditionalModifiers]
- assertNotNull(extra, "Additional modifiers for property are exist")
- assertTrue(extra.content.values.contains(setOf(ExtraModifiers.JavaOnlyModifiers.Static)),
- "Extra modifiers contains static")
- }
- }
- }
-}