[Gradle] Add KotlinAndroidTargetVariantTypeDslImplTest to check refines edges
KT-34662
This commit is contained in:
committed by
Space Team
parent
40603bbda7
commit
b502f7cd03
+53
-3
@@ -3,19 +3,20 @@
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
@file:Suppress("FunctionName")
|
||||
@file:Suppress("FunctionName", "DuplicatedCode")
|
||||
|
||||
package org.jetbrains.kotlin.gradle.unitTests
|
||||
|
||||
import junit.framework.TestCase.assertNull
|
||||
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension
|
||||
import org.jetbrains.kotlin.gradle.plugin.*
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycle
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycle.Stage.AfterFinaliseRefinesEdges
|
||||
import org.jetbrains.kotlin.gradle.plugin.awaitFinalValue
|
||||
import org.jetbrains.kotlin.gradle.plugin.currentKotlinPluginLifecycle
|
||||
import org.jetbrains.kotlin.gradle.plugin.kotlinPluginLifecycle
|
||||
import org.jetbrains.kotlin.gradle.targets.android.KotlinAndroidTargetVariantTypeDslImpl
|
||||
import org.jetbrains.kotlin.gradle.util.buildProjectWithMPP
|
||||
import org.jetbrains.kotlin.gradle.util.runLifecycleAwareTest
|
||||
import org.jetbrains.kotlin.gradle.util.*
|
||||
import org.junit.Test
|
||||
import kotlin.test.assertEquals
|
||||
import kotlin.test.assertFails
|
||||
@@ -51,4 +52,53 @@ class KotlinAndroidTargetVariantTypeDslImplTest {
|
||||
assertFails { dsl.targetHierarchy.module.set(KotlinTargetHierarchy.ModuleName("y")) }
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `test - module - is respected in default refines edges`() {
|
||||
val project = buildProject {
|
||||
setMultiplatformAndroidSourceSetLayoutVersion(2)
|
||||
applyMultiplatformPlugin()
|
||||
androidLibrary { compileSdk = 33 }
|
||||
}
|
||||
|
||||
val kotlin = project.multiplatformExtension
|
||||
project.runLifecycleAwareTest {
|
||||
kotlin.android {
|
||||
unitTest.targetHierarchy.module.set(KotlinTargetHierarchy.ModuleName.test)
|
||||
instrumentedTest.targetHierarchy.module.set(KotlinTargetHierarchy.ModuleName.test)
|
||||
}
|
||||
|
||||
await(AfterFinaliseRefinesEdges)
|
||||
|
||||
assertEquals(setOf("commonTest"), kotlin.sourceSets.getByName("androidInstrumentedTest").dependsOn.map { it.name }.toSet())
|
||||
assertEquals(setOf("commonTest"), kotlin.sourceSets.getByName("androidUnitTest").dependsOn.map { it.name }.toSet())
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `test - module - is respected in targetHierarchy`() {
|
||||
val project = buildProject {
|
||||
setMultiplatformAndroidSourceSetLayoutVersion(2)
|
||||
applyMultiplatformPlugin()
|
||||
androidLibrary { compileSdk = 33 }
|
||||
}
|
||||
|
||||
val kotlin = project.multiplatformExtension
|
||||
project.runLifecycleAwareTest {
|
||||
kotlin.android {
|
||||
unitTest.targetHierarchy.module.set(KotlinTargetHierarchy.ModuleName("xxx"))
|
||||
instrumentedTest.targetHierarchy.module.set(KotlinTargetHierarchy.ModuleName("yyy"))
|
||||
}
|
||||
|
||||
kotlin.targetHierarchy.default {
|
||||
withModule(KotlinTargetHierarchy.ModuleName("xxx"))
|
||||
withModule(KotlinTargetHierarchy.ModuleName("yyy"))
|
||||
}
|
||||
|
||||
await(AfterFinaliseRefinesEdges)
|
||||
|
||||
assertEquals(setOf("commonXxx"), kotlin.sourceSets.getByName("androidUnitTest").dependsOn.map { it.name }.toSet())
|
||||
assertEquals(setOf("commonYyy"), kotlin.sourceSets.getByName("androidInstrumentedTest").dependsOn.map { it.name }.toSet())
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user