Skip to content

Commit 972bc09

Browse files
committed
#122 - Polishing.
Add extension for UpdateTableSpec.table. Add tests. Formatting. Original pull request: #123.
1 parent 9bcaa24 commit 972bc09

File tree

4 files changed

+64
-23
lines changed

4 files changed

+64
-23
lines changed

src/main/kotlin/org/springframework/data/r2dbc/core/CriteriaStepExtensions.kt

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2018-2019 the original author or authors.
2+
* Copyright 2019 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -35,7 +35,6 @@ infix fun Criteria.CriteriaStep.isEquals(value: Any): Criteria =
3535
fun Criteria.CriteriaStep.isIn(vararg value: Any): Criteria =
3636
`in`(value)
3737

38-
3938
/**
4039
* Extension for [Criteria.CriteriaStep.in] providing a
4140
* `isIn(value)` variant.

src/main/kotlin/org/springframework/data/r2dbc/core/DatabaseClientExtensions.kt

+10-2
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
package org.springframework.data.r2dbc.core
1717

1818
import kotlinx.coroutines.reactive.awaitFirstOrNull
19-
import org.springframework.data.r2dbc.query.Criteria
2019

2120
/**
2221
* Coroutines variant of [DatabaseClient.GenericExecuteSpec.then].
@@ -55,7 +54,7 @@ suspend fun <T> DatabaseClient.TypedExecuteSpec<T>.await() {
5554
}
5655

5756
/**
58-
* Extension for [DatabaseClient.TypedExecuteSpec.as] providing a
57+
* Extension for [DatabaseClient.TypedExecuteSpec. as] providing a
5958
* `asType<Foo>()` variant.
6059
*
6160
* @author Sebastien Deleuze
@@ -90,6 +89,15 @@ inline fun <reified T : Any> DatabaseClient.InsertIntoSpec.into(): DatabaseClien
9089
inline fun <reified T : Any> DatabaseClient.SelectFromSpec.from(): DatabaseClient.TypedSelectSpec<T> =
9190
from(T::class.java)
9291

92+
/**
93+
* Extension for [DatabaseClient.UpdateTableSpec.table] providing a
94+
* `table<Foo>()` variant.
95+
*
96+
* @author Mark Paluch
97+
*/
98+
inline fun <reified T : Any> DatabaseClient.UpdateTableSpec.table(): DatabaseClient.TypedUpdateSpec<T> =
99+
table(T::class.java)
100+
93101
/**
94102
* Extension for [DatabaseClient.SelectFromSpec.from] providing a
95103
* `from<Foo>()` variant.

src/test/kotlin/org/springframework/data/r2dbc/core/CriteriaStepExtensionsTests.kt

+34-9
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2018-2019 the original author or authors.
2+
* Copyright 2019 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -17,13 +17,10 @@ package org.springframework.data.r2dbc.core
1717

1818
import io.mockk.every
1919
import io.mockk.mockk
20-
import io.mockk.spyk
2120
import io.mockk.verify
22-
import kotlinx.coroutines.runBlocking
2321
import org.assertj.core.api.Assertions.assertThat
2422
import org.junit.Test
2523
import org.springframework.data.r2dbc.query.Criteria
26-
import reactor.core.publisher.Mono
2724

2825
/**
2926
* Unit tests for [Criteria.CriteriaStep] extensions.
@@ -36,16 +33,44 @@ class CriteriaStepExtensionsTests {
3633
fun eqIsCriteriaStep() {
3734

3835
val spec = mockk<Criteria.CriteriaStep>()
39-
val eqSpec = mockk<Criteria>()
36+
val criteria = mockk<Criteria>()
4037

41-
every { spec.`is`("test") } returns eqSpec
38+
every { spec.`is`("test") } returns criteria
4239

43-
runBlocking {
44-
assertThat(spec isEquals "test").isEqualTo(eqSpec)
45-
}
40+
assertThat(spec isEquals "test").isEqualTo(criteria)
4641

4742
verify {
4843
spec.`is`("test")
4944
}
5045
}
46+
47+
@Test // gh-122
48+
fun inVarargCriteriaStep() {
49+
50+
val spec = mockk<Criteria.CriteriaStep>()
51+
val criteria = mockk<Criteria>()
52+
53+
every { spec.`in`(any() as Array<Any>) } returns criteria
54+
55+
assertThat(spec.isIn("test")).isEqualTo(criteria)
56+
57+
verify {
58+
spec.`in`(arrayOf("test"))
59+
}
60+
}
61+
62+
@Test // gh-122
63+
fun inListCriteriaStep() {
64+
65+
val spec = mockk<Criteria.CriteriaStep>()
66+
val criteria = mockk<Criteria>()
67+
68+
every { spec.`in`(listOf("test")) } returns criteria
69+
70+
assertThat(spec.isIn(listOf("test"))).isEqualTo(criteria)
71+
72+
verify {
73+
spec.`in`(listOf("test"))
74+
}
75+
}
5176
}

src/test/kotlin/org/springframework/data/r2dbc/core/DatabaseClientExtensionsTests.kt

+19-10
Original file line numberDiff line numberDiff line change
@@ -17,19 +17,18 @@ package org.springframework.data.r2dbc.core
1717

1818
import io.mockk.every
1919
import io.mockk.mockk
20-
import io.mockk.spyk
2120
import io.mockk.verify
2221
import kotlinx.coroutines.runBlocking
2322
import org.assertj.core.api.Assertions.assertThat
2423
import org.junit.Test
25-
import org.springframework.data.r2dbc.query.Criteria
2624
import reactor.core.publisher.Mono
2725

2826
/**
2927
* Unit tests for [DatabaseClient] extensions.
3028
*
3129
* @author Sebastien Deleuze
3230
* @author Jonas Bark
31+
* @author Mark Paluch
3332
*/
3433
class DatabaseClientExtensionsTests {
3534

@@ -142,31 +141,41 @@ class DatabaseClientExtensionsTests {
142141
}
143142

144143
@Test // gh-122
145-
fun selectFromSpecInto() {
144+
fun selectFromSpecFrom() {
146145

147146
val spec = mockk<DatabaseClient.SelectFromSpec>()
148147
val typedSpec: DatabaseClient.TypedSelectSpec<String> = mockk()
149148
every { spec.from(String::class.java) } returns typedSpec
150149

151-
runBlocking {
152-
assertThat(spec.from<String>()).isEqualTo(typedSpec)
153-
}
150+
assertThat(spec.from<String>()).isEqualTo(typedSpec)
154151

155152
verify {
156153
spec.from(String::class.java)
157154
}
158155
}
159156

160157
@Test // gh-122
161-
fun deleteFromSpecInto() {
158+
fun updateTableSpecTable() {
159+
160+
val spec = mockk<DatabaseClient.UpdateTableSpec>()
161+
val typedSpec: DatabaseClient.TypedUpdateSpec<String> = mockk()
162+
every { spec.table(String::class.java) } returns typedSpec
163+
164+
assertThat(spec.table<String>()).isEqualTo(typedSpec)
165+
166+
verify {
167+
spec.table(String::class.java)
168+
}
169+
}
170+
171+
@Test // gh-122
172+
fun deleteFromSpecFrom() {
162173

163174
val spec = mockk<DatabaseClient.DeleteFromSpec>()
164175
val typedSpec: DatabaseClient.TypedDeleteSpec<String> = mockk()
165176
every { spec.from(String::class.java) } returns typedSpec
166177

167-
runBlocking {
168-
assertThat(spec.from<String>()).isEqualTo(typedSpec)
169-
}
178+
assertThat(spec.from<String>()).isEqualTo(typedSpec)
170179

171180
verify {
172181
spec.from(String::class.java)

0 commit comments

Comments
 (0)