ElasticContainer: Create with static method
Move creation of the container and handling of failure into a static
method in ElasticContainer, which is then called from the tests.
Change-Id: I176acdc05bbc6e06ce8c1fd76acbc9b3902c06be
diff --git a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/testing/ElasticContainer.java b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/testing/ElasticContainer.java
index bae6b06..56b83be 100644
--- a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/testing/ElasticContainer.java
+++ b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/testing/ElasticContainer.java
@@ -17,6 +17,7 @@
import com.google.common.collect.ImmutableSet;
import java.util.Set;
import org.apache.http.HttpHost;
+import org.junit.internal.AssumptionViolatedException;
import org.testcontainers.containers.GenericContainer;
/* Helper class for running ES integration tests in docker container */
@@ -25,11 +26,23 @@
private static final String VERSION = "2.4.6-alpine";
private static final int ELASTICSEARCH_DEFAULT_PORT = 9200;
- public ElasticContainer() {
+ public static ElasticContainer<?> createAndStart() {
+ // Assumption violation is not natively supported by Testcontainers.
+ // See https://github.com/testcontainers/testcontainers-java/issues/343
+ try {
+ ElasticContainer<?> container = new ElasticContainer<>();
+ container.start();
+ return container;
+ } catch (Throwable t) {
+ throw new AssumptionViolatedException("Unable to start container[might be docker related]");
+ }
+ }
+
+ private ElasticContainer() {
this(NAME + ":" + VERSION);
}
- public ElasticContainer(String dockerImageName) {
+ private ElasticContainer(String dockerImageName) {
super(dockerImageName);
}
diff --git a/gerrit-elasticsearch/src/test/java/com/google/gerrit/elasticsearch/ElasticQueryAccountsTest.java b/gerrit-elasticsearch/src/test/java/com/google/gerrit/elasticsearch/ElasticQueryAccountsTest.java
index 6e02549..9b0b71d 100644
--- a/gerrit-elasticsearch/src/test/java/com/google/gerrit/elasticsearch/ElasticQueryAccountsTest.java
+++ b/gerrit-elasticsearch/src/test/java/com/google/gerrit/elasticsearch/ElasticQueryAccountsTest.java
@@ -24,7 +24,6 @@
import org.eclipse.jgit.lib.Config;
import org.junit.AfterClass;
import org.junit.BeforeClass;
-import org.junit.internal.AssumptionViolatedException;
public class ElasticQueryAccountsTest extends AbstractQueryAccountsTest {
private static ElasticNodeInfo nodeInfo;
@@ -37,15 +36,7 @@
return;
}
- // Assumption violation is not natively supported by Testcontainers.
- // See https://github.com/testcontainers/testcontainers-java/issues/343
- try {
- container = new ElasticContainer<>();
- container.start();
- } catch (Throwable t) {
- throw new AssumptionViolatedException("Unable to start container[might be docker related]");
- }
-
+ container = ElasticContainer.createAndStart();
nodeInfo = new ElasticNodeInfo(container.getHttpHost().getPort());
}
diff --git a/gerrit-elasticsearch/src/test/java/com/google/gerrit/elasticsearch/ElasticQueryChangesTest.java b/gerrit-elasticsearch/src/test/java/com/google/gerrit/elasticsearch/ElasticQueryChangesTest.java
index d607cf7..bf29cbb 100644
--- a/gerrit-elasticsearch/src/test/java/com/google/gerrit/elasticsearch/ElasticQueryChangesTest.java
+++ b/gerrit-elasticsearch/src/test/java/com/google/gerrit/elasticsearch/ElasticQueryChangesTest.java
@@ -28,7 +28,6 @@
import org.junit.BeforeClass;
import org.junit.Rule;
import org.junit.Test;
-import org.junit.internal.AssumptionViolatedException;
import org.junit.rules.TestName;
public class ElasticQueryChangesTest extends AbstractQueryChangesTest {
@@ -44,13 +43,7 @@
return;
}
- try {
- container = new ElasticContainer<>();
- container.start();
- } catch (Throwable t) {
- throw new AssumptionViolatedException("Unable to start container[might be docker related]");
- }
-
+ container = ElasticContainer.createAndStart();
nodeInfo = new ElasticNodeInfo(container.getHttpHost().getPort());
}
diff --git a/gerrit-elasticsearch/src/test/java/com/google/gerrit/elasticsearch/ElasticQueryGroupsTest.java b/gerrit-elasticsearch/src/test/java/com/google/gerrit/elasticsearch/ElasticQueryGroupsTest.java
index c476a37..4236a5b 100644
--- a/gerrit-elasticsearch/src/test/java/com/google/gerrit/elasticsearch/ElasticQueryGroupsTest.java
+++ b/gerrit-elasticsearch/src/test/java/com/google/gerrit/elasticsearch/ElasticQueryGroupsTest.java
@@ -24,7 +24,6 @@
import org.eclipse.jgit.lib.Config;
import org.junit.AfterClass;
import org.junit.BeforeClass;
-import org.junit.internal.AssumptionViolatedException;
public class ElasticQueryGroupsTest extends AbstractQueryGroupsTest {
private static ElasticNodeInfo nodeInfo;
@@ -37,13 +36,7 @@
return;
}
- try {
- container = new ElasticContainer<>();
- container.start();
- } catch (Throwable t) {
- throw new AssumptionViolatedException("Unable to start container[might be docker related]");
- }
-
+ container = ElasticContainer.createAndStart();
nodeInfo = new ElasticNodeInfo(container.getHttpHost().getPort());
}