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]

Reply via email to