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