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