John Blum
2022-07-22 14:39:35 -07:00
parent 533e325493
commit b2cf973a52
2 changed files with 43 additions and 15 deletions

View File

@@ -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() {

View File

@@ -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">