From 54c760349644339cf13b034bc87c462b2f466c12 Mon Sep 17 00:00:00 2001 From: Jens Schauder Date: Wed, 11 Nov 2020 11:46:49 +0100 Subject: [PATCH] DATAKV-330 - Implement CrudRepository.deleteAllById(Iterable ids). Original pull request: #52. --- .../support/SimpleKeyValueRepository.java | 8 ++++++++ .../SimpleKeyValueRepositoryUnitTests.java | 15 +++++++++++++-- .../data/map/AbstractRepositoryUnitTests.java | 1 + 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/springframework/data/keyvalue/repository/support/SimpleKeyValueRepository.java b/src/main/java/org/springframework/data/keyvalue/repository/support/SimpleKeyValueRepository.java index f26bae6..80e55d5 100644 --- a/src/main/java/org/springframework/data/keyvalue/repository/support/SimpleKeyValueRepository.java +++ b/src/main/java/org/springframework/data/keyvalue/repository/support/SimpleKeyValueRepository.java @@ -216,6 +216,14 @@ public class SimpleKeyValueRepository implements KeyValueRepository ids) { + + Assert.notNull(ids, "The given Iterable of Ids must not be null!"); + + ids.forEach(this::deleteById); + } + /* * (non-Javadoc) * @see org.springframework.data.repository.CrudRepository#deleteAll() diff --git a/src/test/java/org/springframework/data/keyvalue/repository/SimpleKeyValueRepositoryUnitTests.java b/src/test/java/org/springframework/data/keyvalue/repository/SimpleKeyValueRepositoryUnitTests.java index 7920af3..093445d 100644 --- a/src/test/java/org/springframework/data/keyvalue/repository/SimpleKeyValueRepositoryUnitTests.java +++ b/src/test/java/org/springframework/data/keyvalue/repository/SimpleKeyValueRepositoryUnitTests.java @@ -15,6 +15,7 @@ */ package org.springframework.data.keyvalue.repository; +import static java.util.Arrays.*; import static org.assertj.core.api.Assertions.*; import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; @@ -46,6 +47,7 @@ import org.springframework.data.repository.core.support.PersistentEntityInformat /** * @author Christoph Strobl * @author Eugene Nikiforov + * @author Jens Schauder */ @RunWith(MockitoJUnitRunner.class) public class SimpleKeyValueRepositoryUnitTests { @@ -94,7 +96,7 @@ public class SimpleKeyValueRepositoryUnitTests { Foo one = new Foo("one"); Foo two = new Foo("two"); - repo.saveAll(Arrays.asList(one, two)); + repo.saveAll(asList(one, two)); verify(opsMock, times(1)).insert(eq(one)); verify(opsMock, times(1)).insert(eq(two)); } @@ -118,6 +120,15 @@ public class SimpleKeyValueRepositoryUnitTests { verify(opsMock, times(1)).delete(eq("one"), eq(Foo.class)); } + @Test // DATAKV-330 + public void deleteAllById() { + + repo.deleteAllById(asList("one", "two")); + + verify(opsMock, times(1)).delete(eq("one"), eq(Foo.class)); + verify(opsMock, times(1)).delete(eq("two"), eq(Foo.class)); + } + @Test // DATACMNS-525 public void deleteAll() { @@ -131,7 +142,7 @@ public class SimpleKeyValueRepositoryUnitTests { public void findAllIds() { when(opsMock.findById(any(), any(Class.class))).thenReturn(Optional.empty()); - repo.findAllById(Arrays.asList("one", "two", "three")); + repo.findAllById(asList("one", "two", "three")); verify(opsMock, times(3)).findById(anyString(), eq(Foo.class)); } diff --git a/src/test/java/org/springframework/data/map/AbstractRepositoryUnitTests.java b/src/test/java/org/springframework/data/map/AbstractRepositoryUnitTests.java index a7eb618..af509e9 100644 --- a/src/test/java/org/springframework/data/map/AbstractRepositoryUnitTests.java +++ b/src/test/java/org/springframework/data/map/AbstractRepositoryUnitTests.java @@ -43,6 +43,7 @@ import org.springframework.data.repository.CrudRepository; * @author Oliver Gierke * @author Thomas Darimont * @author Mark Paluch + * @author Jens Schauder */ public abstract class AbstractRepositoryUnitTests {