Mock the Map.forEach(:BiConsumer<K, V>) operation.

This commit is contained in:
John Blum
2020-09-15 19:35:55 -07:00
parent 06cdda618d
commit ea2241847a
2 changed files with 30 additions and 0 deletions

View File

@@ -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 -> {

View File

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