[Gradle][KT-53342] Implement KotlinAndroidSourceSetLayoutExtensionTest
This commit is contained in:
committed by
Space
parent
fe5a4bb12a
commit
28f293e0ce
+58
@@ -0,0 +1,58 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2022 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
@file:Suppress("FunctionName")
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.gradle.sources.android
|
||||||
|
|
||||||
|
import org.gradle.testfixtures.ProjectBuilder
|
||||||
|
import org.jetbrains.kotlin.gradle.mpp.buildProjectWithMPP
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.KotlinAndroidPluginWrapper
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.sources.android.kotlinAndroidSourceSetLayout
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.sources.android.multiplatformAndroidSourceSetLayoutV1
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.sources.android.multiplatformAndroidSourceSetLayoutV2
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.sources.android.singleTargetAndroidSourceSetLayout
|
||||||
|
import org.jetbrains.kotlin.gradle.setAndroidMultiplatformSourceSetLayoutVersion
|
||||||
|
import org.junit.Test
|
||||||
|
import kotlin.test.assertEquals
|
||||||
|
import kotlin.test.assertFailsWith
|
||||||
|
|
||||||
|
class KotlinAndroidSourceSetLayoutExtensionTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `single platform plugin`() {
|
||||||
|
val project = ProjectBuilder.builder().build()
|
||||||
|
project.plugins.apply(KotlinAndroidPluginWrapper::class.java)
|
||||||
|
assertEquals(singleTargetAndroidSourceSetLayout, project.kotlinAndroidSourceSetLayout)
|
||||||
|
|
||||||
|
project.setAndroidMultiplatformSourceSetLayoutVersion(1)
|
||||||
|
assertEquals(singleTargetAndroidSourceSetLayout, project.kotlinAndroidSourceSetLayout)
|
||||||
|
|
||||||
|
project.setAndroidMultiplatformSourceSetLayoutVersion(2)
|
||||||
|
assertEquals(singleTargetAndroidSourceSetLayout, project.kotlinAndroidSourceSetLayout)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `test multiplatform plugin`() {
|
||||||
|
val project = buildProjectWithMPP { }
|
||||||
|
|
||||||
|
assertEquals(
|
||||||
|
multiplatformAndroidSourceSetLayoutV1, project.kotlinAndroidSourceSetLayout,
|
||||||
|
"Expected v1 being set as default"
|
||||||
|
)
|
||||||
|
|
||||||
|
project.setAndroidMultiplatformSourceSetLayoutVersion(2)
|
||||||
|
assertEquals(multiplatformAndroidSourceSetLayoutV2, project.kotlinAndroidSourceSetLayout)
|
||||||
|
|
||||||
|
project.setAndroidMultiplatformSourceSetLayoutVersion(1)
|
||||||
|
assertEquals(multiplatformAndroidSourceSetLayoutV1, project.kotlinAndroidSourceSetLayout)
|
||||||
|
|
||||||
|
/* Test unhappy path: Layout version 0 is unknown/unsupported */
|
||||||
|
project.setAndroidMultiplatformSourceSetLayoutVersion(0)
|
||||||
|
assertFailsWith<IllegalArgumentException> {
|
||||||
|
project.kotlinAndroidSourceSetLayout
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user