This is an automated email from the ASF dual-hosted git repository. rcordier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 677b28a69df33d158c56233097be85b8903000ac Author: duc <dt...@linagora.com> AuthorDate: Wed Jan 8 22:21:50 2020 +0700 [Refactoring] Migrate to Junit 5 WebAdminServerIntegrationTest --- .../RabbitMQWebAdminServerIntegrationTest.java | 53 ++++++++++++--------- .../MemoryWebAdminServerIntegrationTest.java | 24 ++++++---- .../integration/WebAdminServerIntegrationTest.java | 55 +++++++++------------- 3 files changed, 68 insertions(+), 64 deletions(-) diff --git a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQWebAdminServerIntegrationTest.java b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQWebAdminServerIntegrationTest.java index 65c1423..4924364 100644 --- a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQWebAdminServerIntegrationTest.java +++ b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQWebAdminServerIntegrationTest.java @@ -28,11 +28,18 @@ import static org.hamcrest.CoreMatchers.hasItems; import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.is; -import org.apache.james.CassandraRabbitMQAwsS3JmapTestRule; -import org.apache.james.DockerCassandraRule; +import org.apache.james.CassandraExtension; +import org.apache.james.CassandraRabbitMQJamesServerMain; +import org.apache.james.DockerElasticSearchExtension; import org.apache.james.GuiceJamesServer; +import org.apache.james.JamesServerBuilder; +import org.apache.james.JamesServerExtension; import org.apache.james.backends.cassandra.versions.CassandraSchemaVersionManager; import org.apache.james.junit.categories.BasicFeature; +import org.apache.james.modules.AwsS3BlobStoreExtension; +import org.apache.james.modules.RabbitMQExtension; +import org.apache.james.modules.TestJMAPServerModule; +import org.apache.james.webadmin.WebAdminConfiguration; import org.apache.james.webadmin.integration.WebAdminServerIntegrationTest; import org.apache.james.webadmin.routes.AliasRoutes; import org.apache.james.webadmin.routes.CassandraMappingsRoutes; @@ -41,32 +48,36 @@ import org.apache.james.webadmin.swagger.routes.SwaggerRoutes; import org.awaitility.Awaitility; import org.awaitility.Duration; import org.eclipse.jetty.http.HttpStatus; -import org.junit.Rule; -import org.junit.Test; import org.junit.experimental.categories.Category; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; import io.restassured.http.ContentType; @Category(BasicFeature.class) -public class RabbitMQWebAdminServerIntegrationTest extends WebAdminServerIntegrationTest { +class RabbitMQWebAdminServerIntegrationTest extends WebAdminServerIntegrationTest { + + private static final int LIMIT_TO_10_MESSAGES = 10; + + @RegisterExtension + static JamesServerExtension testExtension = new JamesServerBuilder() + .extension(new DockerElasticSearchExtension()) + .extension(new CassandraExtension()) + .extension(new AwsS3BlobStoreExtension()) + .extension(new RabbitMQExtension()) + .server(configuration -> GuiceJamesServer.forConfiguration(configuration) + .combineWith(CassandraRabbitMQJamesServerMain.MODULES) + .overrideWith(new TestJMAPServerModule(LIMIT_TO_10_MESSAGES)) + .overrideWith(binder -> binder.bind(WebAdminConfiguration.class).toInstance(WebAdminConfiguration.TEST_CONFIGURATION))) + .build(); private static final String VERSION = "/cassandra/version"; private static final String VERSION_LATEST = VERSION + "/latest"; private static final String UPGRADE_VERSION = VERSION + "/upgrade"; private static final String UPGRADE_TO_LATEST_VERSION = UPGRADE_VERSION + "/latest"; - @Rule - public DockerCassandraRule cassandra = new DockerCassandraRule(); - @Rule - public CassandraRabbitMQAwsS3JmapTestRule jamesTestRule = CassandraRabbitMQAwsS3JmapTestRule.defaultTestRule(); - - @Override - protected GuiceJamesServer createJamesServer() throws Exception { - return jamesTestRule.jmapServer(cassandra.getModule()); - } - @Test - public void getCurrentVersionShouldReturnNullForCurrentVersionAsBeginning() { + void getCurrentVersionShouldReturnNullForCurrentVersionAsBeginning() { when() .get(VERSION) .then() @@ -76,7 +87,7 @@ public class RabbitMQWebAdminServerIntegrationTest extends WebAdminServerIntegra } @Test - public void getLatestVersionShouldReturnTheConfiguredLatestVersion() { + void getLatestVersionShouldReturnTheConfiguredLatestVersion() { when() .get(VERSION_LATEST) .then() @@ -86,7 +97,7 @@ public class RabbitMQWebAdminServerIntegrationTest extends WebAdminServerIntegra } @Test - public void postShouldDoMigrationAndUpdateCurrentVersion() { + void postShouldDoMigrationAndUpdateCurrentVersion() { String taskId = with() .body(String.valueOf(CassandraSchemaVersionManager.MAX_VERSION.getValue())) .post(UPGRADE_VERSION) @@ -111,7 +122,7 @@ public class RabbitMQWebAdminServerIntegrationTest extends WebAdminServerIntegra } @Test - public void postShouldDoMigrationAndUpdateToTheLatestVersion() { + void postShouldDoMigrationAndUpdateToTheLatestVersion() { String taskId = with().post(UPGRADE_TO_LATEST_VERSION) .jsonPath() .get("taskId"); @@ -130,7 +141,7 @@ public class RabbitMQWebAdminServerIntegrationTest extends WebAdminServerIntegra } @Test - public void cassandraMappingsEndpointShouldKeepDataConsistencyWhenDataValid() { + void cassandraMappingsEndpointShouldKeepDataConsistencyWhenDataValid() { with() .put(AliasRoutes.ROOT_PATH + SEPARATOR + USERNAME + "/sources/" + ALIAS_1); with() @@ -159,7 +170,7 @@ public class RabbitMQWebAdminServerIntegrationTest extends WebAdminServerIntegra @Test - public void getSwaggerShouldContainDistributedEndpoints() { + void getSwaggerShouldContainDistributedEndpoints() { when() .get(SwaggerRoutes.SWAGGER_ENDPOINT) .then() diff --git a/server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/memory/MemoryWebAdminServerIntegrationTest.java b/server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/memory/MemoryWebAdminServerIntegrationTest.java index 119bec7..6876e7a 100644 --- a/server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/memory/MemoryWebAdminServerIntegrationTest.java +++ b/server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/memory/MemoryWebAdminServerIntegrationTest.java @@ -20,19 +20,23 @@ 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.WebAdminServerIntegrationTest; -import org.junit.Rule; +import org.junit.jupiter.api.extension.RegisterExtension; -public class MemoryWebAdminServerIntegrationTest extends WebAdminServerIntegrationTest { +class MemoryWebAdminServerIntegrationTest extends WebAdminServerIntegrationTest { - @Rule - public MemoryJmapTestRule memoryJmap = new MemoryJmapTestRule(); + private static final int LIMIT_TO_10_MESSAGES = 10; - @Override - protected 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/WebAdminServerIntegrationTest.java b/server/protocols/webadmin-integration-test/webadmin-integration-test-common/src/main/java/org/apache/james/webadmin/integration/WebAdminServerIntegrationTest.java index 5da8f67..547aa2a 100644 --- a/server/protocols/webadmin-integration-test/webadmin-integration-test-common/src/main/java/org/apache/james/webadmin/integration/WebAdminServerIntegrationTest.java +++ b/server/protocols/webadmin-integration-test/webadmin-integration-test-common/src/main/java/org/apache/james/webadmin/integration/WebAdminServerIntegrationTest.java @@ -49,9 +49,8 @@ import org.apache.james.webadmin.routes.UserMailboxesRoutes; import org.apache.james.webadmin.routes.UserRoutes; import org.apache.james.webadmin.swagger.routes.SwaggerRoutes; 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; @@ -69,13 +68,10 @@ public abstract class WebAdminServerIntegrationTest { protected static final String ALIAS_1 = "alias1@" + DOMAIN; protected static final String ALIAS_2 = "alias2@" + DOMAIN; - private GuiceJamesServer guiceJamesServer; private DataProbe dataProbe; - @Before - public void setUp() throws Exception { - guiceJamesServer = createJamesServer(); - guiceJamesServer.start(); + @BeforeEach + void setUp(GuiceJamesServer guiceJamesServer) throws Exception { dataProbe = guiceJamesServer.getProbe(DataProbeImpl.class); dataProbe.addDomain(DOMAIN); WebAdminGuiceProbe webAdminGuiceProbe = guiceJamesServer.getProbe(WebAdminGuiceProbe.class); @@ -84,15 +80,8 @@ public abstract class WebAdminServerIntegrationTest { .build(); } - @After - public void tearDown() { - guiceJamesServer.stop(); - } - - protected abstract GuiceJamesServer createJamesServer() throws Exception; - @Test - public void postShouldAddTheGivenDomain() throws Exception { + void postShouldAddTheGivenDomain() throws Exception { when() .put(SPECIFIC_DOMAIN) .then() @@ -102,7 +91,7 @@ public abstract class WebAdminServerIntegrationTest { } @Test - public void mailQueueRoutesShouldBeExposed() { + void mailQueueRoutesShouldBeExposed() { when() .get(MailQueueRoutes.BASE_URL) .then() @@ -110,7 +99,7 @@ public abstract class WebAdminServerIntegrationTest { } @Test - public void healthCheckShouldReturn200WhenCalledRepeatedly() { + void healthCheckShouldReturn200WhenCalledRepeatedly() { given().get(HealthCheckRoutes.HEALTHCHECK); given().get(HealthCheckRoutes.HEALTHCHECK); given().get(HealthCheckRoutes.HEALTHCHECK); @@ -124,7 +113,7 @@ public abstract class WebAdminServerIntegrationTest { } @Test - public void mailRepositoriesRoutesShouldBeExposed() { + void mailRepositoriesRoutesShouldBeExposed() { when() .get(MailRepositoriesRoutes.MAIL_REPOSITORIES) .then() @@ -136,7 +125,7 @@ public abstract class WebAdminServerIntegrationTest { } @Test - public void gettingANonExistingMailRepositoryShouldNotCreateIt() { + void gettingANonExistingMailRepositoryShouldNotCreateIt() { given() .get(MailRepositoriesRoutes.MAIL_REPOSITORIES + "file%3A%2F%2Fvar%2Fmail%2Fcustom"); @@ -151,7 +140,7 @@ public abstract class WebAdminServerIntegrationTest { } @Test - public void deleteShouldRemoveTheGivenDomain() throws Exception { + void deleteShouldRemoveTheGivenDomain() throws Exception { when() .delete(SPECIFIC_DOMAIN) .then() @@ -161,7 +150,7 @@ public abstract class WebAdminServerIntegrationTest { } @Test - public void postShouldAddTheUser() throws Exception { + void postShouldAddTheUser() throws Exception { given() .body("{\"password\":\"password\"}") .when() @@ -173,7 +162,7 @@ public abstract class WebAdminServerIntegrationTest { } @Test - public void deleteShouldRemoveTheUser() throws Exception { + void deleteShouldRemoveTheUser() throws Exception { dataProbe.addUser(USERNAME, "anyPassword"); given() @@ -187,7 +176,7 @@ public abstract class WebAdminServerIntegrationTest { } @Test - public void getUsersShouldDisplayUsers() throws Exception { + void getUsersShouldDisplayUsers() throws Exception { dataProbe.addUser(USERNAME, "anyPassword"); when() @@ -199,7 +188,7 @@ public abstract class WebAdminServerIntegrationTest { } @Test - public void putMailboxShouldAddAMailbox() throws Exception { + void putMailboxShouldAddAMailbox(GuiceJamesServer guiceJamesServer) throws Exception { dataProbe.addUser(USERNAME, "anyPassword"); when() @@ -211,7 +200,7 @@ public abstract class WebAdminServerIntegrationTest { } @Test - public void deleteMailboxShouldRemoveAMailbox() throws Exception { + void deleteMailboxShouldRemoveAMailbox(GuiceJamesServer guiceJamesServer) throws Exception { dataProbe.addUser(USERNAME, "anyPassword"); guiceJamesServer.getProbe(MailboxProbeImpl.class).createMailbox("#private", USERNAME, MAILBOX); @@ -224,7 +213,7 @@ public abstract class WebAdminServerIntegrationTest { } @Test - public void addressGroupsEndpointShouldHandleRequests() throws Exception { + void addressGroupsEndpointShouldHandleRequests() throws Exception { with() .put(GroupsRoutes.ROOT_PATH + SEPARATOR + GROUP + SEPARATOR + USERNAME); with() @@ -242,7 +231,7 @@ public abstract class WebAdminServerIntegrationTest { } @Test - public void addressForwardsEndpointShouldListForwardAddresses() throws Exception { + void addressForwardsEndpointShouldListForwardAddresses() throws Exception { dataProbe.addUser(USERNAME, "anyPassword"); dataProbe.addUser(USERNAME_2, "anyPassword"); @@ -263,7 +252,7 @@ public abstract class WebAdminServerIntegrationTest { } @Test - public void addressAliasesEndpointShouldListAliasesAddresses() { + void addressAliasesEndpointShouldListAliasesAddresses() { with() .put(AliasRoutes.ROOT_PATH + SEPARATOR + USERNAME + "/sources/" + ALIAS_1); with() @@ -281,7 +270,7 @@ public abstract class WebAdminServerIntegrationTest { } @Test - public void getSwaggerShouldReturnJsonDataForSwagger() { + void getSwaggerShouldReturnJsonDataForSwagger() { when() .get(SwaggerRoutes.SWAGGER_ENDPOINT) .then() @@ -303,7 +292,7 @@ public abstract class WebAdminServerIntegrationTest { } @Test - public void validateHealthChecksShouldReturnOk() { + void validateHealthChecksShouldReturnOk() { when() .get(HealthCheckRoutes.HEALTHCHECK) .then() @@ -311,7 +300,7 @@ public abstract class WebAdminServerIntegrationTest { } @Test - public void jmapTasksShouldBeExposed() { + void jmapTasksShouldBeExposed() { String taskId = with() .queryParam("task", "recomputeFastViewProjectionItems") .post("/mailboxes") @@ -328,7 +317,7 @@ public abstract class WebAdminServerIntegrationTest { } @Test - public void jmapUserTasksShouldBeExposed() throws Exception { + void jmapUserTasksShouldBeExposed() throws Exception { dataProbe.addUser(USERNAME, "anyPassword"); String taskId = with() --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org