[Gradle] Implement smoke test for external android target prototype resolving sdk

KT-54981
This commit is contained in:
Sebastian Sellmair
2022-11-17 10:42:37 +01:00
committed by Space Team
parent 83af85706d
commit f02fd2e04e
2 changed files with 33 additions and 4 deletions
@@ -6,6 +6,7 @@
package org.jetbrains.kotlin.gradle.idea.testFixtures.tcs
import org.gradle.api.Project
import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinDependency
import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinSourceDependency
fun buildIdeaKotlinDependencyMatchers(notation: Any?): List<IdeaKotlinDependencyMatcher> {
@@ -30,4 +31,9 @@ fun binaryCoordinates(regex: Regex): IdeaKotlinDependencyMatcher {
fun binaryCoordinates(literal: String): IdeaKotlinDependencyMatcher {
return binaryCoordinates(Regex.fromLiteral(literal))
}
fun anyDependency(): IdeaKotlinDependencyMatcher = object : IdeaKotlinDependencyMatcher {
override val description: String get() = "any"
override fun matches(dependency: IdeaKotlinDependency): Boolean = true
}
@@ -10,12 +10,14 @@ package org.jetbrains.kotlin.gradle.externalTargetApi
import org.gradle.api.publish.PublishingExtension
import org.gradle.api.publish.maven.MavenPublication
import org.gradle.api.publish.maven.plugins.MavenPublishPlugin
import org.jetbrains.kotlin.gradle.*
import org.jetbrains.kotlin.gradle.android.androidTargetPrototype
import org.jetbrains.kotlin.gradle.androidLibrary
import org.jetbrains.kotlin.gradle.assumeAndroidSdkAvailable
import org.jetbrains.kotlin.gradle.buildProjectWithMPP
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension
import org.jetbrains.kotlin.gradle.idea.testFixtures.tcs.anyDependency
import org.jetbrains.kotlin.gradle.idea.testFixtures.tcs.assertMatches
import org.jetbrains.kotlin.gradle.idea.testFixtures.tcs.binaryCoordinates
import org.jetbrains.kotlin.gradle.kpm.idea.mavenCentralCacheRedirector
import org.jetbrains.kotlin.gradle.plugin.ide.kotlinIdeMultiplatformImport
import org.jetbrains.kotlin.gradle.utils.getByType
import org.junit.Test
import kotlin.test.BeforeTest
@@ -72,4 +74,25 @@ class ExternalAndroidTargetPrototypeSmokeTest {
val aarArtifact = androidPublication.artifacts.first()
assertEquals("aar", aarArtifact.extension)
}
}
@Test
fun `apply prototype - resolve androidPrototypeMain dependencies - contains android bootstrap classpath`() {
val project = buildProject {
enableDefaultStdlibDependency(false)
enableDependencyVerification(false)
applyMultiplatformPlugin()
repositories.mavenCentralCacheRedirector()
}
project.androidLibrary { compileSdk = 31 }
project.multiplatformExtension.androidTargetPrototype()
project.evaluate()
val androidPrototypeMain = project.multiplatformExtension.sourceSets.getByName("prototypeAndroidMain")
project.kotlinIdeMultiplatformImport.resolveDependencies(androidPrototypeMain).assertMatches(
binaryCoordinates(Regex("com\\.android:sdk:.*")),
anyDependency()
)
}
}