Refactor the RegionExpirationAttributesNamespaceIntegrationTests.
See: https://github.com/spring-projects/spring-data-geode/issues/616. See: https://stackoverflow.com/questions/73082303/gfeentry-ttl-and-gfeentry-ttielements-are-not-allowed-under-gfereplicate. Closes #616.
This commit is contained in:
@@ -21,11 +21,17 @@ import static org.mockito.Mockito.mock;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import org.apache.geode.cache.CacheListener;
|
||||
import org.apache.geode.cache.CacheLoader;
|
||||
import org.apache.geode.cache.CacheLoaderException;
|
||||
import org.apache.geode.cache.CustomExpiry;
|
||||
import org.apache.geode.cache.DataPolicy;
|
||||
import org.apache.geode.cache.ExpirationAction;
|
||||
import org.apache.geode.cache.ExpirationAttributes;
|
||||
import org.apache.geode.cache.LoaderHelper;
|
||||
import org.apache.geode.cache.Region;
|
||||
import org.apache.geode.cache.util.CacheListenerAdapter;
|
||||
import org.apache.geode.cache.util.CacheWriterAdapter;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
@@ -69,23 +75,24 @@ public class RegionExpirationAttributesNamespaceIntegrationTests extends Integra
|
||||
@Qualifier("LocalExample")
|
||||
private Region<?, ?> localExample;
|
||||
|
||||
private void assertRegionMetaData(final Region<?, ?> region, final String regionName, final DataPolicy dataPolicy) {
|
||||
private void assertRegionMetaData(Region<?, ?> region, String regionName, DataPolicy dataPolicy) {
|
||||
assertRegionMetaData(region, regionName, Region.SEPARATOR + regionName, dataPolicy);
|
||||
}
|
||||
|
||||
private void assertRegionMetaData(Region<?, ?> region, String regionName, String regionFullPath,
|
||||
DataPolicy dataPolicy) {
|
||||
private void assertRegionMetaData(Region<?, ?> region,
|
||||
String regionName, String regionFullPath, DataPolicy dataPolicy) {
|
||||
|
||||
assertThat(region)
|
||||
.as(String.format("The '%1$s' Region was not properly configured and initialized", regionName))
|
||||
.describedAs("The '%s' Region was not properly configured and initialized", regionName)
|
||||
.isNotNull();
|
||||
|
||||
assertThat(region.getName()).isEqualTo(regionName);
|
||||
assertThat(region.getFullPath()).isEqualTo(regionFullPath);
|
||||
assertThat(region.getAttributes()).isNotNull();
|
||||
assertThat(region.getAttributes().getDataPolicy()).isEqualTo(dataPolicy);
|
||||
}
|
||||
|
||||
private void assertNoExpiration(final ExpirationAttributes expirationAttributes) {
|
||||
private void assertNoExpiration(ExpirationAttributes expirationAttributes) {
|
||||
|
||||
if (expirationAttributes != null) {
|
||||
//assertEquals(ExpirationAction.INVALIDATE, expirationAttributes.getAction());
|
||||
@@ -111,7 +118,7 @@ public class RegionExpirationAttributesNamespaceIntegrationTests extends Integra
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testReplicateExampleExpirationAttributes() {
|
||||
public void exampleReplicateRegionExpirationAttributesAreCorrect() {
|
||||
|
||||
assertRegionMetaData(replicateExample, "ReplicateExample", DataPolicy.REPLICATE);
|
||||
assertExpirationAttributes(replicateExample.getAttributes().getEntryTimeToLive(),
|
||||
@@ -123,7 +130,7 @@ public class RegionExpirationAttributesNamespaceIntegrationTests extends Integra
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPreloadedExampleExpirationAttributes() {
|
||||
public void examplePreloadedRegionExpirationAttributesAreCorrect() {
|
||||
|
||||
assertRegionMetaData(preloadedExample, "PreloadedExample", DataPolicy.PRELOADED);
|
||||
assertExpirationAttributes(preloadedExample.getAttributes().getEntryTimeToLive(),
|
||||
@@ -134,7 +141,7 @@ public class RegionExpirationAttributesNamespaceIntegrationTests extends Integra
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPartitionExampleExpirationAttributes() {
|
||||
public void examplePartitionRegionExpirationAttributesAreCorrect() {
|
||||
|
||||
assertRegionMetaData(partitionExample, "PartitionExample", DataPolicy.PARTITION);
|
||||
assertExpirationAttributes(partitionExample.getAttributes().getEntryTimeToLive(),
|
||||
@@ -146,7 +153,7 @@ public class RegionExpirationAttributesNamespaceIntegrationTests extends Integra
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLocalExampleExpirationAttributes() {
|
||||
public void exampleLocalRegionExpirationAttributesAreCorrect() {
|
||||
|
||||
assertRegionMetaData(localExample, "LocalExample", DataPolicy.NORMAL);
|
||||
assertNoExpiration(localExample.getAttributes().getEntryTimeToLive());
|
||||
@@ -157,6 +164,18 @@ public class RegionExpirationAttributesNamespaceIntegrationTests extends Integra
|
||||
60, ExpirationAction.LOCAL_INVALIDATE);
|
||||
}
|
||||
|
||||
public static class TestCacheListener<K, V> extends CacheListenerAdapter<K, V> { }
|
||||
|
||||
public static class TestCacheLoader<K, V> implements CacheLoader<K, V> {
|
||||
|
||||
@Override
|
||||
public V load(LoaderHelper<K, V> loaderHelper) throws CacheLoaderException {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static class TestCacheWriter<K, V> extends CacheWriterAdapter<K, V> { }
|
||||
|
||||
public static class TestCustomExpiry<K, V> implements CustomExpiry<K, V> {
|
||||
|
||||
private ExpirationAction action;
|
||||
@@ -172,21 +191,20 @@ public class RegionExpirationAttributesNamespaceIntegrationTests extends Integra
|
||||
return new ExpirationAttributes(timeout, action);
|
||||
}
|
||||
|
||||
public void setAction(final ExpirationAction action) {
|
||||
public void setAction(ExpirationAction action) {
|
||||
this.action = action;
|
||||
}
|
||||
|
||||
public void setName(final String name) {
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public void setTimeout(final Integer timeout) {
|
||||
public void setTimeout(Integer timeout) {
|
||||
this.timeout = timeout;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() {
|
||||
}
|
||||
public void close() { }
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
|
||||
@@ -19,15 +19,22 @@
|
||||
<context:property-placeholder properties-ref="expirationProperties"/>
|
||||
|
||||
<util:properties id="gemfireProperties">
|
||||
<prop key="name">RegionExpirationAttributesNamespaceTest</prop>
|
||||
<prop key="name">RegionExpirationAttributesNamespaceIntegrationTests</prop>
|
||||
<prop key="log-level">error</prop>
|
||||
</util:properties>
|
||||
|
||||
<gfe:cache properties-ref="gemfireProperties"/>
|
||||
|
||||
<bean name="testListener" class="org.springframework.data.gemfire.config.xml.RegionExpirationAttributesNamespaceIntegrationTests$TestCacheListener"/>
|
||||
<bean name="testLoader" class="org.springframework.data.gemfire.config.xml.RegionExpirationAttributesNamespaceIntegrationTests$TestCacheLoader"/>
|
||||
<bean name="testWriter" class="org.springframework.data.gemfire.config.xml.RegionExpirationAttributesNamespaceIntegrationTests$TestCacheWriter"/>
|
||||
|
||||
<gfe:replicated-region id="ReplicateExample" persistent="false">
|
||||
<gfe:cache-listener ref="testListener"/>
|
||||
<gfe:entry-ttl timeout="600" action="${expiration.action}"/>
|
||||
<gfe:entry-tti timeout="300" action="INVALIDATE"/>
|
||||
<gfe:cache-loader ref="testLoader"/>
|
||||
<gfe:cache-writer ref="testWriter"/>
|
||||
</gfe:replicated-region>
|
||||
|
||||
<!--
|
||||
@@ -39,11 +46,14 @@
|
||||
</gfe:local-region>
|
||||
|
||||
<gfe:partitioned-region id="PartitionExample" persistent="false">
|
||||
<gfe:cache-listener ref="testListener"/>
|
||||
<gfe:entry-ttl timeout="300" action="${expiration.action}"/>
|
||||
<gfe:custom-entry-tti>
|
||||
<bean class="org.springframework.data.gemfire.config.xml.RegionExpirationAttributesNamespaceIntegrationTests$TestCustomExpiry"
|
||||
p:name="PartitionCustomExpiry" p:timeout="120" p:action="#{T(org.apache.geode.cache.ExpirationAction).INVALIDATE}"/>
|
||||
</gfe:custom-entry-tti>
|
||||
<gfe:cache-loader ref="testLoader"/>
|
||||
<gfe:cache-writer ref="testWriter"/>
|
||||
</gfe:partitioned-region>
|
||||
|
||||
<gfe:local-region id="LocalExample" persistent="false">
|
||||
|
||||
Reference in New Issue
Block a user