From 06cdda618d8f8d54cd998ea1bb3d529b1b33589c Mon Sep 17 00:00:00 2001 From: John Blum Date: Tue, 15 Sep 2020 19:11:41 -0700 Subject: [PATCH] Mock the Region.containsValueForKey(key) operation. --- .../tests/mock/GemFireMockObjectsSupport.java | 12 ++++++++++++ ...onDataAccessOperationsAndEventsUnitTests.java | 16 ++++++++++++++++ 2 files changed, 28 insertions(+) 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 674f097..8b4951a 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 @@ -2342,9 +2342,21 @@ public abstract class GemFireMockObjectsSupport extends MockObjectsSupport { doAnswer(invocation -> data.containsKey(invocation.getArgument(0))) .when(mockRegion).containsKey(any()); + // Map.containsValue(value) / Region.containsValue(value) doAnswer(invocation -> data.containsValue(invocation.getArgument(0))) .when(mockRegion).containsValue(any()); + // Region.containsValueForKey(key) + doAnswer(invocation -> { + + K key = invocation.getArgument(0); + + return !invalidatedKeys.contains(key) + && data.containsKey(key) + && Objects.nonNull(data.get(key)); + + }).when(mockRegion).containsValueForKey(any()); + // Region.get(key) when(mockRegion.get(ArgumentMatchers.any())).thenAnswer(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 c1d854e..c9ef68d 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 @@ -529,4 +529,20 @@ public class MockRegionDataAccessOperationsAndEventsUnitTests { assertThat(this.mockRegion.containsValue("Mock")).isFalse(); assertThat(this.mockRegion.containsValue("mock")).isFalse(); } + + @Test + public void regionContainsValueForKeyIsCorrect() { + + assertThat(this.mockRegion).hasSize(0); + + this.mockRegion.put(1, "TEST"); + this.mockRegion.put(2, "MOCK"); + this.mockRegion.invalidate(2); + + assertThat(this.mockRegion).hasSize(2); + assertThat(this.mockRegion.containsValueForKey(1)).isTrue(); + assertThat(this.mockRegion.containsValueForKey(1L)).isFalse(); + assertThat(this.mockRegion.containsValueForKey(2)).isFalse(); + assertThat(this.mockRegion.containsValueForKey(3)).isFalse(); + } }