From d5eaf0a9dd3ee52f98e60c52c5bc56618dd42337 Mon Sep 17 00:00:00 2001 From: Tomas Bjerre Date: Fri, 11 Oct 2024 17:12:06 +0200 Subject: [PATCH] fix: only add default configure if WireMock enabled --- .../WireMockContextCustomizerFactory.java | 11 +++++--- .../src/test/java/app/NotEnabledTest.java | 28 +++++++++++++++++++ 2 files changed, 35 insertions(+), 4 deletions(-) create mode 100644 wiremock-spring-boot-example/src/test/java/app/NotEnabledTest.java diff --git a/src/main/java/org/wiremock/spring/internal/WireMockContextCustomizerFactory.java b/src/main/java/org/wiremock/spring/internal/WireMockContextCustomizerFactory.java index ff19273..cc94065 100644 --- a/src/main/java/org/wiremock/spring/internal/WireMockContextCustomizerFactory.java +++ b/src/main/java/org/wiremock/spring/internal/WireMockContextCustomizerFactory.java @@ -17,7 +17,6 @@ * @author Maciej Walkowiak */ public class WireMockContextCustomizerFactory implements ContextCustomizerFactory { - private static final ConfigureWireMock DEFAULT_CONFIGURE_WIREMOCK = DefaultConfigureWireMock.class.getAnnotation(ConfigureWireMock.class); @@ -32,8 +31,7 @@ public ContextCustomizer createContextCustomizer( this.parseDefinitions(testClass, holder); if (holder.isEmpty()) { - return new WireMockContextCustomizer( - WireMockContextCustomizerFactory.DEFAULT_CONFIGURE_WIREMOCK); + return null; } else { return new WireMockContextCustomizer(holder.asArray()); } @@ -56,7 +54,12 @@ void add(final ConfigureWireMock... annotations) { void parse(final Class clazz) { final EnableWireMock annotation = AnnotationUtils.findAnnotation(clazz, EnableWireMock.class); if (annotation != null) { - this.add(annotation.value()); + final ConfigureWireMock[] value = annotation.value(); + if (value.length == 0) { + this.add(WireMockContextCustomizerFactory.DEFAULT_CONFIGURE_WIREMOCK); + } else { + this.add(value); + } } } diff --git a/wiremock-spring-boot-example/src/test/java/app/NotEnabledTest.java b/wiremock-spring-boot-example/src/test/java/app/NotEnabledTest.java new file mode 100644 index 0000000..f4b2bf6 --- /dev/null +++ b/wiremock-spring-boot-example/src/test/java/app/NotEnabledTest.java @@ -0,0 +1,28 @@ +package app; + +import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; +import static com.github.tomakehurst.wiremock.client.WireMock.get; +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import com.github.tomakehurst.wiremock.client.WireMock; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.core.env.Environment; +import wiremock.org.apache.hc.client5.http.HttpHostConnectException; + +@SpringBootTest +class NotEnabledTest { + + @Autowired private Environment env; + + @Test + void shouldNotHaveWireMockConfigured() { + assertThrows( + HttpHostConnectException.class, + () -> WireMock.stubFor(get("/ping").willReturn(aResponse().withStatus(200)))); + + assertThat(this.env.getProperty("wiremock.server.baseUrl")).isNull(); + } +}