From 8f8d792b61d4054c6eb197417d83f84bca5cc87a Mon Sep 17 00:00:00 2001 From: Sebastien Deleuze Date: Mon, 24 Jul 2017 10:52:05 +0200 Subject: [PATCH] DATAMONGO-1748 - Fine-tuning of nullability expressions in Kotlin extension for Criteria. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- .../mongodb/core/query/CriteriaExtensions.kt | 4 ++-- .../core/query/CriteriaExtensionsTests.kt | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/query/CriteriaExtensions.kt b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/query/CriteriaExtensions.kt index e9d76e79e..5c331627b 100644 --- a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/query/CriteriaExtensions.kt +++ b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/query/CriteriaExtensions.kt @@ -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) diff --git a/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/query/CriteriaExtensionsTests.kt b/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/query/CriteriaExtensionsTests.kt index f3ea8edd6..983ca17b9 100644 --- a/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/query/CriteriaExtensionsTests.kt +++ b/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/query/CriteriaExtensionsTests.kt @@ -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) + } }