From 74634337fb92f0b692862367f312662bf5a8740f Mon Sep 17 00:00:00 2001 From: John Blum Date: Wed, 16 Sep 2020 12:20:28 -0700 Subject: [PATCH] Mock the Map.getOrDefault(key, defaultValue) operation. --- .../gemfire/tests/mock/GemFireMockObjectsSupport.java | 11 +++++++++++ ...kRegionDataAccessOperationsAndEventsUnitTests.java | 10 +++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) 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 95ca6ce..7d0fab7 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 @@ -2642,6 +2642,17 @@ public abstract class GemFireMockObjectsSupport extends MockObjectsSupport { }) .orElse(null)); + // Map.getOrDefault(key, defaultValue) + doAnswer(invocation -> { + + Object key = invocation.getArgument(0); + Object value = data.get(key); + Object defaultValue = invocation.getArgument(1); + + return value != null ? value : defaultValue; + + }).when(mockRegion).getOrDefault(any(), any()); + // Region.invalidate(key) doAnswer(invocation -> { 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 ea4305f..db57f08 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 @@ -59,7 +59,6 @@ import org.apache.geode.cache.LoaderHelper; import org.apache.geode.cache.Region; import org.apache.geode.cache.RegionAttributes; import org.apache.geode.cache.RegionService; -import org.apache.geode.internal.cache.LoaderHelperImpl; import org.springframework.data.gemfire.tests.mock.GemFireMockObjectsSupport; import org.springframework.data.gemfire.tests.support.MapBuilder; @@ -613,4 +612,13 @@ public class MockRegionDataAccessOperationsAndEventsUnitTests { verify(mockRegionAttributes, times(2)).getCacheLoader(); verifyNoMoreInteractions(mockCacheLoader); } + + @Test + public void mapGetOrDefaultIsCorrect() { + + this.mockRegion.put(1, "TEST"); + + assertThat(this.mockRegion.getOrDefault(1, "MOCK")).isEqualTo("TEST"); + assertThat(this.mockRegion.getOrDefault(2, "MOCK")).isEqualTo("MOCK"); + } }