From 28f293e0ce33abb5268e442b988264acb9b426ee Mon Sep 17 00:00:00 2001 From: "sebastian.sellmair" Date: Mon, 1 Aug 2022 16:41:43 +0200 Subject: [PATCH] [Gradle][KT-53342] Implement KotlinAndroidSourceSetLayoutExtensionTest --- ...tlinAndroidSourceSetLayoutExtensionTest.kt | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/sources/android/KotlinAndroidSourceSetLayoutExtensionTest.kt diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/sources/android/KotlinAndroidSourceSetLayoutExtensionTest.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/sources/android/KotlinAndroidSourceSetLayoutExtensionTest.kt new file mode 100644 index 00000000000..0e05605bc4d --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/sources/android/KotlinAndroidSourceSetLayoutExtensionTest.kt @@ -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 { + project.kotlinAndroidSourceSetLayout + } + } +}