[Gradle] Add integration tests for KT-34901
This commit is contained in:
committed by
Space Team
parent
792b6482c0
commit
fcb7010726
+106
@@ -0,0 +1,106 @@
|
||||
/*
|
||||
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.gradle
|
||||
|
||||
import org.gradle.util.GradleVersion
|
||||
import org.jetbrains.kotlin.gradle.testbase.*
|
||||
import org.junit.jupiter.api.Disabled
|
||||
import org.junit.jupiter.api.DisplayName
|
||||
import kotlin.io.path.appendText
|
||||
|
||||
@DisplayName("Integration with the Gradle java-test-fixtures plugin")
|
||||
class TestFixturesIT : KGPBaseTest() {
|
||||
@Disabled
|
||||
@DisplayName("Test fixtures can access internals of the main source set in Kotlin/JVM projects")
|
||||
@JvmGradlePluginTests
|
||||
@GradleTest
|
||||
fun testInternalAccessInJvmProject(gradleVersion: GradleVersion) {
|
||||
project(JVM_TEST_FIXTURES_PROJECT_NAME, gradleVersion) {
|
||||
kotlinSourcesDir("testFixtures").resolve("Netherlands.kt").appendText(
|
||||
//language=kt
|
||||
"""
|
||||
|
||||
fun isCityFromNetherlands(city: City) = city.isNetherlands()
|
||||
""".trimIndent()
|
||||
)
|
||||
|
||||
build("compileTestFixturesKotlin")
|
||||
}
|
||||
}
|
||||
|
||||
@Disabled
|
||||
@DisplayName("Test fixtures can access internals of the main JVM source set in Kotlin MPP projects")
|
||||
@MppGradlePluginTests
|
||||
@GradleTest
|
||||
fun testInternalAccessInMppProject(gradleVersion: GradleVersion) {
|
||||
project(MPP_TEST_FIXTURES_PROJECT_NAME, gradleVersion) {
|
||||
kotlinSourcesDir("jvmTestFixtures").resolve("Netherlands.kt").appendText(
|
||||
//language=kt
|
||||
"""
|
||||
|
||||
fun isCityFromNetherlands(city: City) = city.isNetherlands()
|
||||
""".trimIndent()
|
||||
)
|
||||
|
||||
build("compileTestFixturesKotlinJvm")
|
||||
}
|
||||
}
|
||||
|
||||
@Disabled
|
||||
@DisplayName("Test code can access internals of the test fixtures source set in Kotlin/JVM projects")
|
||||
@JvmGradlePluginTests
|
||||
@GradleTest
|
||||
fun testInternalAccessFromTestsInJvmProject(gradleVersion: GradleVersion) {
|
||||
project(JVM_TEST_FIXTURES_PROJECT_NAME, gradleVersion) {
|
||||
kotlinSourcesDir("testFixtures").resolve("Netherlands.kt").appendText(
|
||||
//language=kt
|
||||
"""
|
||||
|
||||
internal fun isCityFromNetherlands(city: City) = city.isNetherlands()
|
||||
""".trimIndent()
|
||||
)
|
||||
|
||||
kotlinSourcesDir("test").resolve("Tests.kt").modify {
|
||||
it.replace(
|
||||
"assertEquals(true, AMSTERDAM.isNetherlands())",
|
||||
"assertEquals(AMSTERDAM.isNetherlands(), isCityFromNetherlands(AMSTERDAM))"
|
||||
)
|
||||
}
|
||||
|
||||
build("compileTestKotlin")
|
||||
}
|
||||
}
|
||||
|
||||
@Disabled
|
||||
@DisplayName("JVM test code can access internals of the test fixtures source set in Kotlin MPP projects")
|
||||
@MppGradlePluginTests
|
||||
@GradleTest
|
||||
fun testInternalAccessFromTestsInMppProject(gradleVersion: GradleVersion) {
|
||||
project(MPP_TEST_FIXTURES_PROJECT_NAME, gradleVersion) {
|
||||
kotlinSourcesDir("jvmTestFixtures").resolve("Netherlands.kt").appendText(
|
||||
//language=kt
|
||||
"""
|
||||
|
||||
internal fun isCityFromNetherlands(city: City) = city.isNetherlands()
|
||||
""".trimIndent()
|
||||
)
|
||||
|
||||
kotlinSourcesDir("jvmTest").resolve("Tests.kt").modify {
|
||||
it.replace(
|
||||
"assertEquals(true, AMSTERDAM.isNetherlands())",
|
||||
"assertEquals(AMSTERDAM.isNetherlands(), isCityFromNetherlands(AMSTERDAM))"
|
||||
)
|
||||
}
|
||||
|
||||
build("compileTestKotlinJvm")
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
private const val JVM_TEST_FIXTURES_PROJECT_NAME = "jvm-test-fixtures"
|
||||
private const val MPP_TEST_FIXTURES_PROJECT_NAME = "mpp-test-fixtures"
|
||||
}
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
plugins {
|
||||
id("org.jetbrains.kotlin.jvm")
|
||||
id("java-test-fixtures")
|
||||
}
|
||||
|
||||
repositories {
|
||||
mavenLocal()
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
dependencies {
|
||||
testImplementation("org.jetbrains.kotlin:kotlin-test-junit5")
|
||||
}
|
||||
|
||||
tasks.named("test").configure {
|
||||
useJUnitPlatform()
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
/*
|
||||
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.example
|
||||
|
||||
class City(val name: String, val country: String) {
|
||||
internal fun isNetherlands(): Boolean = country == "The Netherlands"
|
||||
}
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
/*
|
||||
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.example
|
||||
|
||||
import org.junit.jupiter.api.Test
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
class Tests {
|
||||
@Test
|
||||
fun testCity() {
|
||||
assertEquals(true, AMSTERDAM.isNetherlands())
|
||||
}
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package org.example
|
||||
|
||||
val AMSTERDAM = City("Amsterdam", "The Netherlands")
|
||||
val UTRECHT = City("Utrecht", "The Netherlands")
|
||||
val THE_HAGUE = City("The Hague", "The Netherlands")
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
plugins {
|
||||
id("org.jetbrains.kotlin.multiplatform")
|
||||
id("java-test-fixtures")
|
||||
}
|
||||
|
||||
repositories {
|
||||
mavenLocal()
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
kotlin {
|
||||
jvm() {
|
||||
withJava()
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
named("jvmTest") {
|
||||
dependencies {
|
||||
implementation("org.jetbrains.kotlin:kotlin-test-junit5")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tasks.named("test").configure {
|
||||
useJUnitPlatform()
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
/*
|
||||
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.example
|
||||
|
||||
class City(val name: String, val country: String) {
|
||||
internal fun isNetherlands(): Boolean = country == "The Netherlands"
|
||||
}
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
/*
|
||||
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.example
|
||||
|
||||
import org.junit.jupiter.api.Test
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
class Tests {
|
||||
@Test
|
||||
fun testCity() {
|
||||
assertEquals(true, AMSTERDAM.isNetherlands())
|
||||
}
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package org.example
|
||||
|
||||
val AMSTERDAM = City("Amsterdam", "The Netherlands")
|
||||
val UTRECHT = City("Utrecht", "The Netherlands")
|
||||
val THE_HAGUE = City("The Hague", "The Netherlands")
|
||||
Reference in New Issue
Block a user