DATAMONGO-1748 - Fine-tuning of nullability expressions in Kotlin extension for Criteria.

The Kotlin extensions introduced for Criteria now define relaxed null requirements for both isEqualTo(…) and the elements of the varargs handed to inValues(…).

Original pull request: #488.
This commit is contained in:
Sebastien Deleuze
2017-07-24 10:52:05 +02:00
committed by Oliver Gierke
parent f16809a363
commit 8f8d792b61
2 changed files with 18 additions and 2 deletions

View File

@@ -21,7 +21,7 @@ package org.springframework.data.mongodb.core.query
* @author Sebastien Deleuze
* @since 2.0
*/
fun Criteria.isEqualTo(o: Any) : Criteria = `is`(o)
fun Criteria.isEqualTo(o: Any?) : Criteria = `is`(o)
/**
* Extension for [Criteria.in] providing an `inValues` alias since `in` is a reserved keyword in Kotlin.
@@ -29,4 +29,4 @@ fun Criteria.isEqualTo(o: Any) : Criteria = `is`(o)
* @author Sebastien Deleuze
* @since 2.0
*/
fun Criteria.inValues(vararg o: Any) : Criteria = `in`(*o)
fun Criteria.inValues(vararg o: Any?) : Criteria = `in`(*o)

View File

@@ -41,6 +41,14 @@ class CriteriaExtensionsTests {
Mockito.verify(criteria, Mockito.times(1)).`is`(foo)
}
@Test
fun `isEqualTo() extension should support nullable value`() {
criteria.isEqualTo(null)
Mockito.verify(criteria, Mockito.times(1)).`is`(null)
}
@Test
fun `inValues() extension should call its Java counterpart`() {
@@ -51,4 +59,12 @@ class CriteriaExtensionsTests {
Mockito.verify(criteria, Mockito.times(1)).`in`(foo, bar)
}
@Test
fun `inValues() extension should support nullable values`() {
criteria.inValues(null, null)
Mockito.verify(criteria, Mockito.times(1)).`in`(null, null)
}
}