// 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() every { project.gradle.gradleVersion } returns gradleVersion.toString() assertEquals(VersionFetcher.getGradleVersion(project), gradleVersion) } @Test fun `getGradleVersion returns version when gradleVersion has hyphen`() { val project = mockk() 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() val mockAndroidComponentsExtension = mockk>() 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() 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() every { project.hasProperty(eq("kotlin_version")) } returns false every { project.plugins.findPlugin(KotlinAndroidPluginWrapper::class.java) } returns mockk { every { pluginVersion } returns kgpVersion.toString() } val result = VersionFetcher.getKGPVersion(project) assertEquals(kgpVersion, result!!) } }