[Gradle] Add tests for KotlinPluginLifecycle.Stage utils

^KT-34662 Verification Pending
This commit is contained in:
Sebastian Sellmair
2023-03-09 16:46:22 +01:00
committed by Space Team
parent d277502237
commit 32e05b4631
2 changed files with 29 additions and 1 deletions
@@ -305,9 +305,11 @@ internal interface KotlinPluginLifecycle {
val previousOrNull: Stage? get() = values.getOrNull(ordinal - 1)
val nextOrNull: Stage? get() = values.getOrNull(ordinal + 1)
val nextOrLast: Stage get() = nextOrNull ?: values.last()
val nextOrThrow: Stage get() = values[ordinal + 1]
val nextOrThrow: Stage
get() = nextOrNull ?: throw IllegalArgumentException("'$this' does not have a next ${Stage::class.simpleName}")
operator fun rangeTo(other: Stage): Set<Stage> {
if (this.ordinal > other.ordinal) return emptySet()
return values.subList(this.ordinal, other.ordinal + 1).toSet()
}
@@ -349,4 +349,30 @@ class KotlinPluginLifecycleTest {
}
}
}
@Test
fun `test - Stage - previous next utils`() {
assertNull(Stage.values.first().previousOrNull)
assertEquals(Stage.values.first(), Stage.values.first().previousOrFirst)
assertNull(Stage.values.last().nextOrNull)
assertEquals(Stage.values.last(), Stage.values.last().nextOrLast)
assertFailsWith<IllegalArgumentException> { Stage.values.last().nextOrThrow }
}
@Test
fun `test - Stage - range utils`() {
assertEquals(setOf(BeforeFinaliseDsl, FinaliseDsl, AfterFinaliseDsl), BeforeFinaliseDsl..AfterFinaliseDsl)
assertEquals(emptySet(), AfterFinaliseDsl..BeforeFinaliseDsl)
assertEquals(setOf(BeforeFinaliseDsl), BeforeFinaliseDsl..BeforeFinaliseDsl)
assertTrue(FinaliseDsl in Stage.upTo(FinaliseDsl))
assertTrue(Stage.values.first() in Stage.upTo(FinaliseDsl))
assertTrue(BeforeFinaliseDsl in Stage.upTo(FinaliseDsl))
assertTrue(FinaliseDsl.nextOrThrow !in Stage.upTo(FinaliseDsl))
assertTrue(FinaliseDsl !in Stage.until(FinaliseDsl))
assertTrue(FinaliseDsl.previousOrFirst in Stage.until(FinaliseDsl))
}
}