Mock the Map/Region.keySet() operation.

This commit is contained in:
John Blum
2020-09-16 13:21:00 -07:00
parent f5fe40dfcd
commit 1a10296740
2 changed files with 43 additions and 0 deletions

View File

@@ -2683,6 +2683,9 @@ public abstract class GemFireMockObjectsSupport extends MockObjectsSupport {
// Map.isEmpty() / Region.isEmpty()
doAnswer(invocation -> data.isEmpty()).when(mockRegion).isEmpty();
// Map.keySet() / Region.keySet()
doAnswer(invocation -> Collections.unmodifiableSet(data.keySet())).when(mockRegion).keySet();
// Region.put(key, value)
when(mockRegion.put(any(), any())).thenAnswer(invocation -> {

View File

@@ -49,6 +49,7 @@ import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import org.mockito.stubbing.Answer;
import org.apache.geode.UnmodifiableException;
import org.apache.geode.cache.CacheListener;
import org.apache.geode.cache.CacheLoader;
import org.apache.geode.cache.CacheWriter;
@@ -638,4 +639,43 @@ public class MockRegionDataAccessOperationsAndEventsUnitTests {
assertThat(this.mockRegion).hasSize(0);
assertThat(this.mockRegion).isEmpty();
}
@Test
@SuppressWarnings("rawtypes")
public void mapRegionKeySetIsCorrect() {
Set keys = this.mockRegion.keySet();
assertThat(keys).isNotNull();
assertThat(keys).isEmpty();
this.mockRegion.put(1, "TEST");
keys = this.mockRegion.keySet();
assertThat(keys).isNotNull();
assertThat(keys).hasSize(1);
assertThat(keys).containsExactlyInAnyOrder(1);
this.mockRegion.put(2, "MOCK");
keys = this.mockRegion.keySet();
assertThat(keys).isNotNull();
assertThat(keys).hasSize(2);
assertThat(keys).containsExactlyInAnyOrder(1, 2);
this.mockRegion.remove(1);
keys = this.mockRegion.keySet();
assertThat(keys).isNotNull();
assertThat(keys).hasSize(1);
assertThat(keys).containsExactlyInAnyOrder(2);
}
@Test(expected = UnsupportedOperationException.class)
public void mapRegionKeySetIsUnmodifiable() {
this.mockRegion.keySet().add(1);
}
}