DATAGEODE-107 - Properly enable statistics when Annotation-based Expiration Policies are enabled with EnableExpiration.
This commit is contained in:
@@ -72,6 +72,7 @@ public class SubRegionIntegrationTest {
|
||||
|
||||
@Test
|
||||
public void testGemFireAccountsSubRegionCreation() {
|
||||
|
||||
assertNotNull("The GemFire Cache was not properly initialized!", cache);
|
||||
|
||||
Region customers = cache.getRegion("Customers");
|
||||
@@ -93,6 +94,7 @@ public class SubRegionIntegrationTest {
|
||||
|
||||
@Test
|
||||
public void testSpringSubRegionConfiguration() {
|
||||
|
||||
assertNotNull("The /Customers/Accounts SubRegion was not properly initialized!", accounts);
|
||||
assertEquals("Accounts", accounts.getName());
|
||||
assertEquals("/Customers/Accounts", accounts.getFullPath());
|
||||
|
||||
@@ -160,7 +160,7 @@ public class ClientRegionFactoryBeanTest {
|
||||
verify(mockClientRegionFactory, times(1)).setPoolName(eq("TestPoolTwo"));
|
||||
verify(mockClientRegionFactory, times(1)).setRegionIdleTimeout(any(ExpirationAttributes.class));
|
||||
verify(mockClientRegionFactory, times(1)).setRegionTimeToLive(any(ExpirationAttributes.class));
|
||||
verify(mockClientRegionFactory, times(1)).setStatisticsEnabled(eq(true));
|
||||
verify(mockClientRegionFactory, times(2)).setStatisticsEnabled(eq(true));
|
||||
verify(mockClientRegionFactory, times(1)).setValueConstraint(eq(Number.class));
|
||||
verify(mockClientRegionFactory, times(1)).create(eq("TestRegion"));
|
||||
verify(mockRegion, never()).loadSnapshot(any(InputStream.class));
|
||||
|
||||
@@ -0,0 +1,105 @@
|
||||
/*
|
||||
* Copyright 2018 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.data.gemfire.config.annotation;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
import org.apache.geode.cache.DataPolicy;
|
||||
import org.apache.geode.cache.Region;
|
||||
import org.apache.geode.cache.RegionShortcut;
|
||||
import org.apache.geode.cache.client.ClientRegionShortcut;
|
||||
import org.junit.After;
|
||||
import org.junit.Test;
|
||||
import org.springframework.context.ConfigurableApplicationContext;
|
||||
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
|
||||
import org.springframework.data.gemfire.eviction.EvictionActionType;
|
||||
import org.springframework.data.gemfire.eviction.EvictionPolicyType;
|
||||
import org.springframework.data.gemfire.test.model.Person;
|
||||
|
||||
/**
|
||||
* The EnableEvictionConfigurationIntegrationTests class...
|
||||
*
|
||||
* @author John Blum
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public class EnableEvictionConfigurationIntegrationTests {
|
||||
|
||||
private static final String GEMFIRE_LOG_LEVEL = "error";
|
||||
|
||||
private ConfigurableApplicationContext applicationContext;
|
||||
|
||||
@After
|
||||
public void tearDown() {
|
||||
Optional.ofNullable(this.applicationContext).ifPresent(ConfigurableApplicationContext::close);
|
||||
}
|
||||
|
||||
private ConfigurableApplicationContext newApplicationContext(Class<?>... annotatedClasses) {
|
||||
this.applicationContext = new AnnotationConfigApplicationContext(annotatedClasses);
|
||||
return this.applicationContext;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private <K, V> Region<K, V> getRegion(ConfigurableApplicationContext applicationContext, String beanName) {
|
||||
return applicationContext.getBean(beanName, Region.class);
|
||||
}
|
||||
|
||||
private void assertRegionEvictionConfiguration(ConfigurableApplicationContext applicationContext,
|
||||
String regionBeanName, EvictionActionType expectedEvictionActionType, int expectedEvictionMaximum) {
|
||||
|
||||
Region<?, ?> region = getRegion(applicationContext, regionBeanName);
|
||||
|
||||
assertThat(region).isNotNull();
|
||||
assertThat(region.getName()).isEqualTo(regionBeanName);
|
||||
assertThat(region.getAttributes()).isNotNull();
|
||||
assertThat(region.getAttributes().getDataPolicy()).isEqualTo(DataPolicy.NORMAL);
|
||||
assertThat(region.getAttributes().getEvictionAttributes()).isNotNull();
|
||||
|
||||
assertThat(region.getAttributes().getEvictionAttributes().getAction())
|
||||
.isEqualTo(expectedEvictionActionType.getEvictionAction());
|
||||
|
||||
assertThat(region.getAttributes().getEvictionAttributes().getAlgorithm())
|
||||
.isEqualTo(EvictionPolicyType.ENTRY_COUNT.getEvictionAlgorithm());
|
||||
|
||||
assertThat(region.getAttributes().getEvictionAttributes().getMaximum()).isEqualTo(expectedEvictionMaximum);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void assertClientCacheRegionEvictionPolicyIsCorrect() {
|
||||
assertRegionEvictionConfiguration(newApplicationContext(ClientCacheRegionEvictionConfiguration.class),
|
||||
"People", EvictionActionType.LOCAL_DESTROY, 100);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void assertPeerCacheRegionEvictionPolicyIsCorrect() {
|
||||
assertRegionEvictionConfiguration(newApplicationContext(PeerCacheRegionEvictionConfiguration.class),
|
||||
"People", EvictionActionType.OVERFLOW_TO_DISK, 10000);
|
||||
}
|
||||
|
||||
@ClientCacheApplication(name = "EnableEvictionConfigurationIntegrationTests", logLevel = GEMFIRE_LOG_LEVEL)
|
||||
@EnableEntityDefinedRegions(basePackageClasses = Person.class, clientRegionShortcut = ClientRegionShortcut.LOCAL)
|
||||
@EnableEviction(policies = @EnableEviction.EvictionPolicy(regionNames = "People", maximum = 100))
|
||||
static class ClientCacheRegionEvictionConfiguration { }
|
||||
|
||||
@PeerCacheApplication(name = "EnableEvictionConfigurationIntegrationTests", logLevel = GEMFIRE_LOG_LEVEL)
|
||||
@EnableEntityDefinedRegions(basePackageClasses = Person.class, serverRegionShortcut = RegionShortcut.LOCAL)
|
||||
@EnableEviction(policies = @EnableEviction.EvictionPolicy(regionNames = "People",
|
||||
action = EvictionActionType.OVERFLOW_TO_DISK, maximum = 10000))
|
||||
static class PeerCacheRegionEvictionConfiguration { }
|
||||
|
||||
}
|
||||
@@ -0,0 +1,99 @@
|
||||
/*
|
||||
* Copyright 2018 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.data.gemfire.config.annotation;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
import org.apache.geode.cache.DataPolicy;
|
||||
import org.apache.geode.cache.Region;
|
||||
import org.apache.geode.cache.RegionShortcut;
|
||||
import org.apache.geode.cache.client.ClientRegionShortcut;
|
||||
import org.junit.After;
|
||||
import org.junit.Test;
|
||||
import org.springframework.context.ConfigurableApplicationContext;
|
||||
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
|
||||
import org.springframework.data.gemfire.expiration.AnnotationBasedExpiration;
|
||||
import org.springframework.data.gemfire.test.model.Person;
|
||||
|
||||
/**
|
||||
* The EnableExpirationConfigurationIntegrationTests class...
|
||||
*
|
||||
* @author John Blum
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public class EnableExpirationConfigurationIntegrationTests {
|
||||
|
||||
private static final String GEMFIRE_LOG_LEVEL = "error";
|
||||
|
||||
private ConfigurableApplicationContext applicationContext;
|
||||
|
||||
@After
|
||||
public void tearDown() {
|
||||
Optional.ofNullable(this.applicationContext).ifPresent(ConfigurableApplicationContext::close);
|
||||
}
|
||||
|
||||
private ConfigurableApplicationContext newApplicationContext(Class<?>... annotatedClasses) {
|
||||
this.applicationContext = new AnnotationConfigApplicationContext(annotatedClasses);
|
||||
return this.applicationContext;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private <K, V> Region<K, V> getRegion(ConfigurableApplicationContext applicationContext, String beanName) {
|
||||
return applicationContext.getBean(beanName, Region.class);
|
||||
}
|
||||
|
||||
private void assertRegionExpirationConfiguration(ConfigurableApplicationContext applicationContext,
|
||||
String regionBeanName) {
|
||||
|
||||
Region<?, ?> region = getRegion(applicationContext, regionBeanName);
|
||||
|
||||
assertThat(region).isNotNull();
|
||||
assertThat(region.getName()).isEqualTo(regionBeanName);
|
||||
assertThat(region.getAttributes()).isNotNull();
|
||||
assertThat(region.getAttributes().getDataPolicy()).isEqualTo(DataPolicy.NORMAL);
|
||||
assertThat(region.getAttributes().getStatisticsEnabled()).isTrue();
|
||||
assertThat(region.getAttributes().getCustomEntryIdleTimeout())
|
||||
.isInstanceOf(AnnotationBasedExpiration.class);
|
||||
assertThat(region.getAttributes().getCustomEntryTimeToLive())
|
||||
.isInstanceOf(AnnotationBasedExpiration.class);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void assertClientCacheRegionExpirationPoliciesAreCorrect() {
|
||||
assertRegionExpirationConfiguration(newApplicationContext(ClientCacheRegionExpirationConfiguration.class),
|
||||
"People");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void assertPeerCacheRegionExpirationPoliciesAreCorrect() {
|
||||
assertRegionExpirationConfiguration(newApplicationContext(PeerCacheRegionExpirationConfiguration.class),
|
||||
"People");
|
||||
}
|
||||
|
||||
@ClientCacheApplication(name = "EnableExpirationConfigurationIntegrationTests", logLevel = GEMFIRE_LOG_LEVEL)
|
||||
@EnableEntityDefinedRegions(basePackageClasses = Person.class, clientRegionShortcut = ClientRegionShortcut.LOCAL)
|
||||
@EnableExpiration
|
||||
static class ClientCacheRegionExpirationConfiguration { }
|
||||
|
||||
@PeerCacheApplication(name = "EnableExpirationConfigurationIntegrationTests", logLevel = GEMFIRE_LOG_LEVEL)
|
||||
@EnableEntityDefinedRegions(basePackageClasses = Person.class, serverRegionShortcut = RegionShortcut.LOCAL)
|
||||
@EnableExpiration
|
||||
static class PeerCacheRegionExpirationConfiguration { }
|
||||
|
||||
}
|
||||
@@ -18,30 +18,26 @@
|
||||
package org.springframework.data.gemfire.config.annotation;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.mockito.Matchers.any;
|
||||
import static org.mockito.Mockito.doAnswer;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
import static org.springframework.data.gemfire.config.annotation.EnableExpiration.ExpirationPolicy;
|
||||
import static org.springframework.data.gemfire.config.annotation.EnableExpiration.ExpirationType;
|
||||
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
import java.util.Optional;
|
||||
|
||||
import org.apache.geode.cache.AttributesMutator;
|
||||
import org.apache.geode.cache.CustomExpiry;
|
||||
import org.apache.geode.cache.ExpirationAction;
|
||||
import org.apache.geode.cache.ExpirationAttributes;
|
||||
import org.apache.geode.cache.GemFireCache;
|
||||
import org.apache.geode.cache.Region;
|
||||
import org.apache.geode.cache.RegionAttributes;
|
||||
import org.junit.After;
|
||||
import org.junit.Test;
|
||||
import org.mockito.invocation.InvocationOnMock;
|
||||
import org.mockito.stubbing.Answer;
|
||||
import org.springframework.context.ConfigurableApplicationContext;
|
||||
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.data.gemfire.LocalRegionFactoryBean;
|
||||
import org.springframework.data.gemfire.expiration.ExpirationActionType;
|
||||
import org.springframework.data.gemfire.test.mock.annotation.EnableGemFireMockObjects;
|
||||
import org.springframework.data.gemfire.util.ArrayUtils;
|
||||
|
||||
/**
|
||||
@@ -64,42 +60,43 @@ public class EnableExpirationConfigurationUnitTests {
|
||||
|
||||
@After
|
||||
public void tearDown() {
|
||||
if (applicationContext != null) {
|
||||
applicationContext.close();
|
||||
}
|
||||
Optional.ofNullable(this.applicationContext).ifPresent(ConfigurableApplicationContext::close);
|
||||
}
|
||||
|
||||
protected <K, V> void assertRegionExpiration(ExpirationAttributes expectedExpirationAttributes,
|
||||
@SuppressWarnings({ "unchecked", "unused" })
|
||||
private <K, V> void assertRegionExpiration(ExpirationAttributes expectedExpirationAttributes,
|
||||
Region<K, V> region, V... applicationDomainObjects) {
|
||||
|
||||
assertIdleTimeoutExpiration(expectedExpirationAttributes, region, applicationDomainObjects);
|
||||
assertTimeToLiveExpiration(expectedExpirationAttributes, region, applicationDomainObjects);
|
||||
}
|
||||
|
||||
protected <K, V> void assertIdleTimeoutExpiration(ExpirationAttributes expectedExpirationAttributes,
|
||||
@SuppressWarnings("unchecked")
|
||||
private <K, V> void assertIdleTimeoutExpiration(ExpirationAttributes expectedExpirationAttributes,
|
||||
Region<K, V> region, V... applicationDomainObjects) {
|
||||
|
||||
assertExpiration(expectedExpirationAttributes, region.getAttributes().getCustomEntryIdleTimeout(),
|
||||
applicationDomainObjects);
|
||||
}
|
||||
|
||||
protected <K, V> void assertNoIdleTimeoutExpiration(Region<K, V> region) {
|
||||
private <K, V> void assertNoIdleTimeoutExpiration(Region<K, V> region) {
|
||||
assertThat(region.getAttributes().getCustomEntryIdleTimeout()).isNull();
|
||||
}
|
||||
|
||||
protected <K, V> void assertTimeToLiveExpiration(ExpirationAttributes expectedExpirationAttributes,
|
||||
@SuppressWarnings("unchecked")
|
||||
private <K, V> void assertTimeToLiveExpiration(ExpirationAttributes expectedExpirationAttributes,
|
||||
Region<K, V> region, V... applicationDomainObjects) {
|
||||
|
||||
assertExpiration(expectedExpirationAttributes, region.getAttributes().getCustomEntryTimeToLive(),
|
||||
applicationDomainObjects);
|
||||
}
|
||||
|
||||
protected <K, V> void assertNoTimeToLiveExpiration(Region<K, V> region) {
|
||||
private <K, V> void assertNoTimeToLiveExpiration(Region<K, V> region) {
|
||||
assertThat(region.getAttributes().getCustomEntryTimeToLive()).isNull();
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
protected <K, V> void assertExpiration(ExpirationAttributes expectedExpirationAttributes,
|
||||
private <K, V> void assertExpiration(ExpirationAttributes expectedExpirationAttributes,
|
||||
CustomExpiry<K, V> customExpiry, V... applicationDomainObjects) {
|
||||
|
||||
Region.Entry<K, V> regionEntry = mockRegionEntry(ArrayUtils.getFirst(applicationDomainObjects));
|
||||
@@ -108,32 +105,34 @@ public class EnableExpirationConfigurationUnitTests {
|
||||
}
|
||||
|
||||
@SuppressWarnings({ "unchecked", "unused" })
|
||||
protected <K, V> void assertExpiration(ExpirationAttributes actualExpirationAttributes,
|
||||
private <K, V> void assertExpiration(ExpirationAttributes actualExpirationAttributes,
|
||||
ExpirationAttributes expectedExpirationAttributes) {
|
||||
|
||||
assertThat(actualExpirationAttributes).isEqualTo(expectedExpirationAttributes);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
protected <K, V> Region<K, V> getRegion(String beanName) {
|
||||
return applicationContext.getBean(beanName, Region.class);
|
||||
private <K, V> Region<K, V> getRegion(String beanName) {
|
||||
return this.applicationContext.getBean(beanName, Region.class);
|
||||
}
|
||||
|
||||
protected AnnotationConfigApplicationContext newApplicationContext(Class<?>... annotatedClasses) {
|
||||
private AnnotationConfigApplicationContext newApplicationContext(Class<?>... annotatedClasses) {
|
||||
return new AnnotationConfigApplicationContext(annotatedClasses);
|
||||
}
|
||||
|
||||
protected ExpirationAttributes newExpirationAttributes(int timeout, ExpirationActionType action) {
|
||||
private ExpirationAttributes newExpirationAttributes(int timeout, ExpirationActionType action) {
|
||||
return newExpirationAttributes(timeout, action.getExpirationAction());
|
||||
}
|
||||
|
||||
protected ExpirationAttributes newExpirationAttributes(int timeout, ExpirationAction action) {
|
||||
private ExpirationAttributes newExpirationAttributes(int timeout, ExpirationAction action) {
|
||||
return new ExpirationAttributes(timeout, action);
|
||||
}
|
||||
|
||||
@Test
|
||||
@SuppressWarnings("unchecked")
|
||||
public void usesDefaultExpirationPolicyConfiguration() {
|
||||
applicationContext = newApplicationContext(DefaultExpirationPolicyConfiguration.class);
|
||||
|
||||
this.applicationContext = newApplicationContext(DefaultExpirationPolicyConfiguration.class);
|
||||
|
||||
ExpirationAttributes expectedExpiration = newExpirationAttributes(0, ExpirationActionType.INVALIDATE);
|
||||
|
||||
@@ -142,14 +141,15 @@ public class EnableExpirationConfigurationUnitTests {
|
||||
|
||||
assertIdleTimeoutExpiration(expectedExpiration, one);
|
||||
assertIdleTimeoutExpiration(expectedExpiration, two);
|
||||
|
||||
assertNoTimeToLiveExpiration(one);
|
||||
assertNoTimeToLiveExpiration(two);
|
||||
assertTimeToLiveExpiration(expectedExpiration, one);
|
||||
assertTimeToLiveExpiration(expectedExpiration, two);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void usesCustomExpirationPolicyConfiguration() {
|
||||
applicationContext = newApplicationContext(CustomExpirationPolicyConfiguration.class);
|
||||
@SuppressWarnings("unchecked")
|
||||
public void usesCustomIdleTimeoutExpirationPolicyConfiguration() {
|
||||
|
||||
this.applicationContext = newApplicationContext(CustomIdleTimeoutExpirationPolicyConfiguration.class);
|
||||
|
||||
ExpirationAttributes expectedExpiration = newExpirationAttributes(300, ExpirationActionType.LOCAL_DESTROY);
|
||||
|
||||
@@ -164,8 +164,28 @@ public class EnableExpirationConfigurationUnitTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
@SuppressWarnings("unchecked")
|
||||
public void usesCustomTimeToLiveExpirationPolicyConfiguration() {
|
||||
|
||||
this.applicationContext = newApplicationContext(CustomTimeToLiveTimeoutExpirationPolicyConfiguration.class);
|
||||
|
||||
ExpirationAttributes expectedExpiration = newExpirationAttributes(900, ExpirationActionType.LOCAL_INVALIDATE);
|
||||
|
||||
Region one = getRegion("One");
|
||||
Region two = getRegion("Two");
|
||||
|
||||
assertTimeToLiveExpiration(expectedExpiration, one);
|
||||
assertTimeToLiveExpiration(expectedExpiration, two);
|
||||
|
||||
assertNoIdleTimeoutExpiration(one);
|
||||
assertNoIdleTimeoutExpiration(two);
|
||||
}
|
||||
|
||||
@Test
|
||||
@SuppressWarnings("unchecked")
|
||||
public void usesRegionSpecificExpirationPolicyConfiguration() {
|
||||
applicationContext = newApplicationContext(RegionSpecificExpirationPolicyConfiguration.class);
|
||||
|
||||
this.applicationContext = newApplicationContext(RegionSpecificExpirationPolicyConfiguration.class);
|
||||
|
||||
ExpirationAttributes expectedIdleTimeout = newExpirationAttributes(180, ExpirationActionType.INVALIDATE);
|
||||
ExpirationAttributes expectedTimeToLive = newExpirationAttributes(360, ExpirationActionType.DESTROY);
|
||||
@@ -181,10 +201,12 @@ public class EnableExpirationConfigurationUnitTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
@SuppressWarnings("unchecked")
|
||||
public void usesMixedExpirationPolicyConfiguration() {
|
||||
applicationContext = newApplicationContext(MixedExpirationPolicyConfiguration.class);
|
||||
|
||||
ExpirationAttributes expectedIdleTimeout = newExpirationAttributes(120, ExpirationActionType.LOCAL_INVALIDATE);
|
||||
this.applicationContext = newApplicationContext(MixedExpirationPolicyConfiguration.class);
|
||||
|
||||
ExpirationAttributes expectedIdleTimeout = newExpirationAttributes(60, ExpirationActionType.LOCAL_INVALIDATE);
|
||||
ExpirationAttributes expectedTimeToLive = newExpirationAttributes(600, ExpirationActionType.DESTROY);
|
||||
|
||||
Region one = getRegion("One");
|
||||
@@ -197,98 +219,66 @@ public class EnableExpirationConfigurationUnitTests {
|
||||
assertTimeToLiveExpiration(expectedTimeToLive, two);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
static <K, V> Region<K, V> mockRegion(String name) {
|
||||
Region<K, V> mockRegion = mock(Region.class);
|
||||
|
||||
when(mockRegion.getName()).thenReturn(name);
|
||||
when(mockRegion.getFullPath()).thenReturn(String.format("%1$s%2$s", Region.SEPARATOR, name));
|
||||
|
||||
final AtomicReference<CustomExpiry<K, V>> entryIdleTimeout = new AtomicReference<CustomExpiry<K, V>>(null);
|
||||
final AtomicReference<CustomExpiry<K, V>> entryTimeToLive = new AtomicReference<CustomExpiry<K, V>>(null);
|
||||
|
||||
AttributesMutator<K, V> mockAttributesMutator = mock(AttributesMutator.class);
|
||||
|
||||
when(mockRegion.getAttributesMutator()).thenReturn(mockAttributesMutator);
|
||||
|
||||
doAnswer(new Answer<CustomExpiry<K, V>>() {
|
||||
@Override
|
||||
public CustomExpiry<K, V> answer(InvocationOnMock invocation) throws Throwable {
|
||||
CustomExpiry<K, V> customExpiry = invocation.getArgument(0);
|
||||
entryIdleTimeout.set(customExpiry);
|
||||
return customExpiry;
|
||||
}
|
||||
}).when(mockAttributesMutator).setCustomEntryIdleTimeout(any(CustomExpiry.class));
|
||||
|
||||
doAnswer(new Answer<CustomExpiry<K, V>>() {
|
||||
@Override
|
||||
public CustomExpiry<K, V> answer(InvocationOnMock invocation) throws Throwable {
|
||||
CustomExpiry<K, V> customExpiry = invocation.getArgument(0);
|
||||
entryTimeToLive.set(customExpiry);
|
||||
return customExpiry;
|
||||
}
|
||||
}).when(mockAttributesMutator).setCustomEntryTimeToLive(any(CustomExpiry.class));
|
||||
|
||||
RegionAttributes<K, V> mockRegionAttributes = mock(RegionAttributes.class);
|
||||
|
||||
when(mockRegion.getAttributes()).thenReturn(mockRegionAttributes);
|
||||
|
||||
when(mockRegionAttributes.getCustomEntryIdleTimeout()).thenAnswer(new Answer<CustomExpiry<K, V>>() {
|
||||
@Override public CustomExpiry<K, V> answer(InvocationOnMock invocation) throws Throwable {
|
||||
return entryIdleTimeout.get();
|
||||
}
|
||||
});
|
||||
|
||||
when(mockRegionAttributes.getCustomEntryTimeToLive()).thenAnswer(new Answer<CustomExpiry<K, V>>() {
|
||||
@Override public CustomExpiry<K, V> answer(InvocationOnMock invocation) throws Throwable {
|
||||
return entryTimeToLive.get();
|
||||
}
|
||||
});
|
||||
|
||||
return mockRegion;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
static <K, V> Region.Entry<K, V> mockRegionEntry(V applicationDomainObject) {
|
||||
|
||||
Region.Entry<K, V> mockRegionEntry = mock(Region.Entry.class);
|
||||
|
||||
when(mockRegionEntry.getValue()).thenReturn(applicationDomainObject);
|
||||
|
||||
return mockRegionEntry;
|
||||
}
|
||||
|
||||
@Configuration
|
||||
@PeerCacheApplication
|
||||
@EnableGemFireMockObjects
|
||||
@SuppressWarnings("unused")
|
||||
static class RegionConfiguration {
|
||||
|
||||
@Bean("One")
|
||||
Region<Object, Object> regionOne() {
|
||||
return mockRegion("One");
|
||||
public LocalRegionFactoryBean<Object, Object> regionOne(GemFireCache gemfireCache) {
|
||||
|
||||
LocalRegionFactoryBean<Object, Object> regionOne = new LocalRegionFactoryBean<>();
|
||||
|
||||
regionOne.setCache(gemfireCache);
|
||||
regionOne.setClose(false);
|
||||
regionOne.setPersistent(false);
|
||||
|
||||
return regionOne;
|
||||
}
|
||||
|
||||
@Bean("Two")
|
||||
Region<Object, Object> regionTwo() {
|
||||
return mockRegion("Two");
|
||||
public LocalRegionFactoryBean<Object, Object> regionTwo(GemFireCache gemfireCache) {
|
||||
|
||||
LocalRegionFactoryBean<Object, Object> regionTwo = new LocalRegionFactoryBean<>();
|
||||
|
||||
regionTwo.setCache(gemfireCache);
|
||||
regionTwo.setClose(false);
|
||||
regionTwo.setPersistent(false);
|
||||
|
||||
return regionTwo;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@EnableExpiration
|
||||
static class DefaultExpirationPolicyConfiguration extends RegionConfiguration {
|
||||
}
|
||||
static class DefaultExpirationPolicyConfiguration extends RegionConfiguration { }
|
||||
|
||||
@EnableExpiration(policies = { @ExpirationPolicy(timeout = 300, action = ExpirationActionType.LOCAL_DESTROY) })
|
||||
static class CustomExpirationPolicyConfiguration extends RegionConfiguration {
|
||||
}
|
||||
static class CustomIdleTimeoutExpirationPolicyConfiguration extends RegionConfiguration { }
|
||||
|
||||
@EnableExpiration(policies = { @ExpirationPolicy(timeout = 900, action = ExpirationActionType.LOCAL_INVALIDATE, types = ExpirationType.TIME_TO_LIVE) })
|
||||
static class CustomTimeToLiveTimeoutExpirationPolicyConfiguration extends RegionConfiguration { }
|
||||
|
||||
@EnableExpiration(policies = {
|
||||
@ExpirationPolicy(timeout = 180, action = ExpirationActionType.INVALIDATE, regionNames = "One"),
|
||||
@ExpirationPolicy(timeout = 360, action = ExpirationActionType.DESTROY, regionNames = "Two", types = ExpirationType.TIME_TO_LIVE)
|
||||
})
|
||||
static class RegionSpecificExpirationPolicyConfiguration extends RegionConfiguration {
|
||||
}
|
||||
static class RegionSpecificExpirationPolicyConfiguration extends RegionConfiguration { }
|
||||
|
||||
@EnableExpiration(policies = {
|
||||
@ExpirationPolicy(timeout = 120, action = ExpirationActionType.LOCAL_INVALIDATE, regionNames = "One", types = ExpirationType.IDLE_TIMEOUT),
|
||||
@ExpirationPolicy(timeout = 60, action = ExpirationActionType.LOCAL_INVALIDATE, regionNames = "One", types = ExpirationType.IDLE_TIMEOUT),
|
||||
@ExpirationPolicy(timeout = 600, action = ExpirationActionType.DESTROY, types = ExpirationType.TIME_TO_LIVE)
|
||||
})
|
||||
static class MixedExpirationPolicyConfiguration extends RegionConfiguration {
|
||||
}
|
||||
static class MixedExpirationPolicyConfiguration extends RegionConfiguration { }
|
||||
|
||||
}
|
||||
|
||||
@@ -22,9 +22,9 @@ import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertNull;
|
||||
import static org.junit.Assert.assertSame;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.springframework.data.gemfire.util.ArrayUtils.nullSafeArray;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FilenameFilter;
|
||||
|
||||
import org.apache.geode.cache.Cache;
|
||||
import org.apache.geode.cache.CustomExpiry;
|
||||
@@ -55,7 +55,7 @@ import org.springframework.data.gemfire.SimpleObjectSizer;
|
||||
import org.springframework.data.gemfire.TestUtils;
|
||||
import org.springframework.data.gemfire.test.GemfireTestApplicationContextInitializer;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
import org.springframework.util.FileSystemUtils;
|
||||
|
||||
/**
|
||||
@@ -63,7 +63,7 @@ import org.springframework.util.FileSystemUtils;
|
||||
* @author David Turanski
|
||||
* @author John Blum
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@RunWith(SpringRunner.class)
|
||||
@ContextConfiguration(locations="diskstore-ns.xml", initializers=GemfireTestApplicationContextInitializer.class)
|
||||
@SuppressWarnings("unused")
|
||||
// TODO move test cases into a DiskStoreIntegrationTests class
|
||||
@@ -86,20 +86,19 @@ public class DiskStoreAndEvictionRegionParsingTest {
|
||||
|
||||
@AfterClass
|
||||
public static void tearDown() {
|
||||
|
||||
FileSystemUtils.deleteRecursively(diskStoreDirectory);
|
||||
|
||||
for (String name : new File(".").list(new FilenameFilter() {
|
||||
@Override
|
||||
public boolean accept(File dir, String name) {
|
||||
return name.startsWith("BACKUPds");
|
||||
}
|
||||
})) {
|
||||
for (String name : nullSafeArray(new File(".")
|
||||
.list((dir, name) -> name.startsWith("BACKUP")), String.class)) {
|
||||
|
||||
new File(name).delete();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDiskStore() {
|
||||
|
||||
assertNotNull(applicationContext.getBean("ds2"));
|
||||
applicationContext.getBean("diskStore1");
|
||||
assertNotNull(diskStore);
|
||||
@@ -117,6 +116,7 @@ public class DiskStoreAndEvictionRegionParsingTest {
|
||||
@Test
|
||||
@SuppressWarnings("rawtypes")
|
||||
public void testReplicatedDataRegionAttributes() throws Exception {
|
||||
|
||||
assertTrue(applicationContext.containsBean("replicated-data"));
|
||||
|
||||
RegionFactoryBean replicatedDataRegionFactoryBean = applicationContext.getBean("&replicated-data", RegionFactoryBean.class);
|
||||
@@ -146,6 +146,7 @@ public class DiskStoreAndEvictionRegionParsingTest {
|
||||
@Test
|
||||
@SuppressWarnings("rawtypes")
|
||||
public void testPartitionDataOptions() throws Exception {
|
||||
|
||||
assertTrue(applicationContext.containsBean("partition-data"));
|
||||
RegionFactoryBean fb = applicationContext.getBean("&partition-data", RegionFactoryBean.class);
|
||||
assertTrue(fb instanceof PartitionedRegionFactoryBean);
|
||||
@@ -165,7 +166,9 @@ public class DiskStoreAndEvictionRegionParsingTest {
|
||||
@Test
|
||||
@SuppressWarnings("rawtypes")
|
||||
public void testEntryTtl() throws Exception {
|
||||
|
||||
assertTrue(applicationContext.containsBean("replicated-data"));
|
||||
|
||||
RegionFactoryBean fb = applicationContext.getBean("&replicated-data", RegionFactoryBean.class);
|
||||
RegionAttributes attrs = TestUtils.readField("attributes", fb);
|
||||
|
||||
@@ -190,7 +193,9 @@ public class DiskStoreAndEvictionRegionParsingTest {
|
||||
@Test
|
||||
@SuppressWarnings("rawtypes")
|
||||
public void testCustomExpiry() throws Exception {
|
||||
|
||||
assertTrue(applicationContext.containsBean("replicated-data-custom-expiry"));
|
||||
|
||||
RegionFactoryBean fb = applicationContext.getBean("&replicated-data-custom-expiry", RegionFactoryBean.class);
|
||||
RegionAttributes attrs = TestUtils.readField("attributes", fb);
|
||||
|
||||
@@ -202,14 +207,14 @@ public class DiskStoreAndEvictionRegionParsingTest {
|
||||
}
|
||||
|
||||
public static class TestCustomExpiry<K,V> implements CustomExpiry<K,V> {
|
||||
|
||||
@Override
|
||||
public ExpirationAttributes getExpiry(Entry<K, V> entry) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() {
|
||||
public void close() { }
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.data.gemfire.test.GemfireTestApplicationContextInitializer;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
|
||||
/**
|
||||
* The DiskStoreNamespaceTest class is a test suite of test cases testing the contract and functionality of using
|
||||
@@ -42,7 +42,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
* @see org.springframework.test.context.junit4.SpringJUnit4ClassRunner
|
||||
* @since 2.0.0
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@RunWith(SpringRunner.class)
|
||||
@ContextConfiguration(locations = "diskstore-ns.xml", initializers = GemfireTestApplicationContextInitializer.class)
|
||||
@SuppressWarnings("unused")
|
||||
public class DiskStoreNamespaceTest {
|
||||
@@ -57,6 +57,7 @@ public class DiskStoreNamespaceTest {
|
||||
|
||||
@Test
|
||||
public void testDiskStoreConfiguration() {
|
||||
|
||||
assertNotNull("The 'fullyConfiguredDiskStore' was not properly configured and initialized", diskStore);
|
||||
assertEquals("fullyConfiguredDiskStore", diskStore.getName());
|
||||
assertEquals(Boolean.valueOf(props.getProperty("allowForceCompaction")), diskStore.getAllowForceCompaction());
|
||||
@@ -76,5 +77,4 @@ public class DiskStoreNamespaceTest {
|
||||
assertEquals(new File(props.getProperty("location")), diskStore.getDiskDirs()[0]);
|
||||
assertEquals(Long.valueOf(props.getProperty("maxSize")), Long.valueOf(diskStore.getDiskDirSizes()[0]));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.data.gemfire.test.GemfireTestApplicationContextInitializer;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
/**
|
||||
@@ -50,7 +50,7 @@ import org.springframework.util.Assert;
|
||||
* @see org.apache.geode.cache.EvictionAttributes
|
||||
* @since 1.5.0
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@RunWith(SpringRunner.class)
|
||||
@ContextConfiguration(initializers = GemfireTestApplicationContextInitializer.class)
|
||||
@SuppressWarnings("unused")
|
||||
public class RegionExpirationAttributesNamespaceTest {
|
||||
@@ -67,12 +67,13 @@ public class RegionExpirationAttributesNamespaceTest {
|
||||
@Resource(name = "LocalExample")
|
||||
private Region<?, ?> localExample;
|
||||
|
||||
protected void assertRegionMetaData(final Region<?, ?> region, final String regionName, final DataPolicy dataPolicy) {
|
||||
private void assertRegionMetaData(final Region<?, ?> region, final String regionName, final DataPolicy dataPolicy) {
|
||||
assertRegionMetaData(region, regionName, Region.SEPARATOR + regionName, dataPolicy);
|
||||
}
|
||||
|
||||
protected void assertRegionMetaData(final Region<?, ?> region, final String regionName, final String regionFullPath,
|
||||
final DataPolicy dataPolicy) {
|
||||
private void assertRegionMetaData(Region<?, ?> region, String regionName, String regionFullPath,
|
||||
DataPolicy dataPolicy) {
|
||||
|
||||
assertNotNull(String.format("The '%1$s' Region was not properly configured and initialized!", regionName), region);
|
||||
assertEquals(regionName, region.getName());
|
||||
assertEquals(regionFullPath, region.getFullPath());
|
||||
@@ -80,14 +81,15 @@ public class RegionExpirationAttributesNamespaceTest {
|
||||
assertEquals(dataPolicy, region.getAttributes().getDataPolicy());
|
||||
}
|
||||
|
||||
protected void assertNoExpiration(final ExpirationAttributes expirationAttributes) {
|
||||
private void assertNoExpiration(final ExpirationAttributes expirationAttributes) {
|
||||
|
||||
if (expirationAttributes != null) {
|
||||
//assertEquals(ExpirationAction.INVALIDATE, expirationAttributes.getAction());
|
||||
assertEquals(0, expirationAttributes.getTimeout());
|
||||
}
|
||||
}
|
||||
|
||||
protected void assertExpirationAttributes(final ExpirationAttributes expirationAttributes,
|
||||
private void assertExpirationAttributes(ExpirationAttributes expirationAttributes,
|
||||
final int timeout, final ExpirationAction action) {
|
||||
assertNotNull(expirationAttributes);
|
||||
assertEquals(timeout, expirationAttributes.getTimeout());
|
||||
@@ -95,8 +97,9 @@ public class RegionExpirationAttributesNamespaceTest {
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
protected void assertCustomExpiry(final CustomExpiry<?, ?> customExpiry, final String name,
|
||||
final int timeout, final ExpirationAction action) {
|
||||
private void assertCustomExpiry(CustomExpiry<?, ?> customExpiry, String name, int timeout,
|
||||
ExpirationAction action) {
|
||||
|
||||
assertNotNull(customExpiry);
|
||||
assertEquals(name, customExpiry.toString());
|
||||
assertExpirationAttributes(customExpiry.getExpiry(mock(Region.Entry.class)), timeout, action);
|
||||
@@ -104,6 +107,7 @@ public class RegionExpirationAttributesNamespaceTest {
|
||||
|
||||
@Test
|
||||
public void testReplicateExampleExpirationAttributes() {
|
||||
|
||||
assertRegionMetaData(replicateExample, "ReplicateExample", DataPolicy.REPLICATE);
|
||||
assertExpirationAttributes(replicateExample.getAttributes().getEntryTimeToLive(),
|
||||
600, ExpirationAction.DESTROY);
|
||||
@@ -115,6 +119,7 @@ public class RegionExpirationAttributesNamespaceTest {
|
||||
|
||||
@Test
|
||||
public void testPreloadedExampleExpirationAttributes() {
|
||||
|
||||
assertRegionMetaData(preloadedExample, "PreloadedExample", DataPolicy.PRELOADED);
|
||||
assertExpirationAttributes(preloadedExample.getAttributes().getEntryTimeToLive(),
|
||||
120, ExpirationAction.LOCAL_DESTROY);
|
||||
@@ -125,6 +130,7 @@ public class RegionExpirationAttributesNamespaceTest {
|
||||
|
||||
@Test
|
||||
public void testPartitionExampleExpirationAttributes() {
|
||||
|
||||
assertRegionMetaData(partitionExample, "PartitionExample", DataPolicy.PARTITION);
|
||||
assertExpirationAttributes(partitionExample.getAttributes().getEntryTimeToLive(),
|
||||
300, ExpirationAction.DESTROY);
|
||||
@@ -136,6 +142,7 @@ public class RegionExpirationAttributesNamespaceTest {
|
||||
|
||||
@Test
|
||||
public void testLocalExampleExpirationAttributes() {
|
||||
|
||||
assertRegionMetaData(localExample, "LocalExample", DataPolicy.NORMAL);
|
||||
assertNoExpiration(localExample.getAttributes().getEntryTimeToLive());
|
||||
assertNoExpiration(localExample.getAttributes().getEntryIdleTimeout());
|
||||
@@ -181,5 +188,4 @@ public class RegionExpirationAttributesNamespaceTest {
|
||||
return this.name;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@ import org.apache.geode.cache.util.ObjectSizer;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
/**
|
||||
@@ -61,7 +61,7 @@ import org.springframework.util.StringUtils;
|
||||
* @see org.apache.geode.cache.Region
|
||||
* @since 1.5.0
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@RunWith(SpringRunner.class)
|
||||
@ContextConfiguration
|
||||
@SuppressWarnings("unused")
|
||||
public class TemplateClientRegionNamespaceTest {
|
||||
@@ -69,7 +69,8 @@ public class TemplateClientRegionNamespaceTest {
|
||||
@Resource(name = "TemplateBasedClientRegion")
|
||||
private Region<Integer, Object> templateBasedClientRegion;
|
||||
|
||||
protected void assertCacheListeners(final Region<?, ?> region, final String... expectedNames) {
|
||||
private void assertCacheListeners(Region<?, ?> region, String... expectedNames) {
|
||||
|
||||
assertNotNull(region);
|
||||
assertNotNull(region.getAttributes());
|
||||
assertNotNull(region.getAttributes().getCacheListeners());
|
||||
@@ -81,31 +82,28 @@ public class TemplateClientRegionNamespaceTest {
|
||||
}
|
||||
}
|
||||
|
||||
protected void assertCacheLoader(final Region<?, ?> region, final String expectedName) {
|
||||
private void assertCacheLoader(Region<?, ?> region, String expectedName) {
|
||||
assertNotNull(region);
|
||||
assertNotNull(region.getAttributes());
|
||||
assertTrue(region.getAttributes().getCacheLoader() instanceof TestCacheLoader);
|
||||
assertEquals(expectedName, region.getAttributes().getCacheLoader().toString());
|
||||
}
|
||||
|
||||
protected void assertCacheWriter(final Region<?, ?> region, final String expectedName) {
|
||||
private void assertCacheWriter(Region<?, ?> region, String expectedName) {
|
||||
assertNotNull(region);
|
||||
assertNotNull(region.getAttributes());
|
||||
assertTrue(region.getAttributes().getCacheWriter() instanceof TestCacheWriter);
|
||||
assertEquals(expectedName, region.getAttributes().getCacheWriter().toString());
|
||||
}
|
||||
|
||||
protected void assertDefaultEvictionAttributes(final EvictionAttributes evictionAttributes) {
|
||||
private void assertDefaultEvictionAttributes(EvictionAttributes evictionAttributes) {
|
||||
assumeNotNull(evictionAttributes);
|
||||
assertEvictionAttributes(evictionAttributes, EvictionAction.NONE, EvictionAlgorithm.NONE, 0, null);
|
||||
}
|
||||
|
||||
protected void assertEvictionAttributes(final EvictionAttributes evictionAttributes,
|
||||
final EvictionAction expectedAction,
|
||||
final EvictionAlgorithm expectedAlgorithm,
|
||||
final int expectedMaximum,
|
||||
final ObjectSizer expectedObjectSizer)
|
||||
{
|
||||
private void assertEvictionAttributes(EvictionAttributes evictionAttributes, EvictionAction expectedAction,
|
||||
EvictionAlgorithm expectedAlgorithm, int expectedMaximum, ObjectSizer expectedObjectSizer) {
|
||||
|
||||
assertNotNull("The 'EvictionAttributes' must not be null!", evictionAttributes);
|
||||
assertEquals(expectedAction, evictionAttributes.getAction());
|
||||
assertEquals(expectedAlgorithm, evictionAttributes.getAlgorithm());
|
||||
@@ -113,22 +111,22 @@ public class TemplateClientRegionNamespaceTest {
|
||||
assertEquals(expectedObjectSizer, evictionAttributes.getObjectSizer());
|
||||
}
|
||||
|
||||
protected void assertDefaultExpirationAttributes(final ExpirationAttributes expirationAttributes) {
|
||||
private void assertDefaultExpirationAttributes(ExpirationAttributes expirationAttributes) {
|
||||
assumeNotNull(expirationAttributes);
|
||||
assertEquals(ExpirationAction.INVALIDATE, expirationAttributes.getAction());
|
||||
assertEquals(0, expirationAttributes.getTimeout());
|
||||
}
|
||||
|
||||
protected void assertExpirationAttributes(final ExpirationAttributes expirationAttributes,
|
||||
final ExpirationAction expectedAction,
|
||||
final int expectedTimeout)
|
||||
{
|
||||
private void assertExpirationAttributes(ExpirationAttributes expirationAttributes, ExpirationAction expectedAction,
|
||||
int expectedTimeout) {
|
||||
|
||||
assertNotNull("The 'ExpirationAttributes' must not be null!", expirationAttributes);
|
||||
assertEquals(expectedAction, expirationAttributes.getAction());
|
||||
assertEquals(expectedTimeout, expirationAttributes.getTimeout());
|
||||
}
|
||||
|
||||
protected void assertDefaultRegionAttributes(final Region region) {
|
||||
private void assertDefaultRegionAttributes(Region region) {
|
||||
|
||||
assertNotNull("The Region must not be null!", region);
|
||||
assertNotNull(String.format("The Region (%1$s) must have 'RegionAttributes' defined!",
|
||||
region.getFullPath()), region.getAttributes());
|
||||
@@ -141,23 +139,24 @@ public class TemplateClientRegionNamespaceTest {
|
||||
assertDefaultExpirationAttributes(region.getAttributes().getRegionIdleTimeout());
|
||||
}
|
||||
|
||||
protected static void assertEmpty(final Object[] array) {
|
||||
private static void assertEmpty(Object[] array) {
|
||||
assertTrue((array == null || array.length == 0));
|
||||
}
|
||||
|
||||
protected static void assertEmpty(final Iterable<?> collection) {
|
||||
private static void assertEmpty(Iterable<?> collection) {
|
||||
assertTrue(collection == null || !collection.iterator().hasNext());
|
||||
}
|
||||
|
||||
protected static void assertNullEmpty(final String value) {
|
||||
private static void assertNullEmpty(String value) {
|
||||
assertFalse(StringUtils.hasText(value));
|
||||
}
|
||||
|
||||
protected static void assertRegionMetaData(final Region<?, ?> region, final String expectedRegionName) {
|
||||
private static void assertRegionMetaData(Region<?, ?> region, String expectedRegionName) {
|
||||
assertRegionMetaData(region, expectedRegionName, Region.SEPARATOR + expectedRegionName);
|
||||
}
|
||||
|
||||
protected static void assertRegionMetaData(final Region<?, ?> region, final String expectedRegionName, final String expectedRegionPath) {
|
||||
private static void assertRegionMetaData(Region<?, ?> region, String expectedRegionName, String expectedRegionPath) {
|
||||
|
||||
assertNotNull(String.format("The '%1$s' Region was not properly configured and initialized!",
|
||||
expectedRegionName), region);
|
||||
assertEquals(expectedRegionName, region.getName());
|
||||
@@ -168,6 +167,7 @@ public class TemplateClientRegionNamespaceTest {
|
||||
|
||||
@Test
|
||||
public void testTemplateBasedClientRegion() {
|
||||
|
||||
assertRegionMetaData(templateBasedClientRegion, "TemplateBasedClientRegion");
|
||||
assertDefaultRegionAttributes(templateBasedClientRegion);
|
||||
assertCacheListeners(templateBasedClientRegion, "XYZ");
|
||||
@@ -193,7 +193,7 @@ public class TemplateClientRegionNamespaceTest {
|
||||
|
||||
private String name;
|
||||
|
||||
public void setName(final String name) {
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@@ -207,18 +207,17 @@ public class TemplateClientRegionNamespaceTest {
|
||||
|
||||
private String name;
|
||||
|
||||
public void setName(final String name) {
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object load(final LoaderHelper loaderHelper) throws CacheLoaderException {
|
||||
public Object load(LoaderHelper loaderHelper) throws CacheLoaderException {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() {
|
||||
}
|
||||
public void close() { }
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
@@ -230,7 +229,7 @@ public class TemplateClientRegionNamespaceTest {
|
||||
|
||||
private String name;
|
||||
|
||||
public void setName(final String name) {
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@@ -239,5 +238,4 @@ public class TemplateClientRegionNamespaceTest {
|
||||
return name;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -65,7 +65,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.data.gemfire.test.GemfireTestApplicationContextInitializer;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
import org.springframework.util.ObjectUtils;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
@@ -84,7 +84,7 @@ import org.springframework.util.StringUtils;
|
||||
* @see org.apache.geode.cache.Region
|
||||
* @since 1.5.0
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@RunWith(SpringRunner.class)
|
||||
@ContextConfiguration(initializers = GemfireTestApplicationContextInitializer.class)
|
||||
@SuppressWarnings("unused")
|
||||
public class TemplateRegionsNamespaceTests {
|
||||
@@ -110,7 +110,8 @@ public class TemplateRegionsNamespaceTests {
|
||||
@Resource(name = "TemplateBasedLocalRegion")
|
||||
private Region<Long, String> templateBasedLocalRegion;
|
||||
|
||||
protected void assertAsyncEventQueues(final Region<?, ?> region, final String... expectedNames) {
|
||||
private void assertAsyncEventQueues(Region<?, ?> region, String... expectedNames) {
|
||||
|
||||
assertNotNull(region);
|
||||
assertNotNull(region.getAttributes());
|
||||
assertNotNull(region.getAttributes().getAsyncEventQueueIds());
|
||||
@@ -121,7 +122,8 @@ public class TemplateRegionsNamespaceTests {
|
||||
}
|
||||
}
|
||||
|
||||
protected void assertCacheListeners(final Region<?, ?> region, final String... expectedNames) {
|
||||
private void assertCacheListeners(Region<?, ?> region, String... expectedNames) {
|
||||
|
||||
assertNotNull(region);
|
||||
assertNotNull(region.getAttributes());
|
||||
assertNotNull(region.getAttributes().getCacheListeners());
|
||||
@@ -133,31 +135,30 @@ public class TemplateRegionsNamespaceTests {
|
||||
}
|
||||
}
|
||||
|
||||
protected void assertCacheLoader(final Region<?, ?> region, final String expectedName) {
|
||||
private void assertCacheLoader(Region<?, ?> region, String expectedName) {
|
||||
|
||||
assertNotNull(region);
|
||||
assertNotNull(region.getAttributes());
|
||||
assertTrue(region.getAttributes().getCacheLoader() instanceof TestCacheLoader);
|
||||
assertEquals(expectedName, region.getAttributes().getCacheLoader().toString());
|
||||
}
|
||||
|
||||
protected void assertCacheWriter(final Region<?, ?> region, final String expectedName) {
|
||||
private void assertCacheWriter(Region<?, ?> region, String expectedName) {
|
||||
|
||||
assertNotNull(region);
|
||||
assertNotNull(region.getAttributes());
|
||||
assertTrue(region.getAttributes().getCacheWriter() instanceof TestCacheWriter);
|
||||
assertEquals(expectedName, region.getAttributes().getCacheWriter().toString());
|
||||
}
|
||||
|
||||
protected void assertDefaultEvictionAttributes(final EvictionAttributes evictionAttributes) {
|
||||
private void assertDefaultEvictionAttributes(EvictionAttributes evictionAttributes) {
|
||||
assumeNotNull(evictionAttributes);
|
||||
assertEvictionAttributes(evictionAttributes, EvictionAction.NONE, EvictionAlgorithm.NONE, 0, null);
|
||||
}
|
||||
|
||||
protected void assertEvictionAttributes(final EvictionAttributes evictionAttributes,
|
||||
final EvictionAction expectedAction,
|
||||
final EvictionAlgorithm expectedAlgorithm,
|
||||
final int expectedMaximum,
|
||||
final ObjectSizer expectedObjectSizer)
|
||||
{
|
||||
private void assertEvictionAttributes(EvictionAttributes evictionAttributes, EvictionAction expectedAction,
|
||||
EvictionAlgorithm expectedAlgorithm, int expectedMaximum, ObjectSizer expectedObjectSizer) {
|
||||
|
||||
assertNotNull("The 'EvictionAttributes' must not be null!", evictionAttributes);
|
||||
assertEquals(expectedAction, evictionAttributes.getAction());
|
||||
assertEquals(expectedAlgorithm, evictionAttributes.getAlgorithm());
|
||||
@@ -165,22 +166,23 @@ public class TemplateRegionsNamespaceTests {
|
||||
assertEquals(expectedObjectSizer, evictionAttributes.getObjectSizer());
|
||||
}
|
||||
|
||||
protected void assertDefaultExpirationAttributes(final ExpirationAttributes expirationAttributes) {
|
||||
private void assertDefaultExpirationAttributes(ExpirationAttributes expirationAttributes) {
|
||||
|
||||
assumeNotNull(expirationAttributes);
|
||||
assertEquals(ExpirationAction.INVALIDATE, expirationAttributes.getAction());
|
||||
assertEquals(0, expirationAttributes.getTimeout());
|
||||
}
|
||||
|
||||
protected void assertExpirationAttributes(final ExpirationAttributes expirationAttributes,
|
||||
final ExpirationAction expectedAction,
|
||||
final int expectedTimeout)
|
||||
{
|
||||
private void assertExpirationAttributes(ExpirationAttributes expirationAttributes, ExpirationAction expectedAction,
|
||||
int expectedTimeout) {
|
||||
|
||||
assertNotNull("The 'ExpirationAttributes' must not be null!", expirationAttributes);
|
||||
assertEquals(expectedAction, expirationAttributes.getAction());
|
||||
assertEquals(expectedTimeout, expirationAttributes.getTimeout());
|
||||
}
|
||||
|
||||
protected void assertGatewaySenders(final Region<?, ?> region, final String... gatewaySenderIds) {
|
||||
private void assertGatewaySenders(Region<?, ?> region, String... gatewaySenderIds) {
|
||||
|
||||
assertNotNull(region);
|
||||
assertNotNull(region.getAttributes());
|
||||
assertNotNull(region.getAttributes().getGatewaySenderIds());
|
||||
@@ -188,16 +190,15 @@ public class TemplateRegionsNamespaceTests {
|
||||
assertTrue(Arrays.asList(gatewaySenderIds).containsAll(region.getAttributes().getGatewaySenderIds()));
|
||||
}
|
||||
|
||||
protected void assertDefaultMembershipAttributes(final MembershipAttributes membershipAttributes) {
|
||||
private void assertDefaultMembershipAttributes(MembershipAttributes membershipAttributes) {
|
||||
|
||||
assumeNotNull(membershipAttributes);
|
||||
assertMembershipAttributes(membershipAttributes, LossAction.FULL_ACCESS, ResumptionAction.NONE);
|
||||
}
|
||||
|
||||
protected void assertMembershipAttributes(final MembershipAttributes membershipAttributes,
|
||||
final LossAction expectedLossAction,
|
||||
final ResumptionAction expectedResumptionAction,
|
||||
final String... expectedRequiredRoles)
|
||||
{
|
||||
private void assertMembershipAttributes(MembershipAttributes membershipAttributes, LossAction expectedLossAction,
|
||||
ResumptionAction expectedResumptionAction, String... expectedRequiredRoles) {
|
||||
|
||||
assertNotNull("The 'MembershipAttributes' must not be null!", membershipAttributes);
|
||||
assertEquals(expectedLossAction, membershipAttributes.getLossAction());
|
||||
assertEquals(expectedResumptionAction, membershipAttributes.getResumptionAction());
|
||||
@@ -210,7 +211,8 @@ public class TemplateRegionsNamespaceTests {
|
||||
}
|
||||
}
|
||||
|
||||
protected void assertPartitionListener(final Region<?, ?> region, final String... expectedNames) {
|
||||
private void assertPartitionListener(Region<?, ?> region, String... expectedNames) {
|
||||
|
||||
assertNotNull(region);
|
||||
assertNotNull(region.getAttributes());
|
||||
assertNotNull(region.getAttributes().getPartitionAttributes());
|
||||
@@ -223,16 +225,17 @@ public class TemplateRegionsNamespaceTests {
|
||||
}
|
||||
}
|
||||
|
||||
protected void assertPartitionResolver(final Region<?, ?> region, final String expectedName) {
|
||||
private void assertPartitionResolver(Region<?, ?> region, String expectedName) {
|
||||
|
||||
assertNotNull(region);
|
||||
assertNotNull(region.getAttributes());
|
||||
assertNotNull(region.getAttributes().getPartitionAttributes());
|
||||
assertTrue(
|
||||
region.getAttributes().getPartitionAttributes().getPartitionResolver() instanceof TestPartitionResolver);
|
||||
assertTrue(region.getAttributes().getPartitionAttributes().getPartitionResolver() instanceof TestPartitionResolver);
|
||||
assertEquals(expectedName, region.getAttributes().getPartitionAttributes().getPartitionResolver().toString());
|
||||
}
|
||||
|
||||
protected void assertDefaultRegionAttributes(final Region region) {
|
||||
private void assertDefaultRegionAttributes(Region region) {
|
||||
|
||||
assertNotNull("The Region must not be null!", region);
|
||||
assertNotNull(String.format("Region (%1$s) must have 'RegionAttributes' defined!",
|
||||
region.getFullPath()), region.getAttributes());
|
||||
@@ -246,35 +249,37 @@ public class TemplateRegionsNamespaceTests {
|
||||
assertDefaultExpirationAttributes(region.getAttributes().getRegionIdleTimeout());
|
||||
}
|
||||
|
||||
protected void assertDefaultSubscriptionAttributes(final SubscriptionAttributes subscriptionAttributes) {
|
||||
private void assertDefaultSubscriptionAttributes(SubscriptionAttributes subscriptionAttributes) {
|
||||
|
||||
assumeNotNull(subscriptionAttributes);
|
||||
assertSubscriptionAttributes(subscriptionAttributes, InterestPolicy.DEFAULT);
|
||||
}
|
||||
|
||||
protected void assertSubscriptionAttributes(final SubscriptionAttributes subscriptionAttributes,
|
||||
final InterestPolicy expectedInterestPolicy)
|
||||
{
|
||||
private void assertSubscriptionAttributes(SubscriptionAttributes subscriptionAttributes,
|
||||
InterestPolicy expectedInterestPolicy) {
|
||||
|
||||
assertNotNull("The 'SubscriptionAttributes' must not be null!", subscriptionAttributes);
|
||||
assertEquals(expectedInterestPolicy, subscriptionAttributes.getInterestPolicy());
|
||||
}
|
||||
|
||||
protected static void assertEmpty(final Object[] array) {
|
||||
private static void assertEmpty(Object[] array) {
|
||||
assertTrue((array == null || array.length == 0));
|
||||
}
|
||||
|
||||
protected static void assertEmpty(final Iterable<?> collection) {
|
||||
private static void assertEmpty(Iterable<?> collection) {
|
||||
assertTrue(collection == null || !collection.iterator().hasNext());
|
||||
}
|
||||
|
||||
protected static void assertNullEmpty(final String value) {
|
||||
private static void assertNullEmpty(String value) {
|
||||
assertFalse(StringUtils.hasText(value));
|
||||
}
|
||||
|
||||
protected static void assertRegionMetaData(final Region<?, ?> region, final String expectedRegionName) {
|
||||
private static void assertRegionMetaData(Region<?, ?> region, String expectedRegionName) {
|
||||
assertRegionMetaData(region, expectedRegionName, Region.SEPARATOR + expectedRegionName);
|
||||
}
|
||||
|
||||
protected static void assertRegionMetaData(final Region<?, ?> region, final String expectedRegionName, final String expectedRegionPath) {
|
||||
private static void assertRegionMetaData(Region<?, ?> region, String expectedRegionName, String expectedRegionPath) {
|
||||
|
||||
assertNotNull(String.format("The '%1$s' Region was not properly configured and initialized!",
|
||||
expectedRegionName), region);
|
||||
assertEquals(expectedRegionName, region.getName());
|
||||
@@ -285,6 +290,7 @@ public class TemplateRegionsNamespaceTests {
|
||||
|
||||
@Test
|
||||
public void testNoAbstractRegionTemplateBeans() {
|
||||
|
||||
String[] beanNames = {
|
||||
"BaseRegionTemplate",
|
||||
"ExtendedRegionTemplate",
|
||||
@@ -311,6 +317,7 @@ public class TemplateRegionsNamespaceTests {
|
||||
|
||||
@Test
|
||||
public void testNonTemplateBasedReplicateRegion() {
|
||||
|
||||
assertRegionMetaData(nonTemplateBasedReplicateRegion, "NonTemplateBasedReplicateRegion");
|
||||
assertDefaultRegionAttributes(nonTemplateBasedReplicateRegion);
|
||||
assertEmpty(nonTemplateBasedReplicateRegion.getAttributes().getAsyncEventQueueIds());
|
||||
@@ -344,6 +351,7 @@ public class TemplateRegionsNamespaceTests {
|
||||
|
||||
@Test
|
||||
public void testTemplateBasedReplicateRegion() {
|
||||
|
||||
assertRegionMetaData(templateBasedReplicateRegion, "TemplateBasedReplicateRegion");
|
||||
assertDefaultRegionAttributes(templateBasedReplicateRegion);
|
||||
assertEmpty(templateBasedReplicateRegion.getAttributes().getAsyncEventQueueIds());
|
||||
@@ -381,6 +389,7 @@ public class TemplateRegionsNamespaceTests {
|
||||
|
||||
@Test
|
||||
public void testTemplateBasedReplicateSubRegion() {
|
||||
|
||||
assertRegionMetaData(templateBasedReplicateSubRegion, "TemplateBasedReplicateSubRegion",
|
||||
"/TemplateBasedReplicateRegion/TemplateBasedReplicateSubRegion");
|
||||
assertDefaultRegionAttributes(templateBasedReplicateSubRegion);
|
||||
@@ -418,6 +427,7 @@ public class TemplateRegionsNamespaceTests {
|
||||
|
||||
@Test
|
||||
public void testTemplateBasedReplicateRegionNoOverrides() {
|
||||
|
||||
assertRegionMetaData(templateBasedReplicateRegionNoOverrides, "TemplateBasedReplicateRegionNoOverrides");
|
||||
assertDefaultRegionAttributes(templateBasedReplicateRegionNoOverrides);
|
||||
assertEmpty(templateBasedReplicateRegionNoOverrides.getAttributes().getAsyncEventQueueIds());
|
||||
@@ -457,6 +467,7 @@ public class TemplateRegionsNamespaceTests {
|
||||
|
||||
@Test
|
||||
public void testTemplateBasedPartitionRegion() {
|
||||
|
||||
assertRegionMetaData(templateBasedPartitionRegion, "TemplateBasedPartitionRegion");
|
||||
assertDefaultRegionAttributes(templateBasedPartitionRegion);
|
||||
assertAsyncEventQueues(templateBasedPartitionRegion, "TestAsyncEventQueue");
|
||||
@@ -504,6 +515,7 @@ public class TemplateRegionsNamespaceTests {
|
||||
|
||||
@Test
|
||||
public void testTemplateBasedLocalRegion() {
|
||||
|
||||
assertRegionMetaData(templateBasedLocalRegion, "TemplateBasedLocalRegion");
|
||||
assertDefaultRegionAttributes(templateBasedLocalRegion);
|
||||
assertEmpty(templateBasedLocalRegion.getAttributes().getAsyncEventQueueIds());
|
||||
@@ -542,18 +554,17 @@ public class TemplateRegionsNamespaceTests {
|
||||
|
||||
private String name;
|
||||
|
||||
public void setName(final String name) {
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean processEvents(final List<AsyncEvent> asyncEvents) {
|
||||
public boolean processEvents(List<AsyncEvent> asyncEvents) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() {
|
||||
}
|
||||
public void close() { }
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
@@ -565,7 +576,7 @@ public class TemplateRegionsNamespaceTests {
|
||||
|
||||
private String name;
|
||||
|
||||
public void setName(final String name) {
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@@ -579,18 +590,17 @@ public class TemplateRegionsNamespaceTests {
|
||||
|
||||
private String name;
|
||||
|
||||
public void setName(final String name) {
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object load(final LoaderHelper loaderHelper) throws CacheLoaderException {
|
||||
public Object load(LoaderHelper loaderHelper) throws CacheLoaderException {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() {
|
||||
}
|
||||
public void close() { }
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
@@ -602,7 +612,7 @@ public class TemplateRegionsNamespaceTests {
|
||||
|
||||
private String name;
|
||||
|
||||
public void setName(final String name) {
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@@ -616,7 +626,7 @@ public class TemplateRegionsNamespaceTests {
|
||||
|
||||
private String name;
|
||||
|
||||
public void setName(final String name) {
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@@ -630,12 +640,12 @@ public class TemplateRegionsNamespaceTests {
|
||||
|
||||
private String name;
|
||||
|
||||
public void setName(final String name) {
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getRoutingObject(final EntryOperation entryOperation) {
|
||||
public Object getRoutingObject(EntryOperation entryOperation) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -645,13 +655,11 @@ public class TemplateRegionsNamespaceTests {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() {
|
||||
}
|
||||
public void close() { }
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return name;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@ import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.data.gemfire.test.GemfireTestApplicationContextInitializer;
|
||||
import org.springframework.expression.EvaluationException;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
|
||||
/**
|
||||
* The AnnotationBasedExpirationConfigurationIntegrationTest class is a test suite of test cases testing
|
||||
@@ -64,13 +64,13 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
* @see org.apache.geode.cache.ExpirationAttributes
|
||||
* @since 1.7.0
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@RunWith(SpringRunner.class)
|
||||
@ContextConfiguration(initializers = GemfireTestApplicationContextInitializer.class)
|
||||
@SuppressWarnings("unused")
|
||||
public class AnnotationBasedExpirationConfigurationIntegrationTest {
|
||||
|
||||
@Rule
|
||||
public ExpectedException expectedException = ExpectedException.none();
|
||||
public ExpectedException exception = ExpectedException.none();
|
||||
|
||||
@Autowired
|
||||
@Qualifier("genericExpiration")
|
||||
@@ -107,11 +107,11 @@ public class AnnotationBasedExpirationConfigurationIntegrationTest {
|
||||
assertThat(timeToLiveExpiration.getDefaultExpirationAttributes(), is(sameInstance(defaultExpirationAttributes)));
|
||||
}
|
||||
|
||||
protected void assertExpiration(ExpirationAttributes expected, ExpirationAttributes actual) {
|
||||
private void assertExpiration(ExpirationAttributes expected, ExpirationAttributes actual) {
|
||||
assertExpiration(actual, expected.getTimeout(), expected.getAction());
|
||||
}
|
||||
|
||||
protected void assertExpiration(ExpirationAttributes expirationAttributes, int expectedTimeout,
|
||||
private void assertExpiration(ExpirationAttributes expirationAttributes, int expectedTimeout,
|
||||
ExpirationAction expectedAction) {
|
||||
|
||||
assertThat(expirationAttributes, is(not(nullValue())));
|
||||
@@ -120,7 +120,8 @@ public class AnnotationBasedExpirationConfigurationIntegrationTest {
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
protected Region.Entry<Object, Object> mockRegionEntry(Object value) {
|
||||
private Region.Entry<Object, Object> mockRegionEntry(Object value) {
|
||||
|
||||
Region.Entry<Object, Object> mockRegionEntry = mock(Region.Entry.class, "MockRegionEntry");
|
||||
|
||||
when(mockRegionEntry.getValue()).thenReturn(value);
|
||||
@@ -130,6 +131,7 @@ public class AnnotationBasedExpirationConfigurationIntegrationTest {
|
||||
|
||||
@Test
|
||||
public void exampleRegionIdleTimeoutExpirationPolicy() {
|
||||
|
||||
CustomExpiry<Object, Object> expiration = example.getAttributes().getCustomEntryIdleTimeout();
|
||||
|
||||
assertExpiration(expiration.getExpiry(mockRegionEntry(new ApplicationDomainObjectWithTimeToLiveAndGenericExpirationPolicies())),
|
||||
@@ -148,6 +150,7 @@ public class AnnotationBasedExpirationConfigurationIntegrationTest {
|
||||
|
||||
@Test
|
||||
public void exampleRegionTimeToLiveExpirationPolicy() {
|
||||
|
||||
CustomExpiry<Object, Object> expiration = example.getAttributes().getCustomEntryTimeToLive();
|
||||
|
||||
assertExpiration(expiration.getExpiry(mockRegionEntry(new ApplicationDomainObjectWithTimeToLiveAndGenericExpirationPolicies())),
|
||||
@@ -165,6 +168,7 @@ public class AnnotationBasedExpirationConfigurationIntegrationTest {
|
||||
|
||||
@Test
|
||||
public void genericExpirationPolicy() {
|
||||
|
||||
assertExpiration(genericExpiration.getExpiry(mockRegionEntry(
|
||||
new ApplicationDomainObjectWithTimeToLiveAndGenericExpirationPolicies())), 60, ExpirationAction.INVALIDATE);
|
||||
assertThat(genericExpiration.getExpiry(mockRegionEntry(
|
||||
@@ -183,58 +187,54 @@ public class AnnotationBasedExpirationConfigurationIntegrationTest {
|
||||
|
||||
@Test
|
||||
public void invalidExpirationAction() {
|
||||
expectedException.expect(EvaluationException.class);
|
||||
expectedException.expectCause(isA(IllegalArgumentException.class));
|
||||
expectedException.expectMessage(String.format("[%s] is not resolvable as an ExpirationAction(Type)",
|
||||
|
||||
exception.expect(EvaluationException.class);
|
||||
exception.expectCause(isA(IllegalArgumentException.class));
|
||||
exception.expectMessage(String.format("[%s] is not resolvable as an ExpirationAction(Type)",
|
||||
"@expirationProperties['gemfire.region.entry.expiration.invalid.action.string']"));
|
||||
|
||||
genericExpiration.getExpiry(mockRegionEntry(new RegionEntryWithInvalidExpirationAction()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void invalidExpirationTimeout() {
|
||||
expectedException.expect(IllegalArgumentException.class);
|
||||
expectedException.expectCause(is(nullValue(Throwable.class)));
|
||||
|
||||
exception.expect(IllegalArgumentException.class);
|
||||
exception.expectCause(is(nullValue(Throwable.class)));
|
||||
|
||||
genericExpiration.getExpiry(mockRegionEntry(new RegionEntryWithInvalidExpirationTimeout()));
|
||||
}
|
||||
|
||||
@Expiration(timeout = "60", action = "INVALIDATE")
|
||||
@TimeToLiveExpiration(timeout = "300", action = "DESTROY")
|
||||
protected static class ApplicationDomainObjectWithTimeToLiveAndGenericExpirationPolicies {
|
||||
}
|
||||
protected static class ApplicationDomainObjectWithTimeToLiveAndGenericExpirationPolicies { }
|
||||
|
||||
@IdleTimeoutExpiration(timeout = "120", action = "INVALIDATE")
|
||||
protected static class ApplicationDomainObjectWithIdleTimeoutExpirationPolicy {
|
||||
}
|
||||
protected static class ApplicationDomainObjectWithIdleTimeoutExpirationPolicy { }
|
||||
|
||||
@Expiration(timeout = "60", action = "DESTROY")
|
||||
protected static class ApplicationDomainObjectWithGenericExpirationPolicy {
|
||||
}
|
||||
protected static class ApplicationDomainObjectWithGenericExpirationPolicy { }
|
||||
|
||||
protected static class ApplicationDomainObjectWithNoExpirationPolicy {
|
||||
}
|
||||
protected static class ApplicationDomainObjectWithNoExpirationPolicy { }
|
||||
|
||||
@TimeToLiveExpiration(timeout = "${gemfire.region.entry.expiration.timeout}",
|
||||
action = "${gemfire.region.entry.expiration.action.string}")
|
||||
protected static class RegionEntryTimeToLiveExpirationPolicy {
|
||||
}
|
||||
protected static class RegionEntryTimeToLiveExpirationPolicy { }
|
||||
|
||||
@IdleTimeoutExpiration(timeout = "@expirationProperties['gemfire.region.entry.expiration.timeout']",
|
||||
action = "@expirationProperties['gemfire.region.entry.expiration.action.gemfire.type']")
|
||||
protected static class RegionEntryIdleTimeoutExpirationPolicy {
|
||||
}
|
||||
protected static class RegionEntryIdleTimeoutExpirationPolicy { }
|
||||
|
||||
@Expiration(timeout = "${gemfire.region.entry.expiration.timeout}",
|
||||
action = "@expirationProperties['gemfire.region.entry.expiration.action.spring.type']")
|
||||
protected static class RegionEntryGenericExpirationPolicy {
|
||||
}
|
||||
protected static class RegionEntryGenericExpirationPolicy { }
|
||||
|
||||
@Expiration(timeout = "${gemfire.region.entry.expiration.timeout}",
|
||||
action = "@expirationProperties['gemfire.region.entry.expiration.invalid.action.string']")
|
||||
protected static class RegionEntryWithInvalidExpirationAction {
|
||||
}
|
||||
protected static class RegionEntryWithInvalidExpirationAction { }
|
||||
|
||||
@Expiration(timeout = "${gemfire.region.entry.expiration.invalid.timeout}",
|
||||
action = "@expirationProperties['gemfire.region.entry.expiration.action.spring.type']")
|
||||
protected static class RegionEntryWithInvalidExpirationTimeout {
|
||||
}
|
||||
protected static class RegionEntryWithInvalidExpirationTimeout { }
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user