This is an automated email from the ASF dual-hosted git repository. jamesnetherton pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
commit 98c2f396e522fa1a770c01bf72737db7c105afe6 Author: James Netherton <[email protected]> AuthorDate: Wed Nov 4 10:17:20 2020 +0000 Fix WireMock server field injection for native tests --- .../WireMockTestResourceLifecycleManager.java | 36 ++++++++++++---------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/integration-tests-support/wiremock/src/main/java/org/apache/camel/quarkus/test/wiremock/WireMockTestResourceLifecycleManager.java b/integration-tests-support/wiremock/src/main/java/org/apache/camel/quarkus/test/wiremock/WireMockTestResourceLifecycleManager.java index dc64c87..5308534 100644 --- a/integration-tests-support/wiremock/src/main/java/org/apache/camel/quarkus/test/wiremock/WireMockTestResourceLifecycleManager.java +++ b/integration-tests-support/wiremock/src/main/java/org/apache/camel/quarkus/test/wiremock/WireMockTestResourceLifecycleManager.java @@ -116,26 +116,30 @@ public abstract class WireMockTestResourceLifecycleManager implements QuarkusTes @Override public void inject(Object testInstance) { if (isMockingEnabled() || isRecordingEnabled()) { - Class<?> c = testInstance.getClass(); - for (Field field : c.getDeclaredFields()) { - if (field.getAnnotation(MockServer.class) != null) { - if (!WireMockServer.class.isAssignableFrom(field.getType())) { - throw new RuntimeException("@MockServer can only be used on fields of type WireMockServer"); - } + Class<?> testClass = testInstance.getClass(); + while (testClass != Object.class) { + for (Field field : testClass.getDeclaredFields()) { + if (field.getAnnotation(MockServer.class) != null) { + if (!WireMockServer.class.isAssignableFrom(field.getType())) { + throw new RuntimeException("@MockServer can only be used on fields of type WireMockServer"); + } - field.setAccessible(true); - try { - if (server == null) { - server = createServer(); - server.start(); + field.setAccessible(true); + try { + if (server == null) { + LOG.info("Starting WireMockServer"); + server = createServer(); + server.start(); + } + LOG.infof("Injecting WireMockServer for field %s", field.getName()); + field.set(testInstance, server); + return; + } catch (Exception e) { + throw new RuntimeException(e); } - LOG.infof("Injecting WireMockServer for field %s", field.getName()); - field.set(testInstance, server); - return; - } catch (Exception e) { - throw new RuntimeException(e); } } + testClass = testClass.getSuperclass(); } } }
