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 5c331627b..0022d5c91 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 @@ -23,6 +23,14 @@ package org.springframework.data.mongodb.core.query */ 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(c: Collection) : Criteria = `in`(c) + /** * Extension for [Criteria.in] providing an `inValues` alias since `in` is a reserved keyword in Kotlin. * 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 983ca17b9..cbacb1b11 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 @@ -50,7 +50,7 @@ class CriteriaExtensionsTests { } @Test - fun `inValues() extension should call its Java counterpart`() { + fun `inValues(varags) extension should call its Java counterpart`() { val foo = "foo" val bar = "bar" @@ -61,10 +61,30 @@ class CriteriaExtensionsTests { } @Test - fun `inValues() extension should support nullable values`() { + fun `inValues(varags) extension should support nullable values`() { criteria.inValues(null, null) Mockito.verify(criteria, Mockito.times(1)).`in`(null, null) } + + @Test + fun `inValues(Collection) extension should call its Java counterpart`() { + + val c = listOf("foo", "bar") + + criteria.inValues(c) + + Mockito.verify(criteria, Mockito.times(1)).`in`(c) + } + + @Test + fun `inValues(Collection) extension should support nullable values`() { + + val c = listOf("foo", null, "bar") + + criteria.inValues(c) + + Mockito.verify(criteria, Mockito.times(1)).`in`(c) + } }