Making sure to stop embedded web servers in tests

Closes gh-9012
This commit is contained in:
Stephane Nicoll 2017-05-03 11:33:42 +02:00
parent d1ea4f8a8a
commit 2b4f2c6aba
4 changed files with 36 additions and 15 deletions

View File

@ -19,6 +19,7 @@ package org.springframework.boot.actuate.cloudfoundry;
import javax.net.ssl.SSLHandshakeException; import javax.net.ssl.SSLHandshakeException;
import org.hamcrest.Matcher; import org.hamcrest.Matcher;
import org.junit.After;
import org.junit.Rule; import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.rules.ExpectedException; import org.junit.rules.ExpectedException;
@ -44,6 +45,15 @@ public class SkipSslVerificationHttpRequestFactoryTests {
@Rule @Rule
public ExpectedException thrown = ExpectedException.none(); public ExpectedException thrown = ExpectedException.none();
private WebServer webServer;
@After
public void shutdownContainer() {
if (this.webServer != null) {
this.webServer.stop();
}
}
@Test @Test
public void restCallToSelfSignedServerShouldNotThrowSslException() throws Exception { public void restCallToSelfSignedServerShouldNotThrowSslException() throws Exception {
String httpsUrl = getHttpsUrl(); String httpsUrl = getHttpsUrl();
@ -65,10 +75,10 @@ public class SkipSslVerificationHttpRequestFactoryTests {
private String getHttpsUrl() { private String getHttpsUrl() {
TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory(0); TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory(0);
factory.setSsl(getSsl("password", "classpath:test.jks")); factory.setSsl(getSsl("password", "classpath:test.jks"));
WebServer webServer = factory.getWebServer( this.webServer = factory.getWebServer(
new ServletRegistrationBean<>(new ExampleServlet(), "/hello")); new ServletRegistrationBean<>(new ExampleServlet(), "/hello"));
webServer.start(); this.webServer.start();
return "https://localhost:" + webServer.getPort() + "/hello"; return "https://localhost:" + this.webServer.getPort() + "/hello";
} }
private Ssl getSsl(String keyPassword, String keyStore) { private Ssl getSsl(String keyPassword, String keyStore) {

View File

@ -269,8 +269,10 @@ public class DefaultServletWebServerFactoryCustomizerTests {
public void defaultTomcatBackgroundProcessorDelay() throws Exception { public void defaultTomcatBackgroundProcessorDelay() throws Exception {
TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory(); TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();
this.customizer.customize(factory); this.customizer.customize(factory);
assertThat(((TomcatWebServer) factory.getWebServer()).getTomcat().getEngine() TomcatWebServer webServer = (TomcatWebServer) factory.getWebServer();
.getBackgroundProcessorDelay()).isEqualTo(30); assertThat(webServer.getTomcat().getEngine().getBackgroundProcessorDelay())
.isEqualTo(30);
webServer.stop();
} }
@Test @Test
@ -280,8 +282,10 @@ public class DefaultServletWebServerFactoryCustomizerTests {
bindProperties(map); bindProperties(map);
TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory(); TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();
this.customizer.customize(factory); this.customizer.customize(factory);
assertThat(((TomcatWebServer) factory.getWebServer()).getTomcat().getEngine() TomcatWebServer webServer = (TomcatWebServer) factory.getWebServer();
.getBackgroundProcessorDelay()).isEqualTo(5); assertThat(webServer.getTomcat().getEngine().getBackgroundProcessorDelay())
.isEqualTo(5);
webServer.stop();
} }
@Test @Test

View File

@ -262,8 +262,9 @@ public class JettyServletWebServerFactoryTests
JettyServletWebServerFactory factory = getFactory(); JettyServletWebServerFactory factory = getFactory();
factory.setThreadPool(null); factory.setThreadPool(null);
assertThat(factory.getThreadPool()).isNull(); assertThat(factory.getThreadPool()).isNull();
JettyWebServer jettyWebServer = (JettyWebServer) factory.getWebServer(); this.webServer = factory.getWebServer();
assertThat(jettyWebServer.getServer().getThreadPool()).isNotNull(); assertThat(((JettyWebServer) this.webServer).getServer().getThreadPool())
.isNotNull();
} }
@Test @Test
@ -271,8 +272,9 @@ public class JettyServletWebServerFactoryTests
JettyServletWebServerFactory factory = getFactory(); JettyServletWebServerFactory factory = getFactory();
ThreadPool threadPool = mock(ThreadPool.class); ThreadPool threadPool = mock(ThreadPool.class);
factory.setThreadPool(threadPool); factory.setThreadPool(threadPool);
JettyWebServer jettyWebServer = (JettyWebServer) factory.getWebServer(); this.webServer = factory.getWebServer();
assertThat(jettyWebServer.getServer().getThreadPool()).isSameAs(threadPool); assertThat(((JettyWebServer) this.webServer).getServer().getThreadPool())
.isSameAs(threadPool);
} }
@Override @Override

View File

@ -261,10 +261,15 @@ public class UndertowServletWebServerFactoryTests
} }
private ServletContainer getServletContainerFromNewFactory() { private ServletContainer getServletContainerFromNewFactory() {
UndertowServletWebServer undertow1 = (UndertowServletWebServer) getFactory() UndertowServletWebServer container = (UndertowServletWebServer)
.getWebServer(); getFactory().getWebServer();
return ((DeploymentManager) ReflectionTestUtils.getField(undertow1, "manager")) try {
.getDeployment().getServletContainer(); return ((DeploymentManager) ReflectionTestUtils.getField(container, "manager"))
.getDeployment().getServletContainer();
}
finally {
container.stop();
}
} }
@Override @Override