blob: 9df55fa35796e4b61f9489885611d9336d8ac574 [file] [log] [blame]
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package com.flutter.gradle
import com.android.build.api.AndroidPluginVersion
import com.android.build.api.variant.AndroidComponentsExtension
import io.mockk.every
import io.mockk.mockk
import org.gradle.api.Project
import org.jetbrains.kotlin.gradle.plugin.KotlinAndroidPluginWrapper
import kotlin.test.Test
import kotlin.test.assertEquals
class VersionFetcherTest {
// getGradleVersion
@Test
fun `getGradleVersion returns version when gradleVersion is set`() {
val gradleVersion = Version(1, 9, 20)
val project = mockk<Project>()
every { project.gradle.gradleVersion } returns gradleVersion.toString()
assertEquals(VersionFetcher.getGradleVersion(project), gradleVersion)
}
@Test
fun `getGradleVersion returns version when gradleVersion has hyphen`() {
val project = mockk<Project>()
every { project.gradle.gradleVersion } returns "2.1.20-2"
assertEquals(VersionFetcher.getGradleVersion(project), Version(2, 1, 20))
}
// getAGPVersion
@Test
fun `getAGPVersion returns version when agpVersion is set`() {
val agpVersion = AndroidPluginVersion(8, 3, 0)
val project = mockk<Project>()
val mockAndroidComponentsExtension = mockk<AndroidComponentsExtension<*, *, *>>()
every { project.extensions.findByType(AndroidComponentsExtension::class.java) } returns mockAndroidComponentsExtension
every { mockAndroidComponentsExtension.pluginVersion } returns agpVersion
assertEquals(VersionFetcher.getAGPVersion(project).toString(), agpVersion.toString())
}
// getKGPVersion
@Test
fun `getKGPVersion returns version when kotlin_version is set`() {
val kgpVersion = Version(1, 9, 20)
val project = mockk<Project>()
every { project.hasProperty(eq("kotlin_version")) } returns true
every { project.properties["kotlin_version"] } returns kgpVersion.toString()
val result = VersionFetcher.getKGPVersion(project)
assertEquals(kgpVersion, result!!)
}
@Test
fun `getKGPVersion returns version from KotlinAndroidPluginWrapper`() {
val kgpVersion = Version(1, 9, 20)
val project = mockk<Project>()
every { project.hasProperty(eq("kotlin_version")) } returns false
every { project.plugins.findPlugin(KotlinAndroidPluginWrapper::class.java) } returns
mockk<KotlinAndroidPluginWrapper> {
every { pluginVersion } returns kgpVersion.toString()
}
val result = VersionFetcher.getKGPVersion(project)
assertEquals(kgpVersion, result!!)
}
}