Fix test failures due to upgrade of Spring Test for Apache Geode/Pivotal GemFire to 1.0.0.M6.

This commit is contained in:
John Blum
2018-12-03 17:47:31 -08:00
parent 404fc3da71
commit 6b40830686
2 changed files with 28 additions and 8 deletions

View File

@@ -57,12 +57,12 @@ import org.springframework.test.context.junit4.SpringRunner;
* @see org.springframework.test.context.junit4.SpringRunner
* @since 1.0.0
*/
@DirtiesContext
@RunWith(SpringRunner.class)
@SpringBootTest(
classes = AutoConfiguredCloudSecurityContextIntegrationTests.GemFireClientConfiguration.class,
webEnvironment = SpringBootTest.WebEnvironment.NONE
)
@DirtiesContext
@SuppressWarnings("unused")
public class AutoConfiguredCloudSecurityContextIntegrationTests
extends AbstractAutoConfiguredSecurityContextIntegrationTests {
@@ -78,6 +78,7 @@ public class AutoConfiguredCloudSecurityContextIntegrationTests
startGemFireServer(GemFireServerConfiguration.class, "-Dspring.profiles.active=security-cloud");
loadVcapApplicationProperties();
unsetTestAutoConfiguredPoolServersPortSystemProperty();
GemfireBeanFactoryLocator.clear();
}
@@ -90,6 +91,10 @@ public class AutoConfiguredCloudSecurityContextIntegrationTests
System.setProperty(property, vcapApplicationProperties.getProperty(property)));
}
public static void unsetTestAutoConfiguredPoolServersPortSystemProperty() {
System.clearProperty(GEMFIRE_POOL_SERVERS_PROPERTY);
}
@AfterClass
public static void cleanUpUsedResources() {
vcapApplicationProperties.stringPropertyNames().forEach(System::clearProperty);

View File

@@ -19,6 +19,7 @@ package org.springframework.geode.boot.autoconfigure.session;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
import java.util.Optional;
import java.util.Properties;
import java.util.concurrent.TimeUnit;
import java.util.function.Function;
@@ -40,10 +41,12 @@ import org.springframework.data.gemfire.tests.mock.annotation.EnableGemFireMockO
import org.springframework.geode.boot.autoconfigure.ContinuousQueryAutoConfiguration;
import org.springframework.geode.core.util.ObjectUtils;
import org.springframework.mock.env.MockPropertySource;
import org.springframework.mock.web.MockServletContext;
import org.springframework.session.Session;
import org.springframework.session.data.gemfire.config.annotation.web.http.GemFireHttpSessionConfiguration;
import org.springframework.session.data.gemfire.config.annotation.web.http.support.SpringSessionGemFireConfigurer;
import org.springframework.session.data.gemfire.serialization.SessionSerializer;
import org.springframework.web.context.ConfigurableWebApplicationContext;
import org.springframework.web.context.support.GenericWebApplicationContext;
/**
@@ -75,12 +78,6 @@ public class CustomConfiguredSessionCachingIntegrationTests extends SpringBootAp
private static final String SPRING_SESSION_DATA_GEMFIRE_PROPERTY = "spring.session.data.gemfire";
private volatile Function<ConfigurableApplicationContext, ConfigurableApplicationContext> applicationContextFunction =
Function.identity();
private volatile Function<SpringApplicationBuilder, SpringApplicationBuilder> springApplicationBuilderFunction =
Function.identity();
private static Properties singletonProperties(String propertyName, String propertyValue) {
Properties properties = new Properties();
@@ -90,6 +87,23 @@ public class CustomConfiguredSessionCachingIntegrationTests extends SpringBootAp
return properties;
}
private volatile Function<ConfigurableApplicationContext, ConfigurableApplicationContext> applicationContextFunction =
Function.identity();
private volatile Function<ConfigurableApplicationContext, ConfigurableApplicationContext> mockServletContextFunction =
applicationContext -> {
Optional.ofNullable(applicationContext)
.filter(ConfigurableWebApplicationContext.class::isInstance)
.map(ConfigurableWebApplicationContext.class::cast)
.ifPresent(it -> it.setServletContext(new MockServletContext()));
return applicationContext;
};
private volatile Function<SpringApplicationBuilder, SpringApplicationBuilder> springApplicationBuilderFunction =
Function.identity();
private Function<SpringApplicationBuilder, SpringApplicationBuilder> newSpringBootSessionPropertiesConfigurationFunction() {
return springApplicationBuilder ->
@@ -123,13 +137,14 @@ public class CustomConfiguredSessionCachingIntegrationTests extends SpringBootAp
@Override
protected SpringApplicationBuilder processBeforeBuild(SpringApplicationBuilder springApplicationBuilder) {
return this.springApplicationBuilderFunction.apply(springApplicationBuilder)
.contextClass(GenericWebApplicationContext.class);
}
@Override
protected ConfigurableApplicationContext processBeforeRefresh(ConfigurableApplicationContext applicationContext) {
return this.applicationContextFunction.apply(applicationContext);
return this.mockServletContextFunction.andThen(this.applicationContextFunction).apply(applicationContext);
}
private String springSessionPropertyName(String propertyNameSuffix) {