From de513c43a3655418a9da27e16f6ff0a4c085676d Mon Sep 17 00:00:00 2001 From: Rostislav Svoboda Date: Thu, 14 Feb 2019 10:48:37 +0100 Subject: [PATCH] Handle both custom port and host for RestAssured --- ...anager.java => RestAssuredURLManager.java} | 29 +++++++++++++++++-- .../junit4/AbstractShamrockRunListener.java | 6 ++-- .../jboss/shamrock/test/ShamrockUnitTest.java | 6 ++-- .../test/junit/ShamrockTestExtension.java | 8 ++--- 4 files changed, 35 insertions(+), 14 deletions(-) rename test-framework/common/src/main/java/org/jboss/shamrock/test/common/{RestAssuredPortManager.java => RestAssuredURLManager.java} (57%) diff --git a/test-framework/common/src/main/java/org/jboss/shamrock/test/common/RestAssuredPortManager.java b/test-framework/common/src/main/java/org/jboss/shamrock/test/common/RestAssuredURLManager.java similarity index 57% rename from test-framework/common/src/main/java/org/jboss/shamrock/test/common/RestAssuredPortManager.java rename to test-framework/common/src/main/java/org/jboss/shamrock/test/common/RestAssuredURLManager.java index a6c75c3b38eff..821b343d72069 100644 --- a/test-framework/common/src/main/java/org/jboss/shamrock/test/common/RestAssuredPortManager.java +++ b/test-framework/common/src/main/java/org/jboss/shamrock/test/common/RestAssuredURLManager.java @@ -11,24 +11,31 @@ *

* TODO: do we actually want this here, or should it be in a different module? */ -public class RestAssuredPortManager { +public class RestAssuredURLManager { private static final Field portField; + private static final Field baseURIField; private static int oldPort; + private static String oldBaseURI; static { Field p; + Field base; try { Class restAssured = Class.forName("io.restassured.RestAssured"); p = restAssured.getField("port"); p.setAccessible(true); + base = restAssured.getField("baseURI"); + base.setAccessible(true); } catch (Exception e) { p = null; + base = null; } portField = p; + baseURIField = base; } - public static void setPort() { + public static void setURL() { if (portField != null) { try { oldPort = (Integer) portField.get(null); @@ -38,9 +45,18 @@ public static void setPort() { e.printStackTrace(); } } + if (baseURIField != null) { + try { + oldBaseURI = (String) baseURIField.get(null); + String baseURI = "http://" + ConfigProvider.getConfig().getOptionalValue("shamrock.http.host", String.class).orElse("localhost"); + baseURIField.set(null, baseURI); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } } - public static void clearPort() { + public static void clearURL() { if (portField != null) { try { portField.set(null, oldPort); @@ -48,5 +64,12 @@ public static void clearPort() { e.printStackTrace(); } } + if (baseURIField != null) { + try { + baseURIField.set(null, oldBaseURI); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } } } diff --git a/test-framework/junit4/src/main/java/org/jboss/shamrock/test/junit4/AbstractShamrockRunListener.java b/test-framework/junit4/src/main/java/org/jboss/shamrock/test/junit4/AbstractShamrockRunListener.java index baaa8e988db3b..fe7191744e7f4 100644 --- a/test-framework/junit4/src/main/java/org/jboss/shamrock/test/junit4/AbstractShamrockRunListener.java +++ b/test-framework/junit4/src/main/java/org/jboss/shamrock/test/junit4/AbstractShamrockRunListener.java @@ -19,7 +19,7 @@ import java.util.ArrayList; import java.util.List; -import org.jboss.shamrock.test.common.RestAssuredPortManager; +import org.jboss.shamrock.test.common.RestAssuredURLManager; import org.jboss.shamrock.test.common.TestResourceManager; import org.junit.runner.Description; import org.junit.runner.Result; @@ -46,7 +46,7 @@ protected AbstractShamrockRunListener(Class testClass, RunNotifier runNotifie @Override public void testStarted(Description description) throws Exception { - RestAssuredPortManager.setPort(); + RestAssuredURLManager.setURL(); if (!started) { List stopListeners = new ArrayList<>(); @@ -92,7 +92,7 @@ public void testRunFinished(Result result) throws Exception { @Override public void testFinished(Description description) throws Exception { super.testFinished(description); - RestAssuredPortManager.clearPort(); + RestAssuredURLManager.clearURL(); } protected abstract void startShamrock() throws Exception; diff --git a/test-framework/junit5-internal/src/main/java/org/jboss/shamrock/test/ShamrockUnitTest.java b/test-framework/junit5-internal/src/main/java/org/jboss/shamrock/test/ShamrockUnitTest.java index b03e90cc715da..fdca4bc328bb5 100644 --- a/test-framework/junit5-internal/src/main/java/org/jboss/shamrock/test/ShamrockUnitTest.java +++ b/test-framework/junit5-internal/src/main/java/org/jboss/shamrock/test/ShamrockUnitTest.java @@ -47,7 +47,7 @@ import org.jboss.shamrock.runtime.InjectionInstance; import org.jboss.shamrock.runtime.LaunchMode; import org.jboss.shamrock.test.common.PathTestHelper; -import org.jboss.shamrock.test.common.RestAssuredPortManager; +import org.jboss.shamrock.test.common.RestAssuredURLManager; import org.jboss.shamrock.test.common.TestResourceManager; import org.jboss.shrinkwrap.api.exporter.ExplodedExporter; import org.jboss.shrinkwrap.api.exporter.ZipExporter; @@ -286,11 +286,11 @@ public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOEx @Override public void afterEach(ExtensionContext context) throws Exception { - RestAssuredPortManager.clearPort(); + RestAssuredURLManager.clearURL(); } @Override public void beforeEach(ExtensionContext context) throws Exception { - RestAssuredPortManager.setPort(); + RestAssuredURLManager.setURL(); } } diff --git a/test-framework/junit5/src/main/java/org/jboss/shamrock/test/junit/ShamrockTestExtension.java b/test-framework/junit5/src/main/java/org/jboss/shamrock/test/junit/ShamrockTestExtension.java index a89e73611374f..1b3a478d892d6 100644 --- a/test-framework/junit5/src/main/java/org/jboss/shamrock/test/junit/ShamrockTestExtension.java +++ b/test-framework/junit5/src/main/java/org/jboss/shamrock/test/junit/ShamrockTestExtension.java @@ -20,13 +20,11 @@ import static org.jboss.shamrock.test.common.PathTestHelper.getTestClassesLocation; import java.io.Closeable; -import java.util.Collections; -import org.eclipse.microprofile.config.ConfigProvider; import org.jboss.shamrock.runner.RuntimeRunner; import org.jboss.shamrock.runtime.LaunchMode; import org.jboss.shamrock.test.common.NativeImageLauncher; -import org.jboss.shamrock.test.common.RestAssuredPortManager; +import org.jboss.shamrock.test.common.RestAssuredURLManager; import org.jboss.shamrock.test.common.TestResourceManager; import org.junit.jupiter.api.extension.AfterEachCallback; import org.junit.jupiter.api.extension.BeforeAllCallback; @@ -74,12 +72,12 @@ private ExtensionState doJavaStart(ExtensionContext context, TestResourceManager @Override public void afterEach(ExtensionContext context) throws Exception { - RestAssuredPortManager.clearPort(); + RestAssuredURLManager.clearURL(); } @Override public void beforeEach(ExtensionContext context) throws Exception { - RestAssuredPortManager.setPort(); + RestAssuredURLManager.setURL(); }