#883/#1028.: Further DirtiesContext fix where the context is refreshed during the test phase (#1048)

* #883: Register port now only handles auto port values. This is to avoid the httpsPortDynamic being set to true on the context initialisation, but then being updated to false when the context is refreshed.
* #1028: Not registering the wiremock ports until they're available in the environment properties.
This commit is contained in:
Matt Garner
2019-04-18 15:30:03 +01:00
committed by Marcin Grzejszczak
parent 76ec0c37e9
commit 5707124350
2 changed files with 15 additions and 7 deletions

View File

@@ -47,7 +47,15 @@ public class WireMockApplicationListener
}
private void registerPort(ConfigurableEnvironment environment) {
if (environment.getProperty("wiremock.server.port", Integer.class, 0) == 0) {
Integer httpPortProperty = environment.getProperty("wiremock.server.port",
Integer.class);
// If the httpPortProperty is not found it means the AutoConfigureWireMock hasn't
// been initialised.
if (httpPortProperty == null) {
return;
}
if (httpPortProperty.equals(0)) {
MutablePropertySources propertySources = environment.getPropertySources();
addPropertySource(propertySources);
Map<String, Object> source = ((MapPropertySource) propertySources
@@ -56,8 +64,9 @@ public class WireMockApplicationListener
SocketUtils.findAvailableTcpPort(10000, 12500));
source.put("wiremock.server.port-dynamic", true);
}
if (environment.getProperty("wiremock.server.https-port", Integer.class,
0) == 0) {
int httpsPortProperty = environment.getProperty("wiremock.server.https-port",
Integer.class, 0);
if (httpsPortProperty == 0) {
MutablePropertySources propertySources = environment.getPropertySources();
addPropertySource(propertySources);
Map<String, Object> source = ((MapPropertySource) propertySources
@@ -66,13 +75,12 @@ public class WireMockApplicationListener
SocketUtils.findAvailableTcpPort(12500, 15000));
source.put("wiremock.server.https-port-dynamic", true);
}
else if (environment.getProperty("wiremock.server.https-port", Integer.class,
0) != -1) {
else if (httpsPortProperty == -1) {
MutablePropertySources propertySources = environment.getPropertySources();
addPropertySource(propertySources);
Map<String, Object> source = ((MapPropertySource) propertySources
.get("wiremock")).getSource();
source.put("wiremock.server.https-port-dynamic", false);
source.put("wiremock.server.https-port-dynamic", true);
}
}

View File

@@ -272,7 +272,7 @@ class WireMockProperties {
private boolean portDynamic = false;
private boolean httpsPortDynamic = true;
private boolean httpsPortDynamic = false;
public int getPort() {
return this.port;