You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by bt...@apache.org on 2022/09/25 15:01:32 UTC

[james-project] 04/04: JAMES-3817 Integration tests for health check

This is an automated email from the ASF dual-hosted git repository.

btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 583b7d4a584afe05f9a2c37ffabe68474e7e62d7
Author: Quan Tran <hq...@linagora.com>
AuthorDate: Wed Sep 21 15:33:25 2022 +0700

    JAMES-3817 Integration tests for health check
    
    Make sure dead letter queue healthchecks are binded well
---
 ...itMQWebAdminServerIntegrationImmutableTest.java | 23 ++++++++++++++++++++++
 ...moryWebAdminServerIntegrationImmutableTest.java | 23 ++++++++++++++++++++++
 2 files changed, 46 insertions(+)

diff --git a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQWebAdminServerIntegrationImmutableTest.java b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQWebAdminServerIntegrationImmutableTest.java
index 979407793e..8563add768 100644
--- a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQWebAdminServerIntegrationImmutableTest.java
+++ b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQWebAdminServerIntegrationImmutableTest.java
@@ -24,9 +24,12 @@ import static io.restassured.RestAssured.when;
 import static io.restassured.RestAssured.with;
 import static org.apache.james.JamesServerExtension.Lifecycle.PER_CLASS;
 import static org.apache.james.webadmin.Constants.JSON_CONTENT_TYPE;
+import static org.assertj.core.api.Assertions.assertThat;
 import static org.hamcrest.Matchers.hasSize;
 import static org.hamcrest.Matchers.is;
 
+import java.util.List;
+
 import org.apache.james.CassandraExtension;
 import org.apache.james.CassandraRabbitMQJamesConfiguration;
 import org.apache.james.CassandraRabbitMQJamesServerMain;
@@ -40,6 +43,7 @@ import org.apache.james.modules.AwsS3BlobStoreExtension;
 import org.apache.james.modules.RabbitMQExtension;
 import org.apache.james.modules.blobstore.BlobStoreConfiguration;
 import org.apache.james.webadmin.integration.WebAdminServerIntegrationImmutableTest;
+import org.apache.james.webadmin.routes.HealthCheckRoutes;
 import org.apache.james.webadmin.routes.TasksRoutes;
 import org.eclipse.jetty.http.HttpStatus;
 import org.junit.jupiter.api.Tag;
@@ -117,4 +121,23 @@ class RabbitMQWebAdminServerIntegrationImmutableTest extends WebAdminServerInteg
             .body("additionalInformation.fixedInconsistencies", hasSize(0))
             .body("additionalInformation.errors", hasSize(0));
     }
+
+    @Test
+    void healthCheckComponentsList() {
+        List<String> listComponentNames =
+            when()
+                .get(HealthCheckRoutes.HEALTHCHECK)
+            .then()
+                .statusCode(HttpStatus.OK_200)
+                .extract()
+                .body()
+                .jsonPath()
+                .getList("checks.componentName", String.class);
+
+        assertThat(listComponentNames).containsOnly("Guice application lifecycle", "EmptyErrorMailRepository",
+            "RabbitMQ backend", "RabbitMQMailQueueDeadLetterQueueHealthCheck",
+            "RabbitMQEventBusDeadLetterQueueHealthCheck", "MailReceptionCheck",
+            "Cassandra backend", "EventDeadLettersHealthCheck", "MessageFastViewProjection",
+            "RabbitMQMailQueue BrowseStart", "OpenSearch Backend");
+    }
 }
diff --git a/server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/memory/MemoryWebAdminServerIntegrationImmutableTest.java b/server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/memory/MemoryWebAdminServerIntegrationImmutableTest.java
index 094d4bf961..31046efbd5 100644
--- a/server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/memory/MemoryWebAdminServerIntegrationImmutableTest.java
+++ b/server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/memory/MemoryWebAdminServerIntegrationImmutableTest.java
@@ -19,14 +19,21 @@
 
 package org.apache.james.webadmin.integration.memory;
 
+import static io.restassured.RestAssured.when;
 import static org.apache.james.JamesServerExtension.Lifecycle.PER_CLASS;
 import static org.apache.james.data.UsersRepositoryModuleChooser.Implementation.DEFAULT;
+import static org.assertj.core.api.Assertions.assertThat;
+
+import java.util.List;
 
 import org.apache.james.JamesServerBuilder;
 import org.apache.james.JamesServerExtension;
 import org.apache.james.MemoryJamesConfiguration;
 import org.apache.james.MemoryJamesServerMain;
 import org.apache.james.webadmin.integration.WebAdminServerIntegrationImmutableTest;
+import org.apache.james.webadmin.routes.HealthCheckRoutes;
+import org.eclipse.jetty.http.HttpStatus;
+import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
 
 class MemoryWebAdminServerIntegrationImmutableTest extends WebAdminServerIntegrationImmutableTest {
@@ -40,4 +47,20 @@ class MemoryWebAdminServerIntegrationImmutableTest extends WebAdminServerIntegra
         .server(MemoryJamesServerMain::createServer)
         .lifeCycle(PER_CLASS)
         .build();
+
+    @Test
+    void healthCheckComponentsList() {
+        List<String> listComponentNames =
+            when()
+                .get(HealthCheckRoutes.HEALTHCHECK)
+            .then()
+                .statusCode(HttpStatus.OK_200)
+                .extract()
+                .body()
+                .jsonPath()
+                .getList("checks.componentName", String.class);
+
+        assertThat(listComponentNames).containsOnly("Guice application lifecycle", "MailReceptionCheck",
+            "EventDeadLettersHealthCheck", "EmptyErrorMailRepository", "MessageFastViewProjection");
+    }
 }
\ No newline at end of file


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org