From c4d2bd5d580ae47a007062f7901485155ec55976 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Thu, 26 Nov 2020 09:21:03 +0100 Subject: [PATCH] DATACMNS-800 - Add deleteAllById to CoroutineCrudRepository. Original pull request: #476. --- .../repository/kotlin/CoroutineCrudRepository.kt | 9 +++++++++ .../kotlin/CoroutineCrudRepositoryUnitTests.kt | 12 ++++++++++++ 2 files changed, 21 insertions(+) diff --git a/src/main/kotlin/org/springframework/data/repository/kotlin/CoroutineCrudRepository.kt b/src/main/kotlin/org/springframework/data/repository/kotlin/CoroutineCrudRepository.kt index 7a7632536..112dd1c5f 100644 --- a/src/main/kotlin/org/springframework/data/repository/kotlin/CoroutineCrudRepository.kt +++ b/src/main/kotlin/org/springframework/data/repository/kotlin/CoroutineCrudRepository.kt @@ -132,6 +132,15 @@ interface CoroutineCrudRepository : Repository { */ suspend fun delete(entity: T) + /** + * Deletes all instances of the type `T` with the given IDs. + * + * @param ids must not be null nor contain any null values. + * @throws IllegalArgumentException in case the given [ids][Iterable] or one of its items is null. + * @since 2.5 + */ + suspend fun deleteAllById(ids: Iterable) + /** * Deletes the given entities. * diff --git a/src/test/kotlin/org/springframework/data/repository/kotlin/CoroutineCrudRepositoryUnitTests.kt b/src/test/kotlin/org/springframework/data/repository/kotlin/CoroutineCrudRepositoryUnitTests.kt index c40129219..99a5cedbc 100644 --- a/src/test/kotlin/org/springframework/data/repository/kotlin/CoroutineCrudRepositoryUnitTests.kt +++ b/src/test/kotlin/org/springframework/data/repository/kotlin/CoroutineCrudRepositoryUnitTests.kt @@ -140,6 +140,18 @@ class CoroutineCrudRepositoryUnitTests { assertThat(result).isTrue() } + @Test // DATACMNS-800 + fun shouldInvokeDeleteAllById() { + + every { backingRepository.deleteAllById(listOf("foo", "bar")) } returns Mono.empty() + + runBlocking { + coRepository.deleteAllById(listOf("foo", "bar")) + } + + verify { backingRepository.deleteAllById(listOf("foo", "bar")) } + } + @Test // DATACMNS-1508 fun shouldInvokeDeleteAll() {