This is an automated email from the ASF dual-hosted git repository. jamesnetherton pushed a commit to branch quarkus-main in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
commit c2473c7dcda9936a9954f43d819ec9168e84afd1 Author: Nicolas Filotto <nfilo...@talend.com> AuthorDate: Thu Jun 29 16:23:59 2023 +0200 Ref #4894: Make Groovy DSL ITs platform compliant --- integration-tests/groovy-dsl/pom.xml | 55 +------ .../camel/quarkus/dsl/groovy/GroovyDslTest.java | 181 ++++++--------------- tooling/test-list/pom.xml | 1 - 3 files changed, 51 insertions(+), 186 deletions(-) diff --git a/integration-tests/groovy-dsl/pom.xml b/integration-tests/groovy-dsl/pom.xml index 5e9211a412..7760421ef1 100644 --- a/integration-tests/groovy-dsl/pom.xml +++ b/integration-tests/groovy-dsl/pom.xml @@ -30,9 +30,6 @@ <name>Camel Quarkus :: Integration Tests :: Groovy DSL</name> <description>Integration tests for Camel Groovy DSL extension</description> - <properties> - <quarkus.runner>${project.build.directory}/quarkus-app/quarkus-run.jar</quarkus.runner> - </properties> <dependencies> <dependency> <groupId>org.apache.camel.quarkus</groupId> @@ -70,18 +67,12 @@ <scope>test</scope> </dependency> <dependency> - <groupId>org.assertj</groupId> - <artifactId>assertj-core</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.camel.quarkus</groupId> - <artifactId>camel-quarkus-integration-tests-process-executor-support</artifactId> - <scope>test</scope> + <groupId>io.rest-assured</groupId> + <artifactId>rest-assured</artifactId> </dependency> <dependency> - <groupId>org.awaitility</groupId> - <artifactId>awaitility</artifactId> + <groupId>org.assertj</groupId> + <artifactId>assertj-core</artifactId> <scope>test</scope> </dependency> </dependencies> @@ -185,7 +176,6 @@ </activation> <properties> <quarkus.package.type>native</quarkus.package.type> - <quarkus.runner>${project.build.directory}/${project.artifactId}-${project.version}-runner</quarkus.runner> </properties> <build> <plugins> @@ -200,43 +190,6 @@ </goals> </execution> </executions> - <configuration> - <systemPropertyVariables> - <quarkus.runner>${quarkus.runner}</quarkus.runner> - </systemPropertyVariables> - </configuration> - </plugin> - </plugins> - </build> - </profile> - <profile> - <id>full</id> - <activation> - <property> - <name>!quickly</name> - </property> - </activation> - <build> - <plugins> - <plugin> - <!-- Move surefire:test to integration-test phase to be able to run - java -jar target/*runner.jar from a test --> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - <executions> - <execution> - <id>default-test</id> - <goals> - <goal>test</goal> - </goals> - <phase>integration-test</phase> - <configuration> - <systemPropertyVariables> - <quarkus.runner>${quarkus.runner}</quarkus.runner> - </systemPropertyVariables> - </configuration> - </execution> - </executions> </plugin> </plugins> </build> diff --git a/integration-tests/groovy-dsl/src/test/java/org/apache/camel/quarkus/dsl/groovy/GroovyDslTest.java b/integration-tests/groovy-dsl/src/test/java/org/apache/camel/quarkus/dsl/groovy/GroovyDslTest.java index 82ce107208..6f41d92bba 100644 --- a/integration-tests/groovy-dsl/src/test/java/org/apache/camel/quarkus/dsl/groovy/GroovyDslTest.java +++ b/integration-tests/groovy-dsl/src/test/java/org/apache/camel/quarkus/dsl/groovy/GroovyDslTest.java @@ -16,151 +16,64 @@ */ package org.apache.camel.quarkus.dsl.groovy; -import java.util.concurrent.TimeUnit; - +import io.quarkus.test.junit.QuarkusTest; +import io.restassured.RestAssured; import org.apache.camel.dsl.groovy.GroovyRoutesBuilderLoader; -import org.apache.camel.quarkus.test.support.process.QuarkusProcessExecutor; -import org.apache.http.HttpResponse; -import org.apache.http.HttpStatus; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.client.methods.HttpPost; -import org.apache.http.client.methods.HttpUriRequest; -import org.apache.http.entity.ContentType; -import org.apache.http.entity.StringEntity; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.impl.client.HttpClientBuilder; -import org.apache.http.util.EntityUtils; -import org.awaitility.Awaitility; -import org.junit.jupiter.api.AfterAll; -import org.junit.jupiter.api.BeforeAll; +import org.hamcrest.CoreMatchers; import org.junit.jupiter.api.Test; -import org.zeroturnaround.exec.StartedProcess; - -import static org.assertj.core.api.Assertions.assertThat; +@QuarkusTest class GroovyDslTest { - private static int port; - private static StartedProcess process; - - @BeforeAll - static void start() throws Exception { - // Need to use an external process to test the extension because of a CL issue that happens only on test mode - // due to the fact that groovy is defined as a parent first artifact - QuarkusProcessExecutor quarkusProcessExecutor = new QuarkusProcessExecutor(); - process = quarkusProcessExecutor.start(); - port = quarkusProcessExecutor.getHttpPort(); - awaitStartup(); - } - - @AfterAll - static void stop() { - if (process != null && process.getProcess().isAlive()) { - process.getProcess().destroy(); - } - } - - private static String toAbsolutePath(String relativePath) { - return String.format("http://localhost:%d/%s", port, relativePath); - } - - private static void awaitStartup() { - Awaitility.await().atMost(10, TimeUnit.SECONDS).pollDelay(1, TimeUnit.SECONDS).until(() -> { - HttpUriRequest request = new HttpGet(toAbsolutePath("/groovy-dsl")); - try (CloseableHttpClient client = HttpClientBuilder.create().build()) { - HttpResponse httpResponse = client.execute(request); - return httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK; - } catch (Exception e) { - return false; - } - }); - } - @Test - void groovyHello() throws Exception { - try (CloseableHttpClient client = HttpClientBuilder.create().build()) { - // Given - HttpPost httpPost = new HttpPost(toAbsolutePath("/groovy-dsl/hello")); - httpPost.setEntity(new StringEntity("John Smith", ContentType.TEXT_PLAIN)); - - // When - HttpResponse httpResponse = client.execute(httpPost); - - // Then - assertThat(httpResponse.getStatusLine().getStatusCode()).isEqualTo(HttpStatus.SC_OK); - assertThat(EntityUtils.toString(httpResponse.getEntity())).isEqualTo("Hello John Smith from Groovy!"); - } + void groovyHello() { + RestAssured.given() + .body("John Smith") + .post("/groovy-dsl/hello") + .then() + .statusCode(200) + .body(CoreMatchers.is("Hello John Smith from Groovy!")); } @Test - void testMainInstanceWithJavaRoutes() throws Exception { - try (CloseableHttpClient client = HttpClientBuilder.create().build()) { - // Given - HttpUriRequest request = new HttpGet(toAbsolutePath("/groovy-dsl/main/groovyRoutesBuilderLoader")); - - // When - HttpResponse httpResponse = client.execute(request); - - // Then - assertThat(httpResponse.getStatusLine().getStatusCode()).isEqualTo(HttpStatus.SC_OK); - assertThat(EntityUtils.toString(httpResponse.getEntity())).isEqualTo(GroovyRoutesBuilderLoader.class.getName()); - - // Given - request = new HttpGet(toAbsolutePath("/groovy-dsl/main/routeBuilders")); - - // When - httpResponse = client.execute(request); - - // Then - assertThat(httpResponse.getStatusLine().getStatusCode()).isEqualTo(HttpStatus.SC_OK); - assertThat(EntityUtils.toString(httpResponse.getEntity())).isEmpty(); - - // Given - request = new HttpGet(toAbsolutePath("/groovy-dsl/main/routes")); - - // When - httpResponse = client.execute(request); - - // Then - assertThat(httpResponse.getStatusLine().getStatusCode()).isEqualTo(HttpStatus.SC_OK); - assertThat(EntityUtils.toString(httpResponse.getEntity())).isEqualTo( - "my-groovy-route,routes-with-components-configuration,routes-with-dataformats-configuration,routes-with-eip-body,routes-with-eip-exchange,routes-with-eip-message,routes-with-eip-process,routes-with-eip-setBody,routes-with-endpoint-dsl,routes-with-error-handler,routes-with-languages-configuration,routes-with-rest,routes-with-rest-dsl-get,routes-with-rest-dsl-post,routes-with-rest-get,routes-with-rest-post"); - - // Given - request = new HttpGet(toAbsolutePath("/groovy-dsl/main/successful/routes")); - - // When - httpResponse = client.execute(request); - - // Then - assertThat(httpResponse.getStatusLine().getStatusCode()).isEqualTo(HttpStatus.SC_OK); - assertThat(EntityUtils.toString(httpResponse.getEntity())).isEqualTo("10"); - } + void testMainInstanceWithJavaRoutes() { + RestAssured.given() + .get("/groovy-dsl/main/groovyRoutesBuilderLoader") + .then() + .statusCode(200) + .body(CoreMatchers.is(GroovyRoutesBuilderLoader.class.getName())); + + RestAssured.given() + .get("/groovy-dsl/main/routeBuilders") + .then() + .statusCode(200) + .body(CoreMatchers.is("")); + + RestAssured.given() + .get("/groovy-dsl/main/routes") + .then() + .statusCode(200) + .body(CoreMatchers.is( + "my-groovy-route,routes-with-components-configuration,routes-with-dataformats-configuration,routes-with-eip-body,routes-with-eip-exchange,routes-with-eip-message,routes-with-eip-process,routes-with-eip-setBody,routes-with-endpoint-dsl,routes-with-error-handler,routes-with-languages-configuration,routes-with-rest,routes-with-rest-dsl-get,routes-with-rest-dsl-post,routes-with-rest-get,routes-with-rest-post")); + RestAssured.given() + .get("/groovy-dsl/main/successful/routes") + .then() + .statusCode(200) + .body(CoreMatchers.is("10")); } @Test - void testRestEndpoints() throws Exception { - try (CloseableHttpClient client = HttpClientBuilder.create().build()) { - // Given - final HttpGet httpGet = new HttpGet(toAbsolutePath("/root/my/path/get")); - - // When - HttpResponse httpResponse = client.execute(httpGet); - - // Then - assertThat(httpResponse.getStatusLine().getStatusCode()).isEqualTo(HttpStatus.SC_OK); - assertThat(EntityUtils.toString(httpResponse.getEntity())).isEqualTo("Hello World"); - - // Given - HttpPost httpPost = new HttpPost(toAbsolutePath("/root/post")); - httpPost.setEntity(new StringEntity("Will", ContentType.TEXT_PLAIN)); - - // When - httpResponse = client.execute(httpPost); - - // Then - assertThat(httpResponse.getStatusLine().getStatusCode()).isEqualTo(HttpStatus.SC_OK); - assertThat(EntityUtils.toString(httpResponse.getEntity())).isEqualTo("Hello Will"); - } + void testRestEndpoints() { + RestAssured.given() + .get("/root/my/path/get") + .then() + .statusCode(200) + .body(CoreMatchers.is("Hello World")); + RestAssured.given() + .body("Will") + .post("/root/post") + .then() + .statusCode(200) + .body(CoreMatchers.is("Hello Will")); } } diff --git a/tooling/test-list/pom.xml b/tooling/test-list/pom.xml index 6fae3b8b4e..0ff5740ea4 100644 --- a/tooling/test-list/pom.xml +++ b/tooling/test-list/pom.xml @@ -57,7 +57,6 @@ <excludes> <exclude>support/**/*</exclude> <exclude>support/**/*</exclude> - <exclude>groovy-dsl/pom.xml</exclude><!-- See https://github.com/apache/camel-quarkus/issues/4894 --> <exclude>master/pom.xml</exclude> <exclude>master-openshift/pom.xml</exclude> <exclude>master-file/pom.xml</exclude>