diff --git a/spring-data-geode-test/src/main/java/org/springframework/data/gemfire/tests/mock/GemFireMockObjectsSupport.java b/spring-data-geode-test/src/main/java/org/springframework/data/gemfire/tests/mock/GemFireMockObjectsSupport.java index ae89a14..dd2271c 100644 --- a/spring-data-geode-test/src/main/java/org/springframework/data/gemfire/tests/mock/GemFireMockObjectsSupport.java +++ b/spring-data-geode-test/src/main/java/org/springframework/data/gemfire/tests/mock/GemFireMockObjectsSupport.java @@ -2797,6 +2797,19 @@ public abstract class GemFireMockObjectsSupport extends MockObjectsSupport { return invalidatedKeys.remove(key) ? null : value; }); + // Region.removeAll(:Collection) + doAnswer(invocation -> { + + Collection keys = invocation.getArgument(0); + + CollectionUtils.nullSafeCollection(keys).stream() + .filter(Objects::nonNull) + .forEach(mockRegion::remove); + + return null; + + }).when(mockRegion).removeAll(any(Collection.class)); + // Region.size() doAnswer(invocation -> data.size()).when(mockRegion).size(); } diff --git a/spring-data-geode-test/src/test/java/org/springframework/data/gemfire/tests/MockRegionDataAccessOperationsAndEventsUnitTests.java b/spring-data-geode-test/src/test/java/org/springframework/data/gemfire/tests/MockRegionDataAccessOperationsAndEventsUnitTests.java index e719ae3..b05d92c 100644 --- a/spring-data-geode-test/src/test/java/org/springframework/data/gemfire/tests/MockRegionDataAccessOperationsAndEventsUnitTests.java +++ b/spring-data-geode-test/src/test/java/org/springframework/data/gemfire/tests/MockRegionDataAccessOperationsAndEventsUnitTests.java @@ -25,6 +25,7 @@ import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doThrow; import static org.mockito.Mockito.inOrder; import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.never; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoInteractions; @@ -570,7 +571,7 @@ public class MockRegionDataAccessOperationsAndEventsUnitTests { } @Test - public void regionGetAllForKeysIsCorrect() { + public void regionGetAllKeysIsCorrect() { Map expectedResults = MapBuilder.newMapBuilder() .put(1, "ONE") @@ -726,4 +727,24 @@ public class MockRegionDataAccessOperationsAndEventsUnitTests { verify(this.mockRegion, times(1)).put(eq(1), eq("TEST")); verify(this.mockRegion, times(1)).put(eq(2), eq("MOCK")); } + + @Test + public void regionRemoveAllKeysIsCorrect() { + + this.mockRegion.put(1, "TEST"); + this.mockRegion.put(2, "MOCK"); + this.mockRegion.put(3, "NULL"); + + assertThat(this.mockRegion).hasSize(3); + + this.mockRegion.removeAll(Arrays.asList(1, 2)); + + assertThat(this.mockRegion).hasSize(1); + assertThat(this.mockRegion).doesNotContainKeys(1, 2); + assertThat(this.mockRegion.get(3)).isEqualTo("NULL"); + + verify(this.mockRegion, times(1)).remove(eq(1)); + verify(this.mockRegion, times(1)).remove(eq(2)); + verify(this.mockRegion, never()).remove(eq(3)); + } } diff --git a/spring-data-geode-test/src/test/java/org/springframework/data/gemfire/tests/mock/GemFireMockObjectsSupportUnitTests.java b/spring-data-geode-test/src/test/java/org/springframework/data/gemfire/tests/mock/GemFireMockObjectsSupportUnitTests.java index ed40dfb..0224f75 100644 --- a/spring-data-geode-test/src/test/java/org/springframework/data/gemfire/tests/mock/GemFireMockObjectsSupportUnitTests.java +++ b/spring-data-geode-test/src/test/java/org/springframework/data/gemfire/tests/mock/GemFireMockObjectsSupportUnitTests.java @@ -36,11 +36,20 @@ import org.apache.geode.cache.asyncqueue.AsyncEventQueueFactory; import org.apache.geode.cache.server.ClientSubscriptionConfig; /** - * Unit tests for {@link GemFireMockObjectsSupport}. + * Unit Tests for {@link GemFireMockObjectsSupport}. * * @author John Blum * @see org.junit.Test * @see org.mockito.Mockito + * @see org.apache.geode.cache.AttributesMutator + * @see org.apache.geode.cache.Cache + * @see org.apache.geode.cache.Region + * @see org.apache.geode.cache.RegionAttributes + * @see org.apache.geode.cache.RegionService + * @see org.apache.geode.cache.asyncqueue.AsyncEventListener + * @see org.apache.geode.cache.asyncqueue.AsyncEventQueue + * @see org.apache.geode.cache.asyncqueue.AsyncEventQueueFactory + * @see org.apache.geode.cache.server.ClientSubscriptionConfig * @see org.springframework.data.gemfire.tests.mock.GemFireMockObjectsSupport * @since 1.0.0 */