Add test case testing the dynamic configuration of an overloaded SpringSessionGemFireConfigurer.
This commit is contained in:
@@ -27,9 +27,13 @@ import org.junit.Test;
|
||||
import org.apache.geode.cache.RegionShortcut;
|
||||
import org.apache.geode.cache.client.ClientRegionShortcut;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
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.context.annotation.Primary;
|
||||
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
|
||||
import org.springframework.core.env.PropertySource;
|
||||
import org.springframework.data.gemfire.config.annotation.ClientCacheApplication;
|
||||
import org.springframework.data.gemfire.tests.mock.annotation.EnableGemFireMockObjects;
|
||||
@@ -59,7 +63,7 @@ public class ConfigurerBasedGemFireHttpSessionConfigurationIntegrationTests {
|
||||
private ConfigurableApplicationContext applicationContext;
|
||||
|
||||
@After
|
||||
public void tearDow() {
|
||||
public void tearDown() {
|
||||
Optional.ofNullable(this.applicationContext).ifPresent(ConfigurableApplicationContext::close);
|
||||
}
|
||||
|
||||
@@ -107,6 +111,37 @@ public class ConfigurerBasedGemFireHttpSessionConfigurationIntegrationTests {
|
||||
assertThat(sessionConfiguration.getSessionSerializerBeanName()).isEqualTo("SessionPdxSerializer");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void usesPrimarySpringSessionGemFireConfigurerWhenPresent() {
|
||||
|
||||
MockPropertySource testPropertySource = new MockPropertySource("TestProperties")
|
||||
.withProperty("test.cache.client.region.shortcut", ClientRegionShortcut.CACHING_PROXY.name())
|
||||
.withProperty("test.cache.client.pool.name", "Car")
|
||||
.withProperty("test.session.expiration.max-inactive-interval-seconds", "300")
|
||||
.withProperty("test.session.region.name", "TestSessionRegionName")
|
||||
.withProperty("spring.session.data.gemfire.cache.client.region.shortcut", ClientRegionShortcut.LOCAL_PERSISTENT.name())
|
||||
.withProperty("spring.session.data.gemfire.cache.server.region.shortcut", RegionShortcut.REPLICATE_PERSISTENT_OVERFLOW.name())
|
||||
.withProperty("spring.session.data.gemfire.session.attributes.indexable", "firstName, lastName")
|
||||
.withProperty("spring.session.data.gemfire.session.expiration.max-inactive-interval-seconds", "120")
|
||||
.withProperty("spring.session.data.gemfire.session.region.name", "PropertyRegionName");
|
||||
//.withProperty("spring.session.data.gemfire.session.serializer.bean-name", "MockSessionSerializer");
|
||||
|
||||
this.applicationContext = newApplicationContext(testPropertySource,
|
||||
TestConfiguration.class, TestSpringSessionGemFireConfigurerConfiguration.class);
|
||||
|
||||
GemFireHttpSessionConfiguration sessionConfiguration =
|
||||
this.applicationContext.getBean(GemFireHttpSessionConfiguration.class);
|
||||
|
||||
assertThat(sessionConfiguration).isNotNull();
|
||||
assertThat(sessionConfiguration.getClientRegionShortcut()).isEqualTo(ClientRegionShortcut.CACHING_PROXY);
|
||||
assertThat(sessionConfiguration.getIndexableSessionAttributes()).isEmpty();
|
||||
assertThat(sessionConfiguration.getMaxInactiveIntervalInSeconds()).isEqualTo(300);
|
||||
assertThat(sessionConfiguration.getPoolName()).isEqualTo("Car");
|
||||
assertThat(sessionConfiguration.getServerRegionShortcut()).isEqualTo(RegionShortcut.PARTITION_PERSISTENT);
|
||||
assertThat(sessionConfiguration.getSessionRegionName()).isEqualTo("TestSessionRegionName");
|
||||
assertThat(sessionConfiguration.getSessionSerializerBeanName()).isEqualTo("SessionPdxSerializer");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void usesSpringSessionGemFireConfigurerWhenPresent() {
|
||||
|
||||
@@ -175,4 +210,57 @@ public class ConfigurerBasedGemFireHttpSessionConfigurationIntegrationTests {
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@Configuration
|
||||
static class TestSpringSessionGemFireConfigurerConfiguration {
|
||||
|
||||
//@Value("${test.cache.client.region.shortcut:PROXY}")
|
||||
//private ClientRegionShortcut clientRegionShortcut;
|
||||
|
||||
//@Value("${test.session.expiration.max-inactive-interval-seconds:600}")
|
||||
//private int maxInactiveIntervalInSeconds;
|
||||
|
||||
@Bean
|
||||
static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
|
||||
return new PropertySourcesPlaceholderConfigurer();
|
||||
}
|
||||
|
||||
@Bean
|
||||
@Primary
|
||||
SpringSessionGemFireConfigurer primarySpringSessionGemFireConfigurer(
|
||||
@Value("${test.cache.client.pool.name:geodePool}") String poolName,
|
||||
@Value("${test.cache.client.region.shortcut:PROXY}") ClientRegionShortcut clientRegionShortcut,
|
||||
@Value("${test.cache.server.region.shortcut:PARTITION_PERSISTENT}") RegionShortcut serverRegionShortcut,
|
||||
@Value("${test.session.expiration.max-inactive-interval-seconds:600}") int maxInactiveIntervalInSeconds,
|
||||
@Value("${test.session.region.name:MockSessionRegionName}") String regionName) {
|
||||
|
||||
return new SpringSessionGemFireConfigurer() {
|
||||
|
||||
@Override
|
||||
public ClientRegionShortcut getClientRegionShortcut() {
|
||||
return clientRegionShortcut;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxInactiveIntervalInSeconds() {
|
||||
return maxInactiveIntervalInSeconds;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPoolName() {
|
||||
return poolName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRegionName() {
|
||||
return regionName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public RegionShortcut getServerRegionShortcut() {
|
||||
return serverRegionShortcut;
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user