Mock the Region.getParentRegion() operation for sub-Regions.

This commit is contained in:
John Blum
2020-09-16 12:51:02 -07:00
parent 74634337fb
commit 051447a76d
3 changed files with 25 additions and 2 deletions

View File

@@ -623,7 +623,7 @@ public abstract class GemFireMockObjectsSupport extends MockObjectsSupport {
int lastIndexOfRegionSeparator = it.lastIndexOf(Region.SEPARATOR);
return lastIndexOfRegionSeparator < 0 ? it : it.substring(lastIndexOfRegionSeparator);
return lastIndexOfRegionSeparator < 0 ? it : it.substring(lastIndexOfRegionSeparator + 1);
})
.filter(it -> !it.isEmpty())
.orElseThrow(() -> newIllegalArgumentException("Region name [%s] is required", regionName));
@@ -2777,6 +2777,8 @@ public abstract class GemFireMockObjectsSupport extends MockObjectsSupport {
Region<K, V> mockSubRegion = mockRegion(parent.getRegionService(), subRegionName, regionAttributes);
doReturn(parent).when(mockSubRegion).getParentRegion();
parent.subregions(false).add(mockSubRegion);
return mockSubRegion;

View File

@@ -465,7 +465,7 @@ public class MockRegionDataAccessOperationsAndEventsUnitTests {
@Test
@SuppressWarnings("all")
public void mockingPutIfAbsentWorksAsExpected() {
public void mockingUnsupportedPutIfAbsentWorksAsExpected() {
doAnswer(invocation -> {

View File

@@ -17,6 +17,7 @@ package org.springframework.data.gemfire.tests.mock;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
@@ -119,6 +120,26 @@ public class GemFireMockObjectsSupportUnitTests {
assertThat(mockClientSubscriptionConfig.getEvictionPolicy()).isEqualTo("entry");
}
@Test
@SuppressWarnings({ "rawtypes", "unchecked" })
public void mockSubRegionIsCorrect() {
Region mockRegion = mock(Region.class);
doReturn("MockRegion").when(mockRegion).getName();
doReturn("/MockRegion").when(mockRegion).getFullPath();
RegionAttributes mockRegionAttributes = mock(RegionAttributes.class);
Region mockSubRegion = GemFireMockObjectsSupport.mockSubRegion(mockRegion, "MockSubRegion",
mockRegionAttributes);
assertThat(mockSubRegion).isNotNull();
assertThat(mockSubRegion.getName()).isEqualTo("MockSubRegion");
assertThat(mockSubRegion.getFullPath()).isEqualTo("/MockRegion/MockSubRegion");
assertThat(mockSubRegion.getParentRegion()).isEqualTo(mockRegion);
}
@Test
public void regionAttributesMutatorGetRegionReturnsRegion() {