diff --git a/src/main/kotlin/org/springframework/data/r2dbc/core/CriteriaStepExtensions.kt b/src/main/kotlin/org/springframework/data/r2dbc/core/CriteriaStepExtensions.kt index 55fd9250..cb2979c0 100644 --- a/src/main/kotlin/org/springframework/data/r2dbc/core/CriteriaStepExtensions.kt +++ b/src/main/kotlin/org/springframework/data/r2dbc/core/CriteriaStepExtensions.kt @@ -1,5 +1,5 @@ /* - * Copyright 2018-2019 the original author or authors. + * Copyright 2019 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -35,7 +35,6 @@ infix fun Criteria.CriteriaStep.isEquals(value: Any): Criteria = fun Criteria.CriteriaStep.isIn(vararg value: Any): Criteria = `in`(value) - /** * Extension for [Criteria.CriteriaStep.in] providing a * `isIn(value)` variant. diff --git a/src/main/kotlin/org/springframework/data/r2dbc/core/DatabaseClientExtensions.kt b/src/main/kotlin/org/springframework/data/r2dbc/core/DatabaseClientExtensions.kt index b4c9e9ee..63e12b27 100644 --- a/src/main/kotlin/org/springframework/data/r2dbc/core/DatabaseClientExtensions.kt +++ b/src/main/kotlin/org/springframework/data/r2dbc/core/DatabaseClientExtensions.kt @@ -16,7 +16,6 @@ package org.springframework.data.r2dbc.core import kotlinx.coroutines.reactive.awaitFirstOrNull -import org.springframework.data.r2dbc.query.Criteria /** * Coroutines variant of [DatabaseClient.GenericExecuteSpec.then]. @@ -55,7 +54,7 @@ suspend fun DatabaseClient.TypedExecuteSpec.await() { } /** - * Extension for [DatabaseClient.TypedExecuteSpec.as] providing a + * Extension for [DatabaseClient.TypedExecuteSpec. as] providing a * `asType()` variant. * * @author Sebastien Deleuze @@ -90,6 +89,15 @@ inline fun DatabaseClient.InsertIntoSpec.into(): DatabaseClien inline fun DatabaseClient.SelectFromSpec.from(): DatabaseClient.TypedSelectSpec = from(T::class.java) +/** + * Extension for [DatabaseClient.UpdateTableSpec.table] providing a + * `table()` variant. + * + * @author Mark Paluch + */ +inline fun DatabaseClient.UpdateTableSpec.table(): DatabaseClient.TypedUpdateSpec = + table(T::class.java) + /** * Extension for [DatabaseClient.SelectFromSpec.from] providing a * `from()` variant. diff --git a/src/test/kotlin/org/springframework/data/r2dbc/core/CriteriaStepExtensionsTests.kt b/src/test/kotlin/org/springframework/data/r2dbc/core/CriteriaStepExtensionsTests.kt index 82ba1466..6b8d473c 100644 --- a/src/test/kotlin/org/springframework/data/r2dbc/core/CriteriaStepExtensionsTests.kt +++ b/src/test/kotlin/org/springframework/data/r2dbc/core/CriteriaStepExtensionsTests.kt @@ -1,5 +1,5 @@ /* - * Copyright 2018-2019 the original author or authors. + * Copyright 2019 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,13 +17,10 @@ package org.springframework.data.r2dbc.core import io.mockk.every import io.mockk.mockk -import io.mockk.spyk import io.mockk.verify -import kotlinx.coroutines.runBlocking import org.assertj.core.api.Assertions.assertThat import org.junit.Test import org.springframework.data.r2dbc.query.Criteria -import reactor.core.publisher.Mono /** * Unit tests for [Criteria.CriteriaStep] extensions. @@ -36,16 +33,44 @@ class CriteriaStepExtensionsTests { fun eqIsCriteriaStep() { val spec = mockk() - val eqSpec = mockk() + val criteria = mockk() - every { spec.`is`("test") } returns eqSpec + every { spec.`is`("test") } returns criteria - runBlocking { - assertThat(spec isEquals "test").isEqualTo(eqSpec) - } + assertThat(spec isEquals "test").isEqualTo(criteria) verify { spec.`is`("test") } } + + @Test // gh-122 + fun inVarargCriteriaStep() { + + val spec = mockk() + val criteria = mockk() + + every { spec.`in`(any() as Array) } returns criteria + + assertThat(spec.isIn("test")).isEqualTo(criteria) + + verify { + spec.`in`(arrayOf("test")) + } + } + + @Test // gh-122 + fun inListCriteriaStep() { + + val spec = mockk() + val criteria = mockk() + + every { spec.`in`(listOf("test")) } returns criteria + + assertThat(spec.isIn(listOf("test"))).isEqualTo(criteria) + + verify { + spec.`in`(listOf("test")) + } + } } diff --git a/src/test/kotlin/org/springframework/data/r2dbc/core/DatabaseClientExtensionsTests.kt b/src/test/kotlin/org/springframework/data/r2dbc/core/DatabaseClientExtensionsTests.kt index bae36a1e..6bea7906 100644 --- a/src/test/kotlin/org/springframework/data/r2dbc/core/DatabaseClientExtensionsTests.kt +++ b/src/test/kotlin/org/springframework/data/r2dbc/core/DatabaseClientExtensionsTests.kt @@ -17,12 +17,10 @@ package org.springframework.data.r2dbc.core import io.mockk.every import io.mockk.mockk -import io.mockk.spyk import io.mockk.verify import kotlinx.coroutines.runBlocking import org.assertj.core.api.Assertions.assertThat import org.junit.Test -import org.springframework.data.r2dbc.query.Criteria import reactor.core.publisher.Mono /** @@ -30,6 +28,7 @@ import reactor.core.publisher.Mono * * @author Sebastien Deleuze * @author Jonas Bark + * @author Mark Paluch */ class DatabaseClientExtensionsTests { @@ -142,15 +141,13 @@ class DatabaseClientExtensionsTests { } @Test // gh-122 - fun selectFromSpecInto() { + fun selectFromSpecFrom() { val spec = mockk() val typedSpec: DatabaseClient.TypedSelectSpec = mockk() every { spec.from(String::class.java) } returns typedSpec - runBlocking { - assertThat(spec.from()).isEqualTo(typedSpec) - } + assertThat(spec.from()).isEqualTo(typedSpec) verify { spec.from(String::class.java) @@ -158,15 +155,27 @@ class DatabaseClientExtensionsTests { } @Test // gh-122 - fun deleteFromSpecInto() { + fun updateTableSpecTable() { + + val spec = mockk() + val typedSpec: DatabaseClient.TypedUpdateSpec = mockk() + every { spec.table(String::class.java) } returns typedSpec + + assertThat(spec.table()).isEqualTo(typedSpec) + + verify { + spec.table(String::class.java) + } + } + + @Test // gh-122 + fun deleteFromSpecFrom() { val spec = mockk() val typedSpec: DatabaseClient.TypedDeleteSpec = mockk() every { spec.from(String::class.java) } returns typedSpec - runBlocking { - assertThat(spec.from()).isEqualTo(typedSpec) - } + assertThat(spec.from()).isEqualTo(typedSpec) verify { spec.from(String::class.java)