Mock the Map.forEach(:BiConsumer<K, V>) operation.
This commit is contained in:
@@ -67,6 +67,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.concurrent.atomic.AtomicLong;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
import java.util.function.BiConsumer;
|
||||
import java.util.function.Function;
|
||||
import java.util.function.Supplier;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -2357,6 +2358,16 @@ public abstract class GemFireMockObjectsSupport extends MockObjectsSupport {
|
||||
|
||||
}).when(mockRegion).containsValueForKey(any());
|
||||
|
||||
doAnswer(invocation -> {
|
||||
|
||||
BiConsumer<K, V> consumer = invocation.getArgument(0);
|
||||
|
||||
data.forEach(consumer);
|
||||
|
||||
return null;
|
||||
|
||||
}).when(mockRegion).forEach(any(BiConsumer.class));
|
||||
|
||||
// Region.get(key)
|
||||
when(mockRegion.get(ArgumentMatchers.<K>any())).thenAnswer(invocation -> {
|
||||
|
||||
|
||||
@@ -30,8 +30,10 @@ import static org.mockito.Mockito.verifyNoMoreInteractions;
|
||||
import static org.mockito.Mockito.when;
|
||||
import static org.springframework.data.gemfire.util.RuntimeExceptionFactory.newIllegalStateException;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
import org.junit.After;
|
||||
@@ -545,4 +547,21 @@ public class MockRegionDataAccessOperationsAndEventsUnitTests {
|
||||
assertThat(this.mockRegion.containsValueForKey(2)).isFalse();
|
||||
assertThat(this.mockRegion.containsValueForKey(3)).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void mapForEachIsCorrect() {
|
||||
|
||||
Set<String> entryStrings = new HashSet<>(2);
|
||||
|
||||
assertThat(this.mockRegion).hasSize(0);
|
||||
|
||||
this.mockRegion.put(1, "TEST");
|
||||
this.mockRegion.put(2, "MOCK");
|
||||
|
||||
assertThat(this.mockRegion).hasSize(2);
|
||||
|
||||
this.mockRegion.forEach((key, value) -> entryStrings.add(String.format("%1$s-%2$s", key, value)));
|
||||
|
||||
assertThat(entryStrings).containsExactlyInAnyOrder("1-TEST", "2-MOCK");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user