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 1ac5f3431cff6b75a9e52bd2e01634a383394c02 Author: Benoit Tellier <[email protected]> AuthorDate: Thu Dec 19 18:10:05 2019 +0700 JAMES-3014 Use JUNIT 5 to run FastViewProjectionHealthCheckIntegrationTest --- ...stViewProjectionHealthCheckIntegrationTest.java | 23 ++++-------- ...stViewProjectionHealthCheckIntegrationTest.java | 27 +++++++------- ...wProjectionHealthCheckIntegrationContract.java} | 41 ++++++++-------------- 3 files changed, 35 insertions(+), 56 deletions(-) diff --git a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQFastViewProjectionHealthCheckIntegrationTest.java b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQFastViewProjectionHealthCheckIntegrationTest.java index 8b603e0..643e25d 100644 --- a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQFastViewProjectionHealthCheckIntegrationTest.java +++ b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQFastViewProjectionHealthCheckIntegrationTest.java @@ -19,22 +19,11 @@ package org.apache.james.webadmin.integration.rabbitmq; -import org.apache.james.CassandraRabbitMQAwsS3JmapTestRule; -import org.apache.james.DockerCassandraRule; -import org.apache.james.GuiceJamesServer; -import org.apache.james.webadmin.integration.FastViewProjectionHealthCheckIntegrationTest; -import org.junit.Rule; +import org.apache.james.webadmin.integration.FastViewProjectionHealthCheckIntegrationContract; +import org.apache.james.webadmin.integration.rabbitmq.RabbitMQJmapExtension.JamesLifeCyclePolicy; +import org.junit.jupiter.api.extension.RegisterExtension; -public class RabbitMQFastViewProjectionHealthCheckIntegrationTest extends FastViewProjectionHealthCheckIntegrationTest { - - @Rule - public DockerCassandraRule cassandra = new DockerCassandraRule(); - - @Rule - public CassandraRabbitMQAwsS3JmapTestRule jamesTestRule = CassandraRabbitMQAwsS3JmapTestRule.defaultTestRule(); - - @Override - public GuiceJamesServer createJamesServer() throws Exception { - return jamesTestRule.jmapServer(cassandra.getModule()); - } +class RabbitMQFastViewProjectionHealthCheckIntegrationTest extends FastViewProjectionHealthCheckIntegrationContract { + @RegisterExtension + static RabbitMQJmapExtension rabbitMQJmapExtension = new RabbitMQJmapExtension(JamesLifeCyclePolicy.FOR_EACH_TEST); } diff --git a/server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/memory/MemoryFastViewProjectionHealthCheckIntegrationTest.java b/server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/memory/MemoryFastViewProjectionHealthCheckIntegrationTest.java index 19b5688..82f5d3b 100644 --- a/server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/memory/MemoryFastViewProjectionHealthCheckIntegrationTest.java +++ b/server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/memory/MemoryFastViewProjectionHealthCheckIntegrationTest.java @@ -20,19 +20,22 @@ package org.apache.james.webadmin.integration.memory; import org.apache.james.GuiceJamesServer; -import org.apache.james.MemoryJmapTestRule; +import org.apache.james.JamesServerBuilder; +import org.apache.james.JamesServerExtension; +import org.apache.james.MemoryJamesServerMain; +import org.apache.james.modules.TestJMAPServerModule; import org.apache.james.webadmin.WebAdminConfiguration; -import org.apache.james.webadmin.integration.FastViewProjectionHealthCheckIntegrationTest; -import org.junit.Rule; +import org.apache.james.webadmin.integration.FastViewProjectionHealthCheckIntegrationContract; +import org.junit.jupiter.api.extension.RegisterExtension; -public class MemoryFastViewProjectionHealthCheckIntegrationTest extends FastViewProjectionHealthCheckIntegrationTest { +class MemoryFastViewProjectionHealthCheckIntegrationTest extends FastViewProjectionHealthCheckIntegrationContract { + private static final int LIMIT_TO_10_MESSAGES = 10; - @Rule - public MemoryJmapTestRule memoryJmap = new MemoryJmapTestRule(); - - @Override - public GuiceJamesServer createJamesServer() throws Exception { - return memoryJmap.jmapServer( - binder -> binder.bind(WebAdminConfiguration.class).toInstance(WebAdminConfiguration.TEST_CONFIGURATION)); - } + @RegisterExtension + static JamesServerExtension jamesServerExtension = new JamesServerBuilder() + .server(configuration -> GuiceJamesServer.forConfiguration(configuration) + .combineWith(MemoryJamesServerMain.IN_MEMORY_SERVER_AGGREGATE_MODULE) + .overrideWith(new TestJMAPServerModule(LIMIT_TO_10_MESSAGES)) + .overrideWith(binder -> binder.bind(WebAdminConfiguration.class).toInstance(WebAdminConfiguration.TEST_CONFIGURATION))) + .build(); } \ No newline at end of file diff --git a/server/protocols/webadmin-integration-test/webadmin-integration-test-common/src/main/java/org/apache/james/webadmin/integration/FastViewProjectionHealthCheckIntegrationTest.java b/server/protocols/webadmin-integration-test/webadmin-integration-test-common/src/main/java/org/apache/james/webadmin/integration/FastViewProjectionHealthCheckIntegrationContract.java similarity index 87% rename from server/protocols/webadmin-integration-test/webadmin-integration-test-common/src/main/java/org/apache/james/webadmin/integration/FastViewProjectionHealthCheckIntegrationTest.java rename to server/protocols/webadmin-integration-test/webadmin-integration-test-common/src/main/java/org/apache/james/webadmin/integration/FastViewProjectionHealthCheckIntegrationContract.java index 15465bf..47c17f8 100644 --- a/server/protocols/webadmin-integration-test/webadmin-integration-test-common/src/main/java/org/apache/james/webadmin/integration/FastViewProjectionHealthCheckIntegrationTest.java +++ b/server/protocols/webadmin-integration-test/webadmin-integration-test-common/src/main/java/org/apache/james/webadmin/integration/FastViewProjectionHealthCheckIntegrationContract.java @@ -51,34 +51,28 @@ import org.apache.james.utils.DataProbeImpl; import org.apache.james.utils.WebAdminGuiceProbe; import org.apache.james.webadmin.WebAdminUtils; import org.eclipse.jetty.http.HttpStatus; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import io.restassured.RestAssured; import io.restassured.specification.RequestSpecification; -public abstract class FastViewProjectionHealthCheckIntegrationTest { - +public abstract class FastViewProjectionHealthCheckIntegrationContract { private static final String MESSAGE_FAST_VIEW_PROJECTION = "MessageFastViewProjection"; - private GuiceJamesServer guiceJamesServer; private RequestSpecification webAdminApi; private AccessToken bobAccessToken; private AccessToken aliceAccessToken; - @Before - public void setUp() throws Exception { - guiceJamesServer = createJamesServer(); - guiceJamesServer.start(); - - DataProbe dataProbe = guiceJamesServer.getProbe(DataProbeImpl.class); + @BeforeEach + void setUp(GuiceJamesServer jamesServer) throws Exception { + DataProbe dataProbe = jamesServer.getProbe(DataProbeImpl.class); dataProbe.addDomain(DOMAIN); dataProbe.addUser(BOB.asString(), BOB_PASSWORD); dataProbe.addUser(ALICE.asString(), ALICE_PASSWORD); dataProbe.addUser(CEDRIC.asString(), CEDRIC_PASSWORD); - Port jmapPort = guiceJamesServer.getProbe(JmapGuiceProbe.class).getJmapPort(); + Port jmapPort = jamesServer.getProbe(JmapGuiceProbe.class).getJmapPort(); RestAssured.requestSpecification = jmapRequestSpecBuilder .setPort(jmapPort.getValue()) .build(); @@ -86,18 +80,11 @@ public abstract class FastViewProjectionHealthCheckIntegrationTest { bobAccessToken = authenticateJamesUser(baseUri(jmapPort), BOB, BOB_PASSWORD); aliceAccessToken = authenticateJamesUser(baseUri(jmapPort), ALICE, ALICE_PASSWORD); - webAdminApi = WebAdminUtils.spec(guiceJamesServer.getProbe(WebAdminGuiceProbe.class).getWebAdminPort()); + webAdminApi = WebAdminUtils.spec(jamesServer.getProbe(WebAdminGuiceProbe.class).getWebAdminPort()); } - @After - public void tearDown() { - guiceJamesServer.stop(); - } - - protected abstract GuiceJamesServer createJamesServer() throws Exception; - @Test - public void checkShouldReturnHealthyWhenNoMessage() { + void checkShouldReturnHealthyWhenNoMessage() { webAdminApi.when() .get("/healthcheck/checks/" + MESSAGE_FAST_VIEW_PROJECTION) .then() @@ -108,7 +95,7 @@ public abstract class FastViewProjectionHealthCheckIntegrationTest { } @Test - public void checkShouldReturnHealthyAfterSendingAMessageWithReads() { + void checkShouldReturnHealthyAfterSendingAMessageWithReads() { bobSendAMessageToAlice(); IntStream.rangeClosed(1, 20) @@ -124,7 +111,7 @@ public abstract class FastViewProjectionHealthCheckIntegrationTest { } @Test - public void checkShouldReturnDegradedAfterFewReadsOnAMissedProjection() { + void checkShouldReturnDegradedAfterFewReadsOnAMissedProjection(GuiceJamesServer guiceJamesServer) { bobSendAMessageToAlice(); guiceJamesServer.getProbe(JmapGuiceProbe.class) @@ -143,11 +130,11 @@ public abstract class FastViewProjectionHealthCheckIntegrationTest { } @Test - public void checkShouldTurnFromDegradedToHealthyAfterMoreReadsOnAMissedProjection() { + void checkShouldTurnFromDegradedToHealthyAfterMoreReadsOnAMissedProjection(GuiceJamesServer guiceJamesServer) { bobSendAMessageToAlice(); calmlyAwait.untilAsserted(() -> assertThat(listMessageIdsForAccount(aliceAccessToken)) .hasSize(1)); - makeHealthCheckDegraded(); + makeHealthCheckDegraded(guiceJamesServer); IntStream.rangeClosed(1, 100) .forEach(counter -> aliceReadLastMessage()); @@ -161,7 +148,7 @@ public abstract class FastViewProjectionHealthCheckIntegrationTest { .body("status", equalTo(ResultStatus.HEALTHY.getValue())); } - private void makeHealthCheckDegraded() { + private void makeHealthCheckDegraded(GuiceJamesServer guiceJamesServer) { guiceJamesServer.getProbe(JmapGuiceProbe.class) .clearMessageFastViewProjection(); aliceReadLastMessage(); --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
