Mock the Region.containsValueForKey(key) operation.

This commit is contained in:
John Blum
2020-09-15 19:11:41 -07:00
parent e7c106f4ca
commit 06cdda618d
2 changed files with 28 additions and 0 deletions

View File

@@ -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.<K>any())).thenAnswer(invocation -> {

View File

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