JAMES-2553 Rewrite ESReporterTest test in JUNIT 5
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/64c11d0d Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/64c11d0d Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/64c11d0d Branch: refs/heads/master Commit: 64c11d0d86e2c0dae8348792a397da0be2512db5 Parents: 89d7234 Author: Benoit Tellier <[email protected]> Authored: Mon Oct 1 11:22:31 2018 +0700 Committer: Benoit Tellier <[email protected]> Committed: Thu Oct 4 17:48:43 2018 +0700 ---------------------------------------------------------------------- .../java/org/apache/james/ESReporterTest.java | 62 ++++++++++---------- 1 file changed, 32 insertions(+), 30 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/64c11d0d/server/container/guice/cassandra-guice/src/test/java/org/apache/james/ESReporterTest.java ---------------------------------------------------------------------- diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/ESReporterTest.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/ESReporterTest.java index a25a7b4..ecd37a2 100644 --- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/ESReporterTest.java +++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/ESReporterTest.java @@ -21,6 +21,7 @@ package org.apache.james; import static io.restassured.RestAssured.given; import static io.restassured.config.EncoderConfig.encoderConfig; import static io.restassured.config.RestAssuredConfig.newConfig; +import static org.apache.james.CassandraJamesServerMain.ALL_BUT_JMX_CASSANDRA_MODULE; import static org.apache.james.jmap.HttpJmapAuthentication.authenticateJamesUser; import static org.apache.james.jmap.JmapURIBuilder.baseUri; import static org.awaitility.Awaitility.await; @@ -34,18 +35,20 @@ import java.util.stream.Collectors; import org.apache.commons.net.imap.IMAPClient; import org.apache.james.jmap.api.access.AccessToken; +import org.apache.james.mailbox.extractor.TextExtractor; +import org.apache.james.mailbox.store.search.PDFTextExtractor; import org.apache.james.modules.TestESMetricReporterModule; +import org.apache.james.modules.TestJMAPServerModule; import org.apache.james.modules.protocols.ImapGuiceProbe; import org.apache.james.utils.DataProbeImpl; import org.apache.james.utils.JmapGuiceProbe; import org.awaitility.Duration; import org.elasticsearch.client.Client; import org.elasticsearch.index.query.QueryBuilders; -import org.junit.After; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -53,34 +56,36 @@ import io.restassured.RestAssured; import io.restassured.builder.RequestSpecBuilder; import io.restassured.http.ContentType; -public class ESReporterTest { +class ESReporterTest { + private static final Logger LOGGER = LoggerFactory.getLogger(ESReporterTest.class); + private static final int LIMIT_TO_10_MESSAGES = 10; + + + static final EmbeddedElasticSearchExtension embeddedElasticSearchExtension = new EmbeddedElasticSearchExtension(); + + @RegisterExtension + static JamesServerExtension testExtension = new JamesServerExtensionBuilder() + .extension(embeddedElasticSearchExtension) + .extension(new CassandraExtension()) + .server(configuration -> GuiceJamesServer.forConfiguration(configuration) + .combineWith(ALL_BUT_JMX_CASSANDRA_MODULE) + .overrideWith(binder -> binder.bind(TextExtractor.class).to(PDFTextExtractor.class)) + .overrideWith(new TestJMAPServerModule(LIMIT_TO_10_MESSAGES)) + .overrideWith(new TestESMetricReporterModule())) + .build(); private static final int DELAY_IN_MS = 100; private static final int PERIOD_IN_MS = 100; - private static final Logger LOGGER = LoggerFactory.getLogger(ESReporterTest.class); - private static final String DOMAIN = "james.org"; private static final String USERNAME = "user1@" + DOMAIN; private static final String PASSWORD = "secret"; - @ClassRule - public static final DockerCassandraRule cassandra = new DockerCassandraRule(); - - private EmbeddedElasticSearchRule embeddedElasticSearchRule = new EmbeddedElasticSearchRule(); - private Timer timer; - - @Rule - public CassandraJmapTestRule cassandraJmap = new CassandraJmapTestRule(embeddedElasticSearchRule); - - private GuiceJamesServer server; private AccessToken accessToken; - @Before - public void setup() throws Exception { - server = cassandraJmap.jmapServer(cassandra.getModule()); - server.start(); + @BeforeEach + void setup(GuiceJamesServer server) throws Exception { server.getProbe(DataProbeImpl.class) .fluent() .addDomain(DOMAIN) @@ -97,16 +102,13 @@ public class ESReporterTest { timer = new Timer(); } - @After - public void tearDown() throws Exception { + @AfterEach + void tearDown() { timer.cancel(); - if (server != null) { - server.stop(); - } } @Test - public void timeMetricsShouldBeReportedWhenImapCommandsReceived() throws Exception { + void timeMetricsShouldBeReportedWhenImapCommandsReceived(GuiceJamesServer server) throws Exception { IMAPClient client = new IMAPClient(); client.connect(InetAddress.getLocalHost(), server.getProbe(ImapGuiceProbe.class).getImapPort()); client.login(USERNAME, PASSWORD); @@ -128,7 +130,7 @@ public class ESReporterTest { } @Test - public void timeMetricsShouldBeReportedWhenJmapRequestsReceived() throws Exception { + void timeMetricsShouldBeReportedWhenJmapRequestsReceived() { TimerTask timerTask = new TimerTask() { @Override public void run() { @@ -150,7 +152,7 @@ public class ESReporterTest { } private boolean checkMetricRecordedInElasticSearch() { - try (Client client = embeddedElasticSearchRule.getNode().client()) { + try (Client client = embeddedElasticSearchExtension.getEmbeddedElasticSearch().getNode().client()) { return !Arrays.stream(client.prepareSearch() .setQuery(QueryBuilders.matchAllQuery()) .get().getHits().getHits()) --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
