diff --git a/cli/src/main/kotlin/io/github/cdsap/projectgenerator/cli/GenerateProjectRequest.kt b/cli/src/main/kotlin/io/github/cdsap/projectgenerator/cli/GenerateProjectRequest.kt index 3ab2e77a..d8df087b 100644 --- a/cli/src/main/kotlin/io/github/cdsap/projectgenerator/cli/GenerateProjectRequest.kt +++ b/cli/src/main/kotlin/io/github/cdsap/projectgenerator/cli/GenerateProjectRequest.kt @@ -84,7 +84,7 @@ data class GenerateProjectRequest( typeOfStringResources = typeOfStringResources, layers = layers, generateUnitTest = generateUnitTest, - gradle = resolveGradle(cliGradle, versionsFile), + gradle = VersionsResolver.resolveGradle(cliGradle, versionsFile), projectRootPath = resolveProjectRootPath(outputDir, language, resolvedProjectName), develocity = resolveDevelocityEnabled(develocityFlag, versionsOverrides.develocityUrl), projectName = resolvedProjectName @@ -135,9 +135,3 @@ internal fun resolveProjectRootPath(outputDir: String?, language: Language, proj } } } - -internal fun resolveGradle(cliGradle: String?, versionsFile: VersionsFile?): Gradle { - return cliGradle?.let(Gradle::fromValue) - ?: versionsFile?.gradle - ?: Gradle.latest() -} diff --git a/cli/src/main/kotlin/io/github/cdsap/projectgenerator/cli/VersionsResolver.kt b/cli/src/main/kotlin/io/github/cdsap/projectgenerator/cli/VersionsResolver.kt index 2d95c596..d8c4f47d 100644 --- a/cli/src/main/kotlin/io/github/cdsap/projectgenerator/cli/VersionsResolver.kt +++ b/cli/src/main/kotlin/io/github/cdsap/projectgenerator/cli/VersionsResolver.kt @@ -1,6 +1,7 @@ package io.github.cdsap.projectgenerator.cli import io.github.cdsap.projectgenerator.model.DependencyInjection +import io.github.cdsap.projectgenerator.model.Gradle import io.github.cdsap.projectgenerator.model.Versions import io.github.cdsap.projectgenerator.model.VersionsFile @@ -37,4 +38,10 @@ object VersionsResolver { val base = fileVersions?.resolve() ?: Versions() return overrides.applyTo(base) } + + fun resolveGradle(cliGradle: String?, fileVersions: VersionsFile?): Gradle { + return cliGradle?.let(Gradle::fromValue) + ?: fileVersions?.gradle + ?: Gradle.latest() + } } diff --git a/cli/src/test/kotlin/io/github/cdsap/projectgenerator/cli/GenerateProjectsCliTest.kt b/cli/src/test/kotlin/io/github/cdsap/projectgenerator/cli/GenerateProjectsCliTest.kt index 84cd378e..ffb2fc7a 100644 --- a/cli/src/test/kotlin/io/github/cdsap/projectgenerator/cli/GenerateProjectsCliTest.kt +++ b/cli/src/test/kotlin/io/github/cdsap/projectgenerator/cli/GenerateProjectsCliTest.kt @@ -10,7 +10,6 @@ import io.github.cdsap.projectgenerator.model.Language import io.github.cdsap.projectgenerator.model.Shape import io.github.cdsap.projectgenerator.model.TypeOfStringResources import io.github.cdsap.projectgenerator.model.TypeProjectRequested -import io.github.cdsap.projectgenerator.model.VersionsFile import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Assertions.assertFalse import org.junit.jupiter.api.Assertions.assertTrue @@ -135,28 +134,6 @@ class GenerateProjectsCliTest { assertTrue(error.message?.contains(Gradle.supportedDisplayValues()) == true) } - @Test - fun `gradle from versions file is used when flag is absent`() { - val configured = Gradle.supported()[1] - val resolved = resolveGradle(null, VersionsFile(gradle = configured)) - - assertEquals(configured, resolved) - } - - @Test - fun `gradle flag overrides versions file`() { - val resolved = resolveGradle(Gradle.latest().cliValue, VersionsFile(gradle = Gradle.oldest())) - - assertEquals(Gradle.latest(), resolved) - } - - @Test - fun `latest gradle is used when neither flag nor versions file provide one`() { - val resolved = resolveGradle(null, null) - - assertEquals(Gradle.latest(), resolved) - } - @Test fun `default output path for kts nests project name and project_kts`() { val resolved = resolveProjectRootPath(null, Language.KTS, "sample") diff --git a/cli/src/test/kotlin/io/github/cdsap/projectgenerator/cli/VersionsResolverTest.kt b/cli/src/test/kotlin/io/github/cdsap/projectgenerator/cli/VersionsResolverTest.kt index b2565ddf..165c35e8 100644 --- a/cli/src/test/kotlin/io/github/cdsap/projectgenerator/cli/VersionsResolverTest.kt +++ b/cli/src/test/kotlin/io/github/cdsap/projectgenerator/cli/VersionsResolverTest.kt @@ -2,6 +2,7 @@ package io.github.cdsap.projectgenerator.cli import io.github.cdsap.projectgenerator.model.Android import io.github.cdsap.projectgenerator.model.DependencyInjection +import io.github.cdsap.projectgenerator.model.Gradle import io.github.cdsap.projectgenerator.model.Project import io.github.cdsap.projectgenerator.model.Versions import io.github.cdsap.projectgenerator.model.VersionsFile @@ -86,4 +87,29 @@ class VersionsResolverTest { assertEquals("", resolved.project.develocityUrl) assertEquals(DependencyInjection.METRO, resolved.di) } + + @Test + fun `gradle from versions file is used when flag is absent`() { + val configured = Gradle.supported()[1] + val resolved = VersionsResolver.resolveGradle(null, VersionsFile(gradle = configured)) + + assertEquals(configured, resolved) + } + + @Test + fun `gradle flag overrides versions file`() { + val resolved = VersionsResolver.resolveGradle( + Gradle.latest().cliValue, + VersionsFile(gradle = Gradle.oldest()) + ) + + assertEquals(Gradle.latest(), resolved) + } + + @Test + fun `latest gradle is used when neither flag nor versions file provide one`() { + val resolved = VersionsResolver.resolveGradle(null, null) + + assertEquals(Gradle.latest(), resolved) + } }