You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ro...@apache.org on 2019/07/26 07:51:28 UTC

[james-project] 09/32: JAMES-2848 Fix double Cassandra initialization in Nested Test Classes

This is an automated email from the ASF dual-hosted git repository.

rouazana pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 014718e530ad195b267a934a3f74518ed00232cd
Author: Matthieu Baechler <ma...@apache.org>
AuthorDate: Tue Jul 23 16:45:37 2019 +0200

    JAMES-2848 Fix double Cassandra initialization in Nested Test Classes
---
 .../cassandra/CassandraClusterExtension.java       | 14 +++++++----
 ...aMailRepositoryWithFakeImplementationsTest.java | 28 ++++++----------------
 2 files changed, 17 insertions(+), 25 deletions(-)

diff --git a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/CassandraClusterExtension.java b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/CassandraClusterExtension.java
index c5b144f..f224ba3 100644
--- a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/CassandraClusterExtension.java
+++ b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/CassandraClusterExtension.java
@@ -40,8 +40,11 @@ public class CassandraClusterExtension implements BeforeAllCallback, AfterAllCal
 
     @Override
     public void beforeAll(ExtensionContext extensionContext) {
-        cassandraExtension.beforeAll(extensionContext);
-        cassandraCluster = CassandraCluster.create(cassandraModule, cassandraExtension.getDockerCassandra().getHost());
+        Class<?> testClass = extensionContext.getRequiredTestClass();
+        if (testClass.getEnclosingClass() == null) {
+            cassandraExtension.beforeAll(extensionContext);
+            cassandraCluster = CassandraCluster.create(cassandraModule, cassandraExtension.getDockerCassandra().getHost());
+        }
     }
 
     @Override
@@ -51,8 +54,11 @@ public class CassandraClusterExtension implements BeforeAllCallback, AfterAllCal
 
     @Override
     public void afterAll(ExtensionContext extensionContext) {
-        cassandraCluster.close();
-        cassandraExtension.afterAll(extensionContext);
+        Class<?> testClass = extensionContext.getRequiredTestClass();
+        if (testClass.getEnclosingClass() == null) {
+            cassandraCluster.close();
+            cassandraExtension.afterAll(extensionContext);
+        }
     }
 
     @Override
diff --git a/server/mailrepository/mailrepository-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryWithFakeImplementationsTest.java b/server/mailrepository/mailrepository-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryWithFakeImplementationsTest.java
index 4f0a73c..0266d81 100644
--- a/server/mailrepository/mailrepository-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryWithFakeImplementationsTest.java
+++ b/server/mailrepository/mailrepository-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryWithFakeImplementationsTest.java
@@ -48,7 +48,6 @@ import org.apache.mailet.Mail;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.TestInstance;
 import org.junit.jupiter.api.extension.RegisterExtension;
 
 import com.datastax.driver.core.ResultSet;
@@ -57,23 +56,18 @@ import reactor.core.publisher.Mono;
 
 
 class CassandraMailRepositoryWithFakeImplementationsTest {
+    @RegisterExtension
+    static CassandraClusterExtension extension = new CassandraClusterExtension(
+        CassandraModule.aggregateModules(
+            CassandraMailRepositoryModule.MODULE,
+            CassandraBlobModule.MODULE,
+            CassandraSchemaVersionModule.MODULE));
+
     private static final MailRepositoryUrl URL = MailRepositoryUrl.from("proto://url");
     private static final HashBlobId.Factory BLOB_ID_FACTORY = new HashBlobId.Factory();
 
-    static CassandraClusterExtension extension() {
-        return new CassandraClusterExtension(
-            CassandraModule.aggregateModules(
-                CassandraMailRepositoryModule.MODULE,
-                CassandraBlobModule.MODULE,
-                CassandraSchemaVersionModule.MODULE));
-    }
-
     @Nested
-    @TestInstance(TestInstance.Lifecycle.PER_CLASS)
     class FailingStoreTest {
-        @RegisterExtension
-        CassandraClusterExtension extension = extension();
-
         CassandraMailRepository cassandraMailRepository;
         CassandraMailRepositoryKeysDAO keysDAO;
 
@@ -123,11 +117,7 @@ class CassandraMailRepositoryWithFakeImplementationsTest {
     }
 
     @Nested
-    @TestInstance(TestInstance.Lifecycle.PER_CLASS)
     class FailingMailDaoTest {
-        @RegisterExtension
-        CassandraClusterExtension extension = extension();
-
         CassandraMailRepository cassandraMailRepository;
         CassandraMailRepositoryKeysDAO keysDAO;
 
@@ -212,11 +202,7 @@ class CassandraMailRepositoryWithFakeImplementationsTest {
     }
 
     @Nested
-    @TestInstance(TestInstance.Lifecycle.PER_CLASS)
     class FailingKeysDaoTest {
-        @RegisterExtension
-        CassandraClusterExtension extension = extension();
-
         CassandraMailRepository cassandraMailRepository;
         CassandraMailRepositoryCountDAO countDAO;
 


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org