[Gradle][KT-53342] Implement KotlinAndroidSourceSetLayoutExtensionTest

This commit is contained in:
sebastian.sellmair
2022-08-01 16:41:43 +02:00
committed by Space
parent fe5a4bb12a
commit 28f293e0ce
@@ -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
}
}
}