Commit 2b4f2c6a authored by Stephane Nicoll's avatar Stephane Nicoll

Making sure to stop embedded web servers in tests

Closes gh-9012
parent d1ea4f8a
......@@ -19,6 +19,7 @@ package org.springframework.boot.actuate.cloudfoundry;
import javax.net.ssl.SSLHandshakeException;
import org.hamcrest.Matcher;
import org.junit.After;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
......@@ -44,6 +45,15 @@ public class SkipSslVerificationHttpRequestFactoryTests {
@Rule
public ExpectedException thrown = ExpectedException.none();
private WebServer webServer;
@After
public void shutdownContainer() {
if (this.webServer != null) {
this.webServer.stop();
}
}
@Test
public void restCallToSelfSignedServerShouldNotThrowSslException() throws Exception {
String httpsUrl = getHttpsUrl();
......@@ -65,10 +75,10 @@ public class SkipSslVerificationHttpRequestFactoryTests {
private String getHttpsUrl() {
TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory(0);
factory.setSsl(getSsl("password", "classpath:test.jks"));
WebServer webServer = factory.getWebServer(
this.webServer = factory.getWebServer(
new ServletRegistrationBean<>(new ExampleServlet(), "/hello"));
webServer.start();
return "https://localhost:" + webServer.getPort() + "/hello";
this.webServer.start();
return "https://localhost:" + this.webServer.getPort() + "/hello";
}
private Ssl getSsl(String keyPassword, String keyStore) {
......
......@@ -269,8 +269,10 @@ public class DefaultServletWebServerFactoryCustomizerTests {
public void defaultTomcatBackgroundProcessorDelay() throws Exception {
TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();
this.customizer.customize(factory);
assertThat(((TomcatWebServer) factory.getWebServer()).getTomcat().getEngine()
.getBackgroundProcessorDelay()).isEqualTo(30);
TomcatWebServer webServer = (TomcatWebServer) factory.getWebServer();
assertThat(webServer.getTomcat().getEngine().getBackgroundProcessorDelay())
.isEqualTo(30);
webServer.stop();
}
@Test
......@@ -280,8 +282,10 @@ public class DefaultServletWebServerFactoryCustomizerTests {
bindProperties(map);
TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();
this.customizer.customize(factory);
assertThat(((TomcatWebServer) factory.getWebServer()).getTomcat().getEngine()
.getBackgroundProcessorDelay()).isEqualTo(5);
TomcatWebServer webServer = (TomcatWebServer) factory.getWebServer();
assertThat(webServer.getTomcat().getEngine().getBackgroundProcessorDelay())
.isEqualTo(5);
webServer.stop();
}
@Test
......
......@@ -262,8 +262,9 @@ public class JettyServletWebServerFactoryTests
JettyServletWebServerFactory factory = getFactory();
factory.setThreadPool(null);
assertThat(factory.getThreadPool()).isNull();
JettyWebServer jettyWebServer = (JettyWebServer) factory.getWebServer();
assertThat(jettyWebServer.getServer().getThreadPool()).isNotNull();
this.webServer = factory.getWebServer();
assertThat(((JettyWebServer) this.webServer).getServer().getThreadPool())
.isNotNull();
}
@Test
......@@ -271,8 +272,9 @@ public class JettyServletWebServerFactoryTests
JettyServletWebServerFactory factory = getFactory();
ThreadPool threadPool = mock(ThreadPool.class);
factory.setThreadPool(threadPool);
JettyWebServer jettyWebServer = (JettyWebServer) factory.getWebServer();
assertThat(jettyWebServer.getServer().getThreadPool()).isSameAs(threadPool);
this.webServer = factory.getWebServer();
assertThat(((JettyWebServer) this.webServer).getServer().getThreadPool())
.isSameAs(threadPool);
}
@Override
......
......@@ -261,10 +261,15 @@ public class UndertowServletWebServerFactoryTests
}
private ServletContainer getServletContainerFromNewFactory() {
UndertowServletWebServer undertow1 = (UndertowServletWebServer) getFactory()
.getWebServer();
return ((DeploymentManager) ReflectionTestUtils.getField(undertow1, "manager"))
.getDeployment().getServletContainer();
UndertowServletWebServer container = (UndertowServletWebServer)
getFactory().getWebServer();
try {
return ((DeploymentManager) ReflectionTestUtils.getField(container, "manager"))
.getDeployment().getServletContainer();
}
finally {
container.stop();
}
}
@Override
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment