DATAMONGO-1748 - Add Kotlin extensions for Criteria API.
This commit introduces two Criteria method aliases because in and is are reserved keywords in Kotlin: - isEqualTo(…) alias for is(…) - inValues(…) alias for in(…) Original pull request: #473.
This commit is contained in:
committed by
Oliver Gierke
parent
41bb619dc7
commit
e6bae5d124
@@ -0,0 +1,17 @@
|
||||
package org.springframework.data.mongodb.core.query
|
||||
|
||||
/**
|
||||
* Extension for [Criteria.is] providing an `isEqualTo` alias since `in` is a reserved keyword in Kotlin.
|
||||
*
|
||||
* @author Sebastien Deleuze
|
||||
* @since 2.0
|
||||
*/
|
||||
fun Criteria.isEqualTo(o: Any) : Criteria = `is`(o)
|
||||
|
||||
/**
|
||||
* Extension for [Criteria.in] providing an `inValues` alias since `in` is a reserved keyword in Kotlin.
|
||||
*
|
||||
* @author Sebastien Deleuze
|
||||
* @since 2.0
|
||||
*/
|
||||
fun Criteria.inValues(vararg o: Any) : Criteria = `in`(*o)
|
||||
@@ -0,0 +1,34 @@
|
||||
package org.springframework.data.mongodb.core.query
|
||||
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.mockito.Answers
|
||||
import org.mockito.Mock
|
||||
import org.mockito.Mockito
|
||||
import org.mockito.junit.MockitoJUnitRunner
|
||||
|
||||
/**
|
||||
* @author Sebastien Deleuze
|
||||
*/
|
||||
@RunWith(MockitoJUnitRunner::class)
|
||||
class CriteriaExtensionsTests {
|
||||
|
||||
@Mock(answer = Answers.RETURNS_MOCKS)
|
||||
lateinit var criteria: Criteria
|
||||
|
||||
@Test
|
||||
fun `isEqualTo() extension should call its Java counterpart`() {
|
||||
val foo = "foo"
|
||||
criteria.isEqualTo(foo)
|
||||
Mockito.verify(criteria, Mockito.times(1)).`is`(foo)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `inValues() extension should call its Java counterpart`() {
|
||||
val foo = "foo"
|
||||
val bar = "bar"
|
||||
criteria.inValues(foo, bar)
|
||||
Mockito.verify(criteria, Mockito.times(1)).`in`(foo, bar)
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user