Skip to content

Commit b13a009

Browse files
committed
move tests to junit parameterised tests
1 parent 32d1a2d commit b13a009

File tree

4 files changed

+51
-44
lines changed

4 files changed

+51
-44
lines changed

gradle-plugin-utils/build.gradle.kts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,11 @@ plugins {
66
dependencies {
77
compileOnly(gradleApi())
88

9-
"testImplementation"(gradleApi())
10-
"testImplementation"(project(":gradle-plugin-test-utils"))
11-
"testImplementation"(libs.kotest.runner)
12-
"testImplementation"(libs.kotest.property)
13-
"testImplementation"(libs.assertk.core)
14-
"testImplementation"(libs.mockk)
9+
testImplementation(gradleApi())
10+
testImplementation(project(":gradle-plugin-test-utils"))
11+
testImplementation(libs.junit.jupiter.params)
12+
testImplementation(libs.kotest.runner)
13+
testImplementation(libs.kotest.property)
14+
testImplementation(libs.assertk.core)
15+
testImplementation(libs.mockk)
1516
}

gradle-plugin-utils/gradle.lockfile

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -63,15 +63,15 @@ org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.0=testRuntimeClasspath
6363
org.jetbrains.kotlinx:kotlinx-coroutines-test-jvm:1.7.0=testRuntimeClasspath
6464
org.jetbrains.kotlinx:kotlinx-coroutines-test:1.7.0=testRuntimeClasspath
6565
org.jetbrains:annotations:23.0.0=testRuntimeClasspath
66-
org.junit.jupiter:junit-jupiter-api:5.8.2=testRuntimeClasspath
67-
org.junit.jupiter:junit-jupiter-engine:5.8.2=testRuntimeClasspath
68-
org.junit.jupiter:junit-jupiter-params:5.8.2=testRuntimeClasspath
69-
org.junit.jupiter:junit-jupiter:5.8.2=testRuntimeClasspath
70-
org.junit.platform:junit-platform-commons:1.8.2=testRuntimeClasspath
71-
org.junit.platform:junit-platform-engine:1.8.2=testRuntimeClasspath
72-
org.junit.platform:junit-platform-launcher:1.8.2=testRuntimeClasspath
73-
org.junit.platform:junit-platform-suite-api:1.8.2=testRuntimeClasspath
74-
org.junit:junit-bom:5.8.2=testRuntimeClasspath
66+
org.junit.jupiter:junit-jupiter-api:5.10.0=testRuntimeClasspath
67+
org.junit.jupiter:junit-jupiter-engine:5.10.0=testRuntimeClasspath
68+
org.junit.jupiter:junit-jupiter-params:5.10.0=testRuntimeClasspath
69+
org.junit.jupiter:junit-jupiter:5.10.0=testRuntimeClasspath
70+
org.junit.platform:junit-platform-commons:1.10.0=testRuntimeClasspath
71+
org.junit.platform:junit-platform-engine:1.10.0=testRuntimeClasspath
72+
org.junit.platform:junit-platform-launcher:1.10.0=testRuntimeClasspath
73+
org.junit.platform:junit-platform-suite-api:1.10.0=testRuntimeClasspath
74+
org.junit:junit-bom:5.10.0=testRuntimeClasspath
7575
org.objenesis:objenesis:3.3=testRuntimeClasspath
7676
org.opentest4j:opentest4j:1.3.0=testRuntimeClasspath
7777
org.reflections:reflections:0.10.2=testRuntimeClasspath

gradle-plugin-utils/src/test/kotlin/org/unbrokendome/gradle/pluginutils/GradleVersionsTest.kt

Lines changed: 34 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -10,45 +10,50 @@ import io.kotest.data.forAll
1010
import io.mockk.mockk
1111
import io.mockk.verify
1212
import org.gradle.util.GradleVersion
13+
import org.junit.jupiter.api.Test
14+
import org.junit.jupiter.params.ParameterizedTest
15+
import org.junit.jupiter.params.provider.MethodSource
16+
import org.junit.jupiter.params.provider.ValueSource
1317
import kotlin.reflect.full.memberProperties
1418

19+
class GradleVersionsTest {
20+
21+
data class VersionInput(val major: Int, val minor: Int)
22+
23+
companion object {
24+
@JvmStatic
25+
fun versionsInput() : List<VersionInput> {
26+
return listOf(
27+
4 to 0..10,
28+
5 to 0..6,
29+
6 to 0..8
30+
).flatMap { (majorVersion, minorRange) ->
31+
minorRange
32+
.map { minorVersion ->
33+
VersionInput(majorVersion, minorVersion)
34+
}
35+
}
36+
}
37+
}
1538

16-
class GradleVersionsTest : DescribeSpec({
17-
18-
describe("Version constant properties") {
19-
39+
@ParameterizedTest
40+
@MethodSource("versionsInput")
41+
fun `GradleVersions object should have a version property`(input: VersionInput) {
2042
val allVersionProperties = GradleVersions::class.memberProperties.associateBy { it.name }
2143

22-
val rows = sequenceOf(
23-
4 to 0..10,
24-
5 to 0..6,
25-
6 to 0..8
26-
).flatMap { (majorVersion, minorRange) ->
27-
minorRange.asSequence()
28-
.map { minorVersion ->
29-
Row2(majorVersion, minorVersion)
30-
}
31-
}.toList()
32-
33-
val dataTable = Table2(Headers2("major", "minor"), rows)
44+
val versionPropertyName = "Version_${input.major}_${input.minor}"
45+
val version = GradleVersion.version("${input.major}.${input.minor}")
3446

35-
forAll(dataTable) { major, minor ->
47+
val versionProperty = allVersionProperties[versionPropertyName]
3648

37-
it("GradleVersions object should have a version property for $major.$minor") {
38-
39-
val versionPropertyName = "Version_${major}_${minor}"
40-
val version = GradleVersion.version("$major.$minor")
41-
42-
val versionProperty = allVersionProperties[versionPropertyName]
43-
44-
assertThat(versionProperty, name = "Version property").isNotNull()
45-
.transform { it.get(GradleVersions) }
46-
.isEqualTo(version)
47-
}
48-
}
49+
assertThat(versionProperty, name = "Version property").isNotNull()
50+
.transform { it.get(GradleVersions) }
51+
.isEqualTo(version)
4952
}
53+
}
5054

5155

56+
class GradleVersionsTestOld : DescribeSpec({
5257
val veryHighVersion = GradleVersion.version("9999.99")
5358

5459

gradle/libs.versions.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ spek2 = "2.0.19"
1010
assertk-core = { module = "com.willowtreeapps.assertk:assertk", version.ref = "assertk" }
1111

1212
junit-api = { module = "org.junit.jupiter:junit-jupiter-api", version.ref = "junit" }
13+
junit-jupiter-params= { module = "org.junit.jupiter:junit-jupiter-params", version.ref = "junit" }
1314

1415
kotest-api = { module = "io.kotest:kotest-framework-api", version.ref = "kotest" }
1516
kotest-runner = { module = "io.kotest:kotest-runner-junit5", version.ref = "kotest" }

0 commit comments

Comments
 (0)