From 6125afae4d9cc8ea78d71a002386bd74c47ec333 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez?= Date: Thu, 27 Jun 2024 17:28:21 -0500 Subject: [PATCH 1/5] Update deps --- pom.xml | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 3c64547..ef9ef09 100644 --- a/pom.xml +++ b/pom.xml @@ -36,7 +36,7 @@ 1.0.2.Final - 7.0.1.GA + 7.1.5.GA 2.19.1 2.1.1 @@ -94,6 +94,13 @@ pom import + + org.testcontainers + testcontainers-bom + 1.19.8 + pom + import + @@ -134,6 +141,7 @@ junit junit + 4.13.2 test @@ -157,6 +165,23 @@ resteasy-multipart-provider test + + org.testcontainers + testcontainers + test + + + ch.qos.logback + logback-classic + 1.2.7 + test + + + io.rest-assured + rest-assured + 5.4.0 + test + - - BASIC - RealmUsersRoles - + + + + - - resteasy.role.based.security - true - + + + + - - - Tasks - /ws/tasks/* - - - Users - /ws/users/* - + + + + + + + + + - - guest - - + + + + - - guest - + + + From 96119f01bbb7162c14323f23e09a0395dc319296 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez?= Date: Thu, 27 Jun 2024 17:28:55 -0500 Subject: [PATCH 3/5] Update deployment --- .../jboss/as/quickstarts/tasksrs/DefaultDeployment.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/test/java/org/jboss/as/quickstarts/tasksrs/DefaultDeployment.java b/src/test/java/org/jboss/as/quickstarts/tasksrs/DefaultDeployment.java index 8e05bcc..3e450d9 100644 --- a/src/test/java/org/jboss/as/quickstarts/tasksrs/DefaultDeployment.java +++ b/src/test/java/org/jboss/as/quickstarts/tasksrs/DefaultDeployment.java @@ -44,6 +44,13 @@ public DefaultDeployment withPersistence() { return this; } + public DefaultDeployment withOriginalPersistence() { + webArchive = webArchive.addAsResource("META-INF/persistence.xml", "META-INF/persistence.xml") + .addAsWebInfResource(new File(WEBAPP_SRC, "WEB-INF/tasks-rs-ds.xml")) + .addAsWebInfResource(new File(WEBAPP_SRC, "WEB-INF/web.xml")); + return this; + } + public DefaultDeployment withImportedData() { webArchive = webArchive.addAsResource("import.sql"); return this; From 6aef027b23068d0c4756e1623cacf96bcc96366a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez?= Date: Thu, 27 Jun 2024 17:29:13 -0500 Subject: [PATCH 4/5] Add logback config to display tc logs --- src/test/resources/logback-test.xml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 src/test/resources/logback-test.xml diff --git a/src/test/resources/logback-test.xml b/src/test/resources/logback-test.xml new file mode 100644 index 0000000..5370155 --- /dev/null +++ b/src/test/resources/logback-test.xml @@ -0,0 +1,17 @@ + + + + %d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n + + + + + + + + + + + + + From bea8a2ab06c09bb83b14d41b1cec5db43adb6dce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez?= Date: Thu, 27 Jun 2024 17:29:24 -0500 Subject: [PATCH 5/5] Add integration test --- .../service/UserResourceIntegrationTest.java | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 src/test/java/org/jboss/as/quickstarts/tasksrs/service/UserResourceIntegrationTest.java diff --git a/src/test/java/org/jboss/as/quickstarts/tasksrs/service/UserResourceIntegrationTest.java b/src/test/java/org/jboss/as/quickstarts/tasksrs/service/UserResourceIntegrationTest.java new file mode 100644 index 0000000..79ecbcf --- /dev/null +++ b/src/test/java/org/jboss/as/quickstarts/tasksrs/service/UserResourceIntegrationTest.java @@ -0,0 +1,66 @@ +package org.jboss.as.quickstarts.tasksrs.service; + +import com.openshift.service.DemoResource; +import io.restassured.RestAssured; +import io.restassured.http.ContentType; +import io.restassured.specification.RequestSpecification; +import org.jboss.as.quickstarts.tasksrs.DefaultDeployment; +import org.jboss.as.quickstarts.tasksrs.model.Resources; +import org.jboss.as.quickstarts.tasksrs.model.Task; +import org.jboss.as.quickstarts.tasksrs.model.TaskDao; +import org.jboss.as.quickstarts.tasksrs.model.TaskDaoImpl; +import org.jboss.as.quickstarts.tasksrs.model.User; +import org.jboss.as.quickstarts.tasksrs.model.UserDao; +import org.jboss.as.quickstarts.tasksrs.model.UserDaoImpl; +import org.jboss.shrinkwrap.api.exporter.ZipExporter; +import org.jboss.shrinkwrap.api.spec.WebArchive; +import org.junit.ClassRule; +import org.junit.Test; +import org.testcontainers.containers.GenericContainer; +import org.testcontainers.images.builder.Transferable; + +import java.io.ByteArrayOutputStream; + +import static org.hamcrest.Matchers.equalTo; +import static org.hamcrest.Matchers.hasSize; + +public class UserResourceIntegrationTest { + + public static byte[] deployment() throws IllegalArgumentException { + WebArchive webArchive = new DefaultDeployment().withOriginalPersistence().withImportedData().getArchive() + .addClasses(Resources.class, User.class, UserDao.class, Task.class, TaskDao.class, TaskDaoImpl.class, UserDaoImpl.class, TaskResource.class, UserResource.class, DemoResource.class); + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + webArchive.as(ZipExporter.class).exportTo(outputStream); + return outputStream.toByteArray(); + } + + @ClassRule + public static final GenericContainer wildfly + = new GenericContainer<>("jboss/wildfly:21.0.2.Final") + .withExposedPorts(8080, 9990) + .withCopyToContainer( + Transferable.of(deployment()), + "/opt/jboss/wildfly/standalone/deployments/test.war"); + + @Test + public void test() { + RequestSpecification requestSpecification = RestAssured.given() + .baseUri("http://" + wildfly.getHost() + ":" + wildfly.getMappedPort(8080) + "/test"); + requestSpecification + .get("/ws/demo/healthcheck") + .andReturn() + .then() + .statusCode(200) + .body("health", equalTo(1)) + .body("response", equalTo("Health Status: 1")); + + requestSpecification + .accept(ContentType.JSON) + .get("/ws/users") + .andReturn() + .then() + .statusCode(200) + .body(".", hasSize(2)); + } + +}