Skip to content

Commit 489be3a

Browse files
committed
Replace TestParameterInjector with cashapp/burst.
1 parent 32fb29a commit 489be3a

File tree

7 files changed

+53
-34
lines changed

7 files changed

+53
-34
lines changed

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ plugins {
1212
alias(libs.plugins.binaryCompatibilityValidator)
1313
alias(libs.plugins.detekt)
1414
alias(libs.plugins.mavenPublish)
15+
alias(libs.plugins.burst)
1516
}
1617

1718
group = property("GROUP") as String
@@ -95,7 +96,6 @@ val fixtureAgpVersion: Provider<String> = providers
9596
dependencies {
9697
compileOnly(libs.agp.build.api)
9798
testImplementation(kotlin("test"))
98-
testImplementation(libs.testParameterInjector)
9999
fixtureClasspath(libs.agp.build.gradle.flatMap { dependency ->
100100
fixtureAgpVersion.map { version ->
101101
"${dependency.group}:${dependency.name}:$version"

gradle/libs.versions.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,19 @@ binaryCompabilityValidator = "0.18.0"
44
agp = "8.13.0"
55
detekt = "2.0.0-alpha.0"
66
mavenPublish = "0.34.0"
7-
testParameterInjector = "1.18"
7+
burst = "2.9.0"
88
toolchainsResolver = "1.0.0"
99

1010
[libraries]
1111
plugin-detektKtlintWrapper = { module = "dev.detekt:detekt-rules-ktlint-wrapper", version.ref = "detekt"}
1212

1313
agp-build-gradle = { module = "com.android.tools.build:gradle", version.ref = "agp" }
1414
agp-build-api = { module = "com.android.tools.build:gradle-api", version.ref = "agp" }
15-
testParameterInjector = { group = "com.google.testparameterinjector", name = "test-parameter-injector", version.ref = "testParameterInjector" }
1615

1716
[plugins]
1817
kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
1918
kotlin-gradle-samWithReceiver = { id = "org.jetbrains.kotlin.plugin.sam.with.receiver", version.ref = "kotlin" }
2019
binaryCompatibilityValidator = { id = "org.jetbrains.kotlinx.binary-compatibility-validator", version.ref = "binaryCompabilityValidator" }
2120
detekt = { id = "dev.detekt", version.ref = "detekt" }
2221
mavenPublish = { id = "com.vanniktech.maven.publish", version.ref = "mavenPublish" }
22+
burst = { id = "app.cash.burst", version.ref = "burst" }

src/functionalTest/kotlin/io/github/reactivecircus/appversioning/AppVersioningPluginIntegrationTest.kt

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
@file:Suppress("FunctionName")
1+
@file:Suppress("FunctionName", "JUnitMalformedDeclaration")
22

33
package io.github.reactivecircus.appversioning
44

5-
import com.google.testing.junit.testparameterinjector.TestParameter
6-
import com.google.testing.junit.testparameterinjector.TestParameterInjector
5+
import app.cash.burst.Burst
76
import io.github.reactivecircus.appversioning.fixtures.AppProjectTemplate
7+
import io.github.reactivecircus.appversioning.fixtures.BuildScriptLanguage
88
import io.github.reactivecircus.appversioning.fixtures.LibraryProjectTemplate
99
import io.github.reactivecircus.appversioning.fixtures.withFixtureRunner
1010
import io.github.reactivecircus.appversioning.internal.GitClient
@@ -14,15 +14,14 @@ import org.gradle.testkit.runner.TaskOutcome
1414
import org.junit.Rule
1515
import org.junit.Test
1616
import org.junit.rules.TemporaryFolder
17-
import org.junit.runner.RunWith
1817
import java.io.File
1918
import kotlin.test.assertEquals
2019
import kotlin.test.assertFalse
2120
import kotlin.test.assertNull
2221
import kotlin.test.assertTrue
2322

24-
@RunWith(TestParameterInjector::class)
25-
class AppVersioningPluginIntegrationTest {
23+
@Burst
24+
class AppVersioningPluginIntegrationTest(private val buildScriptLanguage: BuildScriptLanguage) {
2625
@get:Rule
2726
val fixtureDir = TemporaryFolder()
2827

@@ -81,15 +80,13 @@ class AppVersioningPluginIntegrationTest {
8180
}
8281

8382
@Test
84-
fun `plugin tasks are registered for Android App project with product flavors`(
85-
@TestParameter useKts: Boolean
86-
) {
83+
fun `plugin tasks are registered for Android App project with product flavors`() {
8784
GitClient.initialize(fixtureDir.root)
8885

8986
val flavors = listOf("mock", "prod")
9087
withFixtureRunner(
9188
fixtureDir = fixtureDir,
92-
subprojects = listOf(AppProjectTemplate(useKts = useKts, flavors = flavors))
89+
subprojects = listOf(AppProjectTemplate(buildScriptLanguage = buildScriptLanguage, flavors = flavors))
9390
).runAndCheckResult(
9491
"tasks",
9592
"--group=versioning"
@@ -241,17 +238,15 @@ class AppVersioningPluginIntegrationTest {
241238
}
242239

243240
@Test
244-
fun `plugin generates versionCode and versionName for the assembled APK when assemble task is run`(
245-
@TestParameter useKts: Boolean
246-
) {
241+
fun `plugin generates versionCode and versionName for the assembled APK when assemble task is run`() {
247242
GitClient.initialize(fixtureDir.root).apply {
248243
val commitId = commit(message = "1st commit.")
249244
tag(name = "1.2.3", message = "1st tag", commitId = commitId)
250245
}
251246

252247
withFixtureRunner(
253248
fixtureDir = fixtureDir,
254-
subprojects = listOf(AppProjectTemplate(useKts = useKts))
249+
subprojects = listOf(AppProjectTemplate(buildScriptLanguage = buildScriptLanguage))
255250
).runAndCheckResult(
256251
"assembleRelease"
257252
) {
@@ -276,17 +271,15 @@ class AppVersioningPluginIntegrationTest {
276271
}
277272

278273
@Test
279-
fun `plugin generates versionCode and versionName for the assembled APKs when splits-APKs is enabled`(
280-
@TestParameter useKts: Boolean
281-
) {
274+
fun `plugin generates versionCode and versionName for the assembled APKs when splits-APKs is enabled`() {
282275
GitClient.initialize(fixtureDir.root).apply {
283276
val commitId = commit(message = "1st commit.")
284277
tag(name = "1.2.3", message = "1st tag", commitId = commitId)
285278
}
286279

287280
withFixtureRunner(
288281
fixtureDir = fixtureDir,
289-
subprojects = listOf(AppProjectTemplate(useKts = useKts, splitsApks = true))
282+
subprojects = listOf(AppProjectTemplate(buildScriptLanguage = buildScriptLanguage, splitsApks = true))
290283
).runAndCheckResult(
291284
"assembleRelease"
292285
) {
@@ -311,17 +304,21 @@ class AppVersioningPluginIntegrationTest {
311304
}
312305

313306
@Test
314-
fun `plugin generates versionCode and versionName for the assembled APKs when splits-APKs is enabled and universal mode is on`(
315-
@TestParameter useKts: Boolean
316-
) {
307+
fun `plugin generates versionCode and versionName for the assembled APKs when splits-APKs is enabled and universal mode is on`() {
317308
GitClient.initialize(fixtureDir.root).apply {
318309
val commitId = commit(message = "1st commit.")
319310
tag(name = "1.2.3", message = "1st tag", commitId = commitId)
320311
}
321312

322313
withFixtureRunner(
323314
fixtureDir = fixtureDir,
324-
subprojects = listOf(AppProjectTemplate(useKts = useKts, splitsApks = true, universalApk = true))
315+
subprojects = listOf(
316+
AppProjectTemplate(
317+
buildScriptLanguage = buildScriptLanguage,
318+
splitsApks = true,
319+
universalApk = true,
320+
)
321+
)
325322
).runAndCheckResult(
326323
"assembleRelease"
327324
) {
@@ -359,7 +356,12 @@ class AppVersioningPluginIntegrationTest {
359356
""".trimIndent()
360357
withFixtureRunner(
361358
fixtureDir = fixtureDir,
362-
subprojects = listOf(AppProjectTemplate(pluginExtension = extension))
359+
subprojects = listOf(
360+
AppProjectTemplate(
361+
buildScriptLanguage = buildScriptLanguage,
362+
pluginExtension = extension,
363+
)
364+
)
363365
).runAndCheckResult(
364366
"assembleRelease"
365367
) {

src/functionalTest/kotlin/io/github/reactivecircus/appversioning/fixtures/FixtureRunner.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,11 @@ private fun TemporaryFolder.buildFixture(gradleRoot: File, subprojects: List<And
8383
// subprojects
8484
subprojects.forEach { subproject ->
8585
// build.gradle or build.gradle.kts
86-
val buildFileName = if (subproject.useKts) "build.gradle.kts" else "build.gradle"
86+
val buildFileName = if (subproject.buildScriptLanguage == BuildScriptLanguage.Kts) {
87+
"build.gradle.kts"
88+
} else {
89+
"build.gradle"
90+
}
8791
gradleRoot.resolve("${subproject.projectName}/$buildFileName").also { it.parentFile.mkdirs() }
8892
.writeText(subproject.buildFileContent)
8993

src/functionalTest/kotlin/io/github/reactivecircus/appversioning/fixtures/ProjectTemplates.kt

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,13 +43,22 @@ fun gradlePropertiesFileContent(enableConfigurationCache: Boolean): String {
4343
""".trimIndent()
4444
}
4545

46+
enum class BuildScriptLanguage {
47+
Kts,
48+
Groovy,
49+
}
50+
4651
sealed class AndroidProjectTemplate {
4752
abstract val projectName: String
4853
abstract val pluginExtension: String?
49-
abstract val useKts: Boolean
54+
abstract val buildScriptLanguage: BuildScriptLanguage
5055
abstract val flavors: List<String>
5156

52-
val buildFileContent: String get() = if (useKts) ktsBuildFileContent else groovyBuildFileContent
57+
val buildFileContent: String get() = if (buildScriptLanguage == BuildScriptLanguage.Kts) {
58+
ktsBuildFileContent
59+
} else {
60+
groovyBuildFileContent
61+
}
5362

5463
private val isAppProject = this is AppProjectTemplate
5564

@@ -181,7 +190,7 @@ sealed class AndroidProjectTemplate {
181190
class AppProjectTemplate(
182191
override val projectName: String = "app",
183192
override val pluginExtension: String? = null,
184-
override val useKts: Boolean = true,
193+
override val buildScriptLanguage: BuildScriptLanguage = BuildScriptLanguage.Kts,
185194
override val flavors: List<String> = emptyList(),
186195
val splitsApks: Boolean = false,
187196
val universalApk: Boolean = false,
@@ -190,6 +199,6 @@ class AppProjectTemplate(
190199
class LibraryProjectTemplate(
191200
override val projectName: String = "library",
192201
override val pluginExtension: String? = null,
193-
override val useKts: Boolean = true,
202+
override val buildScriptLanguage: BuildScriptLanguage = BuildScriptLanguage.Kts,
194203
override val flavors: List<String> = emptyList()
195204
) : AndroidProjectTemplate()

src/functionalTest/kotlin/io/github/reactivecircus/appversioning/tasks/GenerateAppVersionInfoTest.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
package io.github.reactivecircus.appversioning.tasks
44

55
import io.github.reactivecircus.appversioning.fixtures.AppProjectTemplate
6+
import io.github.reactivecircus.appversioning.fixtures.BuildScriptLanguage
67
import io.github.reactivecircus.appversioning.fixtures.withFixtureRunner
78
import io.github.reactivecircus.appversioning.internal.GitClient
89
import org.gradle.testkit.runner.TaskOutcome
@@ -713,7 +714,12 @@ class GenerateAppVersionInfoTest {
713714

714715
val runner = withFixtureRunner(
715716
fixtureDir = fixtureDir,
716-
subprojects = listOf(AppProjectTemplate(pluginExtension = extensions, useKts = false))
717+
subprojects = listOf(
718+
AppProjectTemplate(
719+
pluginExtension = extensions,
720+
buildScriptLanguage = BuildScriptLanguage.Groovy,
721+
)
722+
)
717723
)
718724

719725
runner.runAndCheckResult(

src/main/kotlin/io/github/reactivecircus/appversioning/tasks/GenerateAppVersionInfo.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
@file:Suppress("DuplicatedCode")
2-
31
package io.github.reactivecircus.appversioning.tasks
42

53
import groovy.lang.Closure

0 commit comments

Comments
 (0)