Leverage JUnit 6 suspending function support

Closes gh-36215
This commit is contained in:
Sébastien Deleuze
2026-01-27 08:45:04 +01:00
parent 77c24b28b6
commit bc01eeb433
23 changed files with 287 additions and 539 deletions
@@ -20,7 +20,6 @@ import io.mockk.every
import io.mockk.mockk
import io.mockk.verify
import io.r2dbc.spi.Parameters
import kotlinx.coroutines.runBlocking
import org.junit.jupiter.api.Test
import reactor.core.publisher.Mono
@@ -37,11 +36,7 @@ class DatabaseClientExtensionsTests {
fun bindByIndexShouldBindValue() {
val spec = mockk<DatabaseClient.GenericExecuteSpec>()
every { spec.bind(eq(0), any()) } returns spec
runBlocking {
spec.bind<String>(0, "foo")
}
spec.bind<String>(0, "foo")
verify {
spec.bind(0, Parameters.`in`("foo"))
}
@@ -51,11 +46,7 @@ class DatabaseClientExtensionsTests {
fun bindByIndexShouldBindNull() {
val spec = mockk<DatabaseClient.GenericExecuteSpec>()
every { spec.bind(eq(0), any()) } returns spec
runBlocking {
spec.bind<String>(0, null)
}
spec.bind<String>(0, null)
verify {
spec.bind(0, Parameters.`in`(String::class.java))
}
@@ -65,11 +56,7 @@ class DatabaseClientExtensionsTests {
fun bindByNameShouldBindValue() {
val spec = mockk<DatabaseClient.GenericExecuteSpec>()
every { spec.bind(eq("field"), any()) } returns spec
runBlocking {
spec.bind<String>("field", "foo")
}
spec.bind<String>("field", "foo")
verify {
spec.bind("field", Parameters.`in`("foo"))
}
@@ -79,25 +66,17 @@ class DatabaseClientExtensionsTests {
fun bindByNameShouldBindNull() {
val spec = mockk<DatabaseClient.GenericExecuteSpec>()
every { spec.bind(eq("field"), any()) } returns spec
runBlocking {
spec.bind<String>("field", null)
}
spec.bind<String>("field", null)
verify {
spec.bind("field", Parameters.`in`(String::class.java))
}
}
@Test
fun genericExecuteSpecAwait() {
suspend fun genericExecuteSpecAwait() {
val spec = mockk<DatabaseClient.GenericExecuteSpec>()
every { spec.then() } returns Mono.empty()
runBlocking {
spec.await()
}
spec.await()
verify {
spec.then()
}
@@ -37,14 +37,10 @@ import reactor.core.publisher.Mono
class RowsFetchSpecExtensionsTests {
@Test
fun awaitOneWithValue() {
suspend fun awaitOneWithValue() {
val spec = mockk<RowsFetchSpec<String>>()
every { spec.one() } returns Mono.just("foo")
runBlocking {
assertThat(spec.awaitOne()).isEqualTo("foo")
}
assertThat(spec.awaitOne()).isEqualTo("foo")
verify {
spec.one()
}
@@ -54,53 +50,39 @@ class RowsFetchSpecExtensionsTests {
fun awaitOneWithNull() {
val spec = mockk<RowsFetchSpec<String>>()
every { spec.one() } returns Mono.empty()
assertThatExceptionOfType(EmptyResultDataAccessException::class.java).isThrownBy {
runBlocking { spec.awaitOne() }
}
verify {
spec.one()
}
}
@Test
fun awaitOneOrNullWithValue() {
suspend fun awaitOneOrNullWithValue() {
val spec = mockk<RowsFetchSpec<String>>()
every { spec.one() } returns Mono.just("foo")
runBlocking {
assertThat(spec.awaitOneOrNull()).isEqualTo("foo")
}
assertThat(spec.awaitOneOrNull()).isEqualTo("foo")
verify {
spec.one()
}
}
@Test
fun awaitOneOrNullWithNull() {
suspend fun awaitOneOrNullWithNull() {
val spec = mockk<RowsFetchSpec<String>>()
every { spec.one() } returns Mono.empty()
runBlocking {
assertThat(spec.awaitOneOrNull()).isNull()
}
assertThat(spec.awaitOneOrNull()).isNull()
verify {
spec.one()
}
}
@Test
fun awaitFirstWithValue() {
suspend fun awaitFirstWithValue() {
val spec = mockk<RowsFetchSpec<String>>()
every { spec.first() } returns Mono.just("foo")
runBlocking {
assertThat(spec.awaitSingle()).isEqualTo("foo")
}
assertThat(spec.awaitSingle()).isEqualTo("foo")
verify {
spec.first()
}
@@ -110,39 +92,29 @@ class RowsFetchSpecExtensionsTests {
fun awaitFirstWithNull() {
val spec = mockk<RowsFetchSpec<String>>()
every { spec.first() } returns Mono.empty()
assertThatExceptionOfType(EmptyResultDataAccessException::class.java).isThrownBy {
runBlocking { spec.awaitSingle() }
}
verify {
spec.first()
}
}
@Test
fun awaitSingleOrNullWithValue() {
suspend fun awaitSingleOrNullWithValue() {
val spec = mockk<RowsFetchSpec<String>>()
every { spec.first() } returns Mono.just("foo")
runBlocking {
assertThat(spec.awaitSingleOrNull()).isEqualTo("foo")
}
assertThat(spec.awaitSingleOrNull()).isEqualTo("foo")
verify {
spec.first()
}
}
@Test
fun awaitSingleOrNullWithNull() {
suspend fun awaitSingleOrNullWithNull() {
val spec = mockk<RowsFetchSpec<String>>()
every { spec.first() } returns Mono.empty()
runBlocking {
assertThat(spec.awaitSingleOrNull()).isNull()
}
assertThat(spec.awaitSingleOrNull()).isNull()
verify {
spec.first()
}
@@ -150,14 +122,10 @@ class RowsFetchSpecExtensionsTests {
@Test
@ExperimentalCoroutinesApi
fun allAsFlow() {
suspend fun allAsFlow() {
val spec = mockk<RowsFetchSpec<String>>()
every { spec.all() } returns Flux.just("foo", "bar", "baz")
runBlocking {
assertThat(spec.flow().toList()).contains("foo", "bar", "baz")
}
assertThat(spec.flow().toList()).contains("foo", "bar", "baz")
verify {
spec.all()
}
@@ -19,7 +19,6 @@ package org.springframework.r2dbc.core
import io.mockk.every
import io.mockk.mockk
import io.mockk.verify
import kotlinx.coroutines.runBlocking
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.Test
import reactor.core.publisher.Mono
@@ -32,14 +31,10 @@ import reactor.core.publisher.Mono
class UpdatedRowsFetchSpecExtensionsTests {
@Test
fun awaitRowsUpdatedWithValue() {
suspend fun awaitRowsUpdatedWithValue() {
val spec = mockk<UpdatedRowsFetchSpec>()
every { spec.rowsUpdated() } returns Mono.just(42)
runBlocking {
assertThat(spec.awaitRowsUpdated()).isEqualTo(42)
}
assertThat(spec.awaitRowsUpdated()).isEqualTo(42)
verify {
spec.rowsUpdated()
}