Skip to content

Commit

Permalink
Move around and rename some tests
Browse files Browse the repository at this point in the history
Test: changes tests
  • Loading branch information
owengray-google committed Apr 8, 2022
1 parent 9e19469 commit 14a6e60
Show file tree
Hide file tree
Showing 3 changed files with 66 additions and 57 deletions.
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
package translators

import org.jetbrains.dokka.DokkaConfiguration
import org.jetbrains.dokka.base.testApi.testRunner.BaseAbstractTest
import org.jetbrains.dokka.links.DRI
import org.jetbrains.dokka.model.*
import org.junit.jupiter.api.Assertions.*
import org.jetbrains.dokka.model.doc.CodeBlock
import org.jetbrains.dokka.model.doc.P
import org.jetbrains.dokka.model.doc.Text
import org.jetbrains.dokka.base.testApi.testRunner.BaseAbstractTest
import org.junit.Assert
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Disabled
import org.junit.jupiter.api.Test

class DefaultDescriptorToDocumentableTranslatorTest : BaseAbstractTest() {
Expand Down Expand Up @@ -663,4 +665,65 @@ class DefaultDescriptorToDocumentableTranslatorTest : BaseAbstractTest() {
}
}
}

val javaConfiguration = dokkaConfiguration {
sourceSets {
sourceSet {
sourceRoots = listOf("src/main/java")
includeNonPublic = true
}
}
}

@Disabled // The compiler throws away annotations on unresolved types upstream
@Test
fun `Can annotate unresolved type`() {
testInline(
"""
|/src/main/java/sample/FooLibrary.kt
|package sample;
|@MustBeDocumented
|@Target(AnnotationTarget.TYPE)
|annotation class Hello()
|fun bar(): @Hello() TypeThatDoesntResolve
""".trimMargin(),
javaConfiguration
) {
documentablesMergingStage = { module ->
val type = module.packages.single().functions.single().type as GenericTypeConstructor
assertEquals(
Annotations.Annotation(DRI("sample", "Hello"), emptyMap()),
type.extra[Annotations]?.directAnnotations?.values?.single()?.single()
)
}
}
}

/**
* Kotlin Int becomes java int. Java int cannot be annotated in source, but Kotlin Int can be.
* This is paired with KotlinAsJavaPluginTest.`Java primitive annotations work`()
*/
@Test
fun `Java primitive annotations work`() {
testInline(
"""
|/src/main/java/sample/FooLibrary.kt
|package sample;
|@MustBeDocumented
|@Target(AnnotationTarget.TYPE)
|annotation class Hello()
|fun bar(): @Hello() Int
""".trimMargin(),
javaConfiguration
) {
documentablesMergingStage = { module ->
val type = module.packages.single().functions.single().type as GenericTypeConstructor
assertEquals(
Annotations.Annotation(DRI("sample", "Hello"), emptyMap()),
type.extra[Annotations]?.directAnnotations?.values?.single()?.single()
)
assertEquals("kotlin/Int///PointingToDeclaration/", type.dri.toString())
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,12 @@ import org.jetbrains.dokka.base.DokkaBase
import org.jetbrains.dokka.base.testApi.testRunner.BaseAbstractTest
import org.jetbrains.dokka.links.DRI
import org.jetbrains.dokka.model.Annotations
import org.jetbrains.dokka.model.GenericTypeConstructor
import org.jetbrains.dokka.model.TypeConstructor
import org.jetbrains.dokka.model.doc.Text
import org.jetbrains.dokka.model.firstMemberOfType
import org.jetbrains.dokka.plugability.DokkaPlugin
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Assertions.assertTrue
import org.junit.jupiter.api.Disabled
import org.junit.jupiter.api.Test
import utils.assertNotNull

Expand Down Expand Up @@ -260,56 +258,4 @@ class DefaultPsiToDocumentableTranslatorTest : BaseAbstractTest() {
}
}
}

@Disabled // The compiler throws away annotations on unresolved types upstream
@Test
fun `Can annotate UnresolvedBound`() {
testInline(
"""
|/src/main/java/sample/FooLibrary.kt
|package sample;
|@MustBeDocumented
|@Target(AnnotationTarget.TYPE)
|annotation class Hello()
|fun bar(): @Hello() TypeThatDoesntResolve
""".trimMargin(),
configuration
) {
documentablesMergingStage = { module ->
val type = module.packages.single().functions.single().type as GenericTypeConstructor
assertEquals(
Annotations.Annotation(DRI("sample", "Hello"), emptyMap()),
type.extra[Annotations]?.directAnnotations?.values?.single()?.single()
)
}
}
}

/**
* Kotlin Int becomes java int. Java int cannot be annotated in source, but Kotlin Int can be.
* This is paired with KotlinAsJavaPluginTest.`Java primitive annotations work`()
*/
@Test
fun `Java primitive annotations work`() {
testInline(
"""
|/src/main/java/sample/FooLibrary.kt
|package sample;
|@MustBeDocumented
|@Target(AnnotationTarget.TYPE)
|annotation class Hello()
|fun bar(): @Hello() Int
""".trimMargin(),
configuration
) {
documentablesMergingStage = { module ->
val type = module.packages.single().functions.single().type as GenericTypeConstructor
assertEquals(
Annotations.Annotation(DRI("sample", "Hello"), emptyMap()),
type.extra[Annotations]?.directAnnotations?.values?.single()?.single()
)
assertEquals("kotlin/Int///PointingToDeclaration/", type.dri.toString())
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -541,7 +541,7 @@ class KotlinAsJavaPluginTest : BaseAbstractTest() {

/**
* Kotlin Int becomes java int. Java int cannot be annotated in source, but Kotlin Int can be.
* This is paired with DefaultPsiToDocumentableTranslatorTest.`Java primitive annotations work`()
* This is paired with DefaultDescriptorToDocumentableTranslatorTest.`Java primitive annotations work`()
*
* This test currently does not do anything because Kotlin.Int currently becomes java.lang.Integer not primitive int
*/
Expand Down

0 comments on commit 14a6e60

Please sign in to comment.