Mock the Region.removeAll(:Collection<K>) operation.

This commit is contained in:
John Blum
2020-09-16 14:50:12 -07:00
parent e453578340
commit 8c32143918
3 changed files with 45 additions and 2 deletions

View File

@@ -2797,6 +2797,19 @@ public abstract class GemFireMockObjectsSupport extends MockObjectsSupport {
return invalidatedKeys.remove(key) ? null : value;
});
// Region.removeAll(:Collection<K>)
doAnswer(invocation -> {
Collection<K> 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();
}

View File

@@ -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<Object, Object> 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));
}
}

View File

@@ -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
*/