This is an automated email from the ASF dual-hosted git repository.
tallison pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tika.git
The following commit(s) were added to refs/heads/main by this push:
new e2db6ce12 TIKA-3870 -- migrate to junit 5 in testcontainers tests
e2db6ce12 is described below
commit e2db6ce12c692302fa9fb24ac49624758ce2bdc2
Author: tallison <[email protected]>
AuthorDate: Tue Oct 4 09:49:36 2022 -0400
TIKA-3870 -- migrate to junit 5 in testcontainers tests
---
.../tika-pipes-kafka-integration-tests/pom.xml | 6 +-
.../tika/pipes/kafka/tests/TikaPipesKafkaTest.java | 27 ++++----
.../pom.xml | 6 +-
.../tika/pipes/es/tests/TikaPipesES7Test.java | 16 +++--
.../tests/TikaPipesOpenSearch1xTest.java | 13 ++--
.../opensearch/tests/TikaPipesOpenSearchTest.java | 13 ++--
.../pipes/xsearch/tests/TikaPipesXSearchBase.java | 74 +++++++++++-----------
.../tika/pipes/s3/tests/PipeIntegrationTests.java | 6 +-
.../tika-pipes-solr-integration-tests/pom.xml | 6 ++
.../tika/pipes/solr/tests/TikaPipesSolr6Test.java | 3 +
.../pipes/solr/tests/TikaPipesSolr6ZkTest.java | 6 +-
.../tika/pipes/solr/tests/TikaPipesSolr7Test.java | 3 +
.../pipes/solr/tests/TikaPipesSolr7ZkTest.java | 6 +-
.../tika/pipes/solr/tests/TikaPipesSolr8Test.java | 5 +-
.../pipes/solr/tests/TikaPipesSolr8ZkTest.java | 6 +-
.../tika/pipes/solr/tests/TikaPipesSolr9Test.java | 3 +
.../pipes/solr/tests/TikaPipesSolr9ZkTest.java | 9 +--
.../pipes/solr/tests/TikaPipesSolrTestBase.java | 44 +++++++++----
tika-parent/pom.xml | 27 +++++++-
19 files changed, 181 insertions(+), 98 deletions(-)
diff --git a/tika-integration-tests/tika-pipes-kafka-integration-tests/pom.xml
b/tika-integration-tests/tika-pipes-kafka-integration-tests/pom.xml
index 5a703b221..63ec978fc 100644
--- a/tika-integration-tests/tika-pipes-kafka-integration-tests/pom.xml
+++ b/tika-integration-tests/tika-pipes-kafka-integration-tests/pom.xml
@@ -32,7 +32,6 @@
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>testcontainers</artifactId>
- <version>${test.containers.version}</version>
<scope>test</scope>
</dependency>
<dependency>
@@ -41,6 +40,11 @@
<version>${test.containers.version}</version>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.testcontainers</groupId>
+ <artifactId>junit-jupiter</artifactId>
+ <scope>test</scope>
+ </dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>tika-core</artifactId>
diff --git
a/tika-integration-tests/tika-pipes-kafka-integration-tests/src/test/java/org/apache/tika/pipes/kafka/tests/TikaPipesKafkaTest.java
b/tika-integration-tests/tika-pipes-kafka-integration-tests/src/test/java/org/apache/tika/pipes/kafka/tests/TikaPipesKafkaTest.java
index 18a3cbf45..6be1eb24f 100644
---
a/tika-integration-tests/tika-pipes-kafka-integration-tests/src/test/java/org/apache/tika/pipes/kafka/tests/TikaPipesKafkaTest.java
+++
b/tika-integration-tests/tika-pipes-kafka-integration-tests/src/test/java/org/apache/tika/pipes/kafka/tests/TikaPipesKafkaTest.java
@@ -16,6 +16,9 @@
*/
package org.apache.tika.pipes.kafka.tests;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
import java.io.File;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
@@ -48,13 +51,13 @@ import
org.apache.kafka.common.serialization.StringSerializer;
import org.apache.tika.cli.TikaCLI;
import org.apache.tika.pipes.HandlerConfig;
import org.jetbrains.annotations.NotNull;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testcontainers.containers.KafkaContainer;
+import org.testcontainers.junit.jupiter.Testcontainers;
import org.testcontainers.shaded.org.apache.commons.io.FileUtils;
import org.testcontainers.utility.DockerImageName;
@@ -64,6 +67,7 @@ import org.testcontainers.utility.DockerImageName;
* the kafka emitter will send the now-parsed output to the "emitter_topic".
* Will then wait for the messages to come from the emitter and assert they
are correct.
*/
+@Testcontainers(disabledWithoutDocker = true)
public class TikaPipesKafkaTest {
private static final Logger LOG =
LoggerFactory.getLogger(TikaPipesKafkaTest.class);
@@ -96,12 +100,12 @@ public class TikaPipesKafkaTest {
KafkaContainer kafka = new
KafkaContainer(DockerImageName.parse("confluentinc/cp-kafka:6.2.1"));
- @Before
+ @BeforeEach
public void before() {
kafka.start();
}
- @After
+ @AfterEach
public void after() {
kafka.close();
}
@@ -180,17 +184,18 @@ public class TikaPipesKafkaTest {
Stopwatch stopwatch = Stopwatch.createStarted();
while (!waitingFor.isEmpty()) {
- Assert.assertFalse("Timed out after " +
WAIT_FOR_EMITTED_DOCS_TIMEOUT_MINUTES + " minutes waiting for the emitted docs",
- stopwatch.elapsed(TimeUnit.MINUTES) >
WAIT_FOR_EMITTED_DOCS_TIMEOUT_MINUTES);
+ assertFalse(
+ stopwatch.elapsed(TimeUnit.MINUTES) >
WAIT_FOR_EMITTED_DOCS_TIMEOUT_MINUTES,
+ "Timed out after " + WAIT_FOR_EMITTED_DOCS_TIMEOUT_MINUTES
+ " minutes waiting for the emitted docs");
try {
ConsumerRecords<String, String> records =
consumer.poll(Duration.ofSeconds(1));
for (ConsumerRecord<String, String> record : records) {
String val = record.value();
Map<String, Object> valMap = objectMapper.readValue(val,
new TypeReference<Map<String, Object>>() {});
waitingFor.remove(FilenameUtils.getName(record.key()));
- Assert.assertNotNull(valMap.get("content_s"));
- Assert.assertNotNull(valMap.get("mime_s"));
- Assert.assertNotNull(valMap.get("length_i"));
+ assertNotNull(valMap.get("content_s"));
+ assertNotNull(valMap.get("mime_s"));
+ assertNotNull(valMap.get("length_i"));
LOG.info("Received message key={}, offset={}",
record.key(), record.offset());
}
} catch (Exception e) {
diff --git
a/tika-integration-tests/tika-pipes-opensearch-integration-tests/pom.xml
b/tika-integration-tests/tika-pipes-opensearch-integration-tests/pom.xml
index a47b02f8c..3f904521a 100644
--- a/tika-integration-tests/tika-pipes-opensearch-integration-tests/pom.xml
+++ b/tika-integration-tests/tika-pipes-opensearch-integration-tests/pom.xml
@@ -32,7 +32,6 @@
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>testcontainers</artifactId>
- <version>${test.containers.version}</version>
<scope>test</scope>
</dependency>
<dependency>
@@ -66,6 +65,11 @@
<type>test-jar</type>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.testcontainers</groupId>
+ <artifactId>junit-jupiter</artifactId>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<build>
diff --git
a/tika-integration-tests/tika-pipes-opensearch-integration-tests/src/test/java/org/apache/tika/pipes/es/tests/TikaPipesES7Test.java
b/tika-integration-tests/tika-pipes-opensearch-integration-tests/src/test/java/org/apache/tika/pipes/es/tests/TikaPipesES7Test.java
index 0ebb03922..6b8b9de0b 100644
---
a/tika-integration-tests/tika-pipes-opensearch-integration-tests/src/test/java/org/apache/tika/pipes/es/tests/TikaPipesES7Test.java
+++
b/tika-integration-tests/tika-pipes-opensearch-integration-tests/src/test/java/org/apache/tika/pipes/es/tests/TikaPipesES7Test.java
@@ -19,10 +19,11 @@ package org.apache.tika.pipes.es.tests;
import java.time.Duration;
import java.time.temporal.ChronoUnit;
-import org.junit.BeforeClass;
-import org.junit.ClassRule;
-import org.junit.Ignore;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Disabled;
import org.testcontainers.containers.GenericContainer;
+import org.testcontainers.junit.jupiter.Container;
+import org.testcontainers.junit.jupiter.Testcontainers;
import org.testcontainers.utility.DockerImageName;
import org.apache.tika.pipes.xsearch.tests.TikaPipesXSearchBase;
@@ -32,7 +33,8 @@ import
org.apache.tika.pipes.xsearch.tests.TikaPipesXSearchBase;
* emitter no longer works with elasticsearch. We should not use
* > 7.10.x in our unit tests because those versions are not ASL 2.0
*/
-@Ignore
+@Disabled
+@Testcontainers(disabledWithoutDocker = true)
public class TikaPipesES7Test extends TikaPipesXSearchBase {
// versions > 7.10.x are no longer ASL 2.0. We should not
@@ -40,15 +42,15 @@ public class TikaPipesES7Test extends TikaPipesXSearchBase {
private static final String DOCKER_IMAGE_NAME = "docker.elastic" +
".co/elasticsearch/elasticsearch:7.10.2";
- @ClassRule
+ @Container
public static GenericContainer<?> ELASTIC_SEARCH_CONTAINER =
new GenericContainer<>(DockerImageName.parse(DOCKER_IMAGE_NAME))
.withExposedPorts(9200)
.withStartupTimeout(Duration.of(180, ChronoUnit.SECONDS))
.withEnv("discovery.type", "single-node");
- @BeforeClass
- public static void setupTest() throws Exception {
+ @BeforeEach
+ public void setupTest() throws Exception {
setupXSearch(ELASTIC_SEARCH_CONTAINER, "http://");
}
}
diff --git
a/tika-integration-tests/tika-pipes-opensearch-integration-tests/src/test/java/org/apache/tika/pipes/opensearch/tests/TikaPipesOpenSearch1xTest.java
b/tika-integration-tests/tika-pipes-opensearch-integration-tests/src/test/java/org/apache/tika/pipes/opensearch/tests/TikaPipesOpenSearch1xTest.java
index e99c83083..fdc389246 100644
---
a/tika-integration-tests/tika-pipes-opensearch-integration-tests/src/test/java/org/apache/tika/pipes/opensearch/tests/TikaPipesOpenSearch1xTest.java
+++
b/tika-integration-tests/tika-pipes-opensearch-integration-tests/src/test/java/org/apache/tika/pipes/opensearch/tests/TikaPipesOpenSearch1xTest.java
@@ -19,18 +19,19 @@ package org.apache.tika.pipes.opensearch.tests;
import java.time.Duration;
import java.time.temporal.ChronoUnit;
-import org.junit.BeforeClass;
-import org.junit.ClassRule;
+import org.junit.jupiter.api.BeforeEach;
import org.testcontainers.containers.GenericContainer;
+import org.testcontainers.junit.jupiter.Container;
+import org.testcontainers.junit.jupiter.Testcontainers;
import org.testcontainers.utility.DockerImageName;
import org.apache.tika.pipes.xsearch.tests.TikaPipesXSearchBase;
-
+@Testcontainers(disabledWithoutDocker = true)
public class TikaPipesOpenSearch1xTest extends TikaPipesXSearchBase {
private static final String DOCKER_IMAGE_NAME =
"opensearchproject/opensearch:1.3.2";
- @ClassRule
+ @Container
public static GenericContainer<?> OPEN_SEARCH_CONTAINER =
new GenericContainer<>(DockerImageName.parse(DOCKER_IMAGE_NAME))
.withExposedPorts(9200)
@@ -38,8 +39,8 @@ public class TikaPipesOpenSearch1xTest extends
TikaPipesXSearchBase {
.withEnv("discovery.type", "single-node");
- @BeforeClass
- public static void setupTest() throws Exception {
+ @BeforeEach
+ public void setupTest() throws Exception {
setupXSearch(OPEN_SEARCH_CONTAINER, "https://");
}
}
diff --git
a/tika-integration-tests/tika-pipes-opensearch-integration-tests/src/test/java/org/apache/tika/pipes/opensearch/tests/TikaPipesOpenSearchTest.java
b/tika-integration-tests/tika-pipes-opensearch-integration-tests/src/test/java/org/apache/tika/pipes/opensearch/tests/TikaPipesOpenSearchTest.java
index cb2646ba8..6c36c11c7 100644
---
a/tika-integration-tests/tika-pipes-opensearch-integration-tests/src/test/java/org/apache/tika/pipes/opensearch/tests/TikaPipesOpenSearchTest.java
+++
b/tika-integration-tests/tika-pipes-opensearch-integration-tests/src/test/java/org/apache/tika/pipes/opensearch/tests/TikaPipesOpenSearchTest.java
@@ -20,18 +20,21 @@ package org.apache.tika.pipes.opensearch.tests;
import java.time.Duration;
import java.time.temporal.ChronoUnit;
-import org.junit.BeforeClass;
-import org.junit.ClassRule;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
import org.testcontainers.containers.GenericContainer;
+import org.testcontainers.junit.jupiter.Container;
+import org.testcontainers.junit.jupiter.Testcontainers;
import org.testcontainers.utility.DockerImageName;
import org.apache.tika.pipes.xsearch.tests.TikaPipesXSearchBase;
+@Testcontainers(disabledWithoutDocker = true)
public class TikaPipesOpenSearchTest extends TikaPipesXSearchBase {
private static final String DOCKER_IMAGE_NAME =
"opensearchproject/opensearch:2.3.0";
- @ClassRule
+ @Container
public static GenericContainer<?> OPEN_SEARCH_CONTAINER =
new GenericContainer<>(DockerImageName.parse(DOCKER_IMAGE_NAME))
.withExposedPorts(9200)
@@ -39,8 +42,8 @@ public class TikaPipesOpenSearchTest extends
TikaPipesXSearchBase {
.withEnv("discovery.type", "single-node");
- @BeforeClass
- public static void setupTest() throws Exception {
+ @BeforeEach
+ public void setupTest() throws Exception {
setupXSearch(OPEN_SEARCH_CONTAINER, "https://");
}
}
diff --git
a/tika-integration-tests/tika-pipes-opensearch-integration-tests/src/test/java/org/apache/tika/pipes/xsearch/tests/TikaPipesXSearchBase.java
b/tika-integration-tests/tika-pipes-opensearch-integration-tests/src/test/java/org/apache/tika/pipes/xsearch/tests/TikaPipesXSearchBase.java
index 7f8321431..7e5873b14 100644
---
a/tika-integration-tests/tika-pipes-opensearch-integration-tests/src/test/java/org/apache/tika/pipes/xsearch/tests/TikaPipesXSearchBase.java
+++
b/tika-integration-tests/tika-pipes-opensearch-integration-tests/src/test/java/org/apache/tika/pipes/xsearch/tests/TikaPipesXSearchBase.java
@@ -16,9 +16,9 @@
*/
package org.apache.tika.pipes.xsearch.tests;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import java.io.File;
import java.io.IOException;
@@ -36,10 +36,10 @@ import java.util.regex.Pattern;
import com.fasterxml.jackson.databind.JsonNode;
import org.apache.commons.io.IOUtils;
import org.jetbrains.annotations.NotNull;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import org.testcontainers.containers.GenericContainer;
import org.testcontainers.shaded.org.apache.commons.io.FileUtils;
@@ -65,20 +65,20 @@ public abstract class TikaPipesXSearchBase {
private static int OPEN_SEARCH_PORT;
//this includes only the base, not the collection, e.g.
https://localhost:49213
protected static String OPEN_SEARCH_ENDPOINT_BASE;
- private static XSearchTestClient client;
+ private static XSearchTestClient CLIENT;
- @Before
+ @BeforeEach
public void setUp() throws IOException {
pipesDirectory =
Files.createTempDirectory("tika-opensearch-integration-");
testDocDirectory = pipesDirectory.resolve("docs");
}
- @After
+ @AfterEach
public void tearDown() throws Exception {
//we shouldn't have to do this because of @TempDir
//there are some timing/order issues because of the joint junit 4 and 5
FileUtils.deleteDirectory(pipesDirectory.toFile());
- JsonResponse response = client.deleteIndex(OPEN_SEARCH_ENDPOINT_BASE +
TEST_INDEX);
+ JsonResponse response = CLIENT.deleteIndex(OPEN_SEARCH_ENDPOINT_BASE +
TEST_INDEX);
assertEquals(200, response.getStatus());
assertTrue(response.getJson().get("acknowledged").asBoolean());
}
@@ -98,7 +98,7 @@ public abstract class TikaPipesXSearchBase {
String query = "{ \"track_total_hits\": true, \"query\": { \"match\":
{ \"content\": { " +
"\"query\": \"happiness\" } } } }";
- JsonResponse results = client.postJson(endpoint + "/_search", query);
+ JsonResponse results = CLIENT.postJson(endpoint + "/_search", query);
assertEquals(200, results.getStatus());
assertEquals(numHtmlDocs + 1,
results.getJson().get("hits").get("total").get("value").asInt());
@@ -106,7 +106,7 @@ public abstract class TikaPipesXSearchBase {
//now try match all
query = "{ \"track_total_hits\": true, \"query\": { \"match_all\": {}
}, " +
"\"from\": 0, \"size\": 1000 }";
- results = client.postJson(endpoint + "/_search", query);
+ results = CLIENT.postJson(endpoint + "/_search", query);
assertEquals(200, results.getStatus());
assertEquals(numHtmlDocs + numTestDocs,
results.getJson().get("hits").get("total").get("value").asInt());
@@ -147,7 +147,7 @@ public abstract class TikaPipesXSearchBase {
String query = "{ \"track_total_hits\": true, \"query\": { \"match\":
{ \"content\": { " +
"\"query\": \"happiness\" } } } }";
- JsonResponse results = client.postJson(endpoint + "/_search", query);
+ JsonResponse results = CLIENT.postJson(endpoint + "/_search", query);
assertEquals(200, results.getStatus());
assertEquals(numHtmlDocs + 1,
results.getJson().get("hits").get("total").get("value").asInt());
@@ -157,7 +157,7 @@ public abstract class TikaPipesXSearchBase {
//"\"from\":0, \"size\":1000," +
"\"track_total_hits\": true, \"query\": { " +
"\"match_all\": {} } }";
- results = client.postJson(endpoint + "/_search", query);
+ results = CLIENT.postJson(endpoint + "/_search", query);
assertEquals(200, results.getStatus());
assertEquals(numHtmlDocs + 3 + 12, // 3 mock files and...
// the .docx file has 11 embedded files, plus itself
@@ -167,7 +167,7 @@ public abstract class TikaPipesXSearchBase {
query = "{ \"track_total_hits\": true, \"query\": { \"query_string\":
{ " +
"\"default_field\": \"content\", " +
"\"query\": \"embed4 zip\" , \"minimum_should_match\":2 } } }
";
- results = client.postJson(endpoint + "/_search", query);
+ results = CLIENT.postJson(endpoint + "/_search", query);
assertEquals(200, results.getStatus());
assertEquals(1,
results.getJson().get("hits").get("total").get("value").asInt());
@@ -178,7 +178,7 @@ public abstract class TikaPipesXSearchBase {
"[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\\Z").matcher(
results.getJson().get("hits").get("hits").get(0).get("_id").asText()
);
- assertTrue("test_recursive_embedded.docx_$guid", m.find());
+ assertTrue(m.find(), "test_recursive_embedded.docx_$guid");
assertEquals("test_recursive_embedded.docx",
results.getJson().get("hits").get("hits").get(0).get("_routing").asText());
assertEquals("test_recursive_embedded.docx",
@@ -192,7 +192,7 @@ public abstract class TikaPipesXSearchBase {
query = "{ \"track_total_hits\": true, \"query\": { \"parent_id\": { "
+
"\"type\": \"embedded\", " +
"\"id\": \"test_recursive_embedded.docx\" } } } ";
- results = client.postJson(endpoint + "/_search", query);
+ results = CLIENT.postJson(endpoint + "/_search", query);
assertEquals(11,
results.getJson().get("hits").get("total").get("value").asInt());
}
@@ -212,7 +212,7 @@ public abstract class TikaPipesXSearchBase {
String query = "{ \"track_total_hits\": true, \"query\": { \"match\":
{ \"content\": { " +
"\"query\": \"happiness\" } } } }";
- JsonResponse results = client.postJson(endpoint + "/_search", query);
+ JsonResponse results = CLIENT.postJson(endpoint + "/_search", query);
assertEquals(200, results.getStatus());
assertEquals(numHtmlDocs + 1,
results.getJson().get("hits").get("total").get("value").asInt());
@@ -222,7 +222,7 @@ public abstract class TikaPipesXSearchBase {
//"\"from\":0, \"size\":1000," +
"\"track_total_hits\": true, \"query\": { " +
"\"match_all\": {} } }";
- results = client.postJson(endpoint + "/_search", query);
+ results = CLIENT.postJson(endpoint + "/_search", query);
assertEquals(200, results.getStatus());
assertEquals(numHtmlDocs + 3 + 12, //3 for the mock docs,
// and the .docx file has 11 embedded files, plus itself
@@ -232,7 +232,7 @@ public abstract class TikaPipesXSearchBase {
query = "{ \"track_total_hits\": true, \"query\": { \"query_string\":
{ " +
"\"default_field\": \"content\", " +
"\"query\": \"embed4 zip\" , \"minimum_should_match\":2 } } }
";
- results = client.postJson(endpoint + "/_search", query);
+ results = CLIENT.postJson(endpoint + "/_search", query);
assertEquals(200, results.getStatus());
assertEquals(1,
results.getJson().get("hits").get("total").get("value").asInt());
@@ -243,12 +243,11 @@ public abstract class TikaPipesXSearchBase {
"[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\\Z").matcher(
results.getJson().get("hits").get("hits").get(0).get("_id").asText()
);
- assertTrue("test_recursive_embedded.docx-$guid", m.find());
+ assertTrue(m.find(), "test_recursive_embedded.docx-$guid");
- assertNull("test_recursive_embedded.docx",
-
results.getJson().get("hits").get("hits").get(0).get("_routing"));
- assertNull("test_recursive_embedded.docx",
- source.get("relation_type"));
+
assertNull(results.getJson().get("hits").get("hits").get(0).get("_routing"),
+ "test_recursive_embedded.docx");
+ assertNull(source.get("relation_type"),
"test_recursive_embedded.docx");
assertEquals("application/zip", source.get("mime").asText());
@@ -257,7 +256,7 @@ public abstract class TikaPipesXSearchBase {
query = "{ \"track_total_hits\": true, \"query\": { \"parent_id\": { "
+
"\"type\": \"embedded\", " +
"\"id\": \"test_recursive_embedded.docx\" } } } ";
- results = client.postJson(endpoint + "/_search", query);
+ results = CLIENT.postJson(endpoint + "/_search", query);
assertEquals(400, results.getStatus());
}
@@ -274,26 +273,26 @@ public abstract class TikaPipesXSearchBase {
metadata.set("mime", "mimeA");
metadata.set("title", "titleA");
emitter.emit("1", Collections.singletonList(metadata));
- JsonResponse refresh = client.getJson(endpoint + "/_refresh");
+ JsonResponse refresh = CLIENT.getJson(endpoint + "/_refresh");
metadata.set("title", "titleB");
emitter.emit("1", Collections.singletonList(metadata));
- refresh = client.getJson(endpoint + "/_refresh");
+ refresh = CLIENT.getJson(endpoint + "/_refresh");
Metadata metadata2 = new Metadata();
metadata2.set("content", "the quick brown fox");
emitter.emit("1", Collections.singletonList(metadata2));
- refresh = client.getJson(endpoint + "/_refresh");
+ refresh = CLIENT.getJson(endpoint + "/_refresh");
String query = "{ " +
//"\"from\":0, \"size\":1000," +
"\"track_total_hits\": true, \"query\": { " +
"\"match_all\": {} } }";
- JsonResponse response = client.postJson(endpoint + "/_search", query);
+ JsonResponse response = CLIENT.postJson(endpoint + "/_search", query);
JsonNode doc1 = response.getJson().get("hits").get("hits").get(0).get(
"_source");
- Assertions.assertEquals("mimeA", doc1.get("mime").asText());
- Assertions.assertEquals("titleB", doc1.get("title").asText());
- Assertions.assertEquals("the quick brown fox",
doc1.get("content").asText());
+ assertEquals("mimeA", doc1.get("mime").asText());
+ assertEquals("titleB", doc1.get("title").asText());
+ assertEquals("the quick brown fox", doc1.get("content").asText());
}
protected void sendMappings(String endpoint, String index, String
mappingsFile) throws Exception {
@@ -305,7 +304,7 @@ public abstract class TikaPipesXSearchBase {
JsonResponse response = null;
//need to wait a bit sometimes before OpenSearch is up
while (status != 200 && tries++ < 20) {
- response = client.putJson(endpoint, mappings);
+ response = CLIENT.putJson(endpoint, mappings);
if (status != 200) {
Thread.sleep(1000);
}
@@ -330,7 +329,7 @@ public abstract class TikaPipesXSearchBase {
TikaCLI.main(new String[]{"-a", "--config=" +
tikaConfigFile.toAbsolutePath().toString()});
//refresh to make sure the content is searchable
- JsonResponse refresh = client.getJson(endpoint + "/_refresh");
+ JsonResponse refresh = CLIENT.getJson(endpoint + "/_refresh");
}
@@ -385,15 +384,16 @@ public abstract class TikaPipesXSearchBase {
}
- public static void setupXSearch(GenericContainer<?> openSearchContainer,
String protocol) throws Exception {
+ public void setupXSearch(GenericContainer<?> openSearchContainer, String
protocol) throws Exception {
OPEN_SEARCH_HOST = openSearchContainer.getHost();
OPEN_SEARCH_PORT = openSearchContainer.getMappedPort(9200);
OPEN_SEARCH_ENDPOINT_BASE = protocol + OPEN_SEARCH_HOST + ":" +
OPEN_SEARCH_PORT + "/";
HttpClientFactory httpClientFactory = new HttpClientFactory();
httpClientFactory.setUserName("admin");
httpClientFactory.setPassword("admin");
+
//attachment strategy is not used here...TODO clean this up
- client = new XSearchTestClient(OPEN_SEARCH_ENDPOINT_BASE,
+ CLIENT = new XSearchTestClient(OPEN_SEARCH_ENDPOINT_BASE,
httpClientFactory.build(),
OpenSearchEmitter.AttachmentStrategy.SEPARATE_DOCUMENTS,
OpenSearchEmitter.UpdateStrategy.OVERWRITE,
diff --git
a/tika-integration-tests/tika-pipes-s3-integration-tests/src/test/java/org/apache/tika/pipes/s3/tests/PipeIntegrationTests.java
b/tika-integration-tests/tika-pipes-s3-integration-tests/src/test/java/org/apache/tika/pipes/s3/tests/PipeIntegrationTests.java
index 6ac8ddf5e..495bcec17 100644
---
a/tika-integration-tests/tika-pipes-s3-integration-tests/src/test/java/org/apache/tika/pipes/s3/tests/PipeIntegrationTests.java
+++
b/tika-integration-tests/tika-pipes-s3-integration-tests/src/test/java/org/apache/tika/pipes/s3/tests/PipeIntegrationTests.java
@@ -38,8 +38,8 @@ import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.iterable.S3Objects;
import com.amazonaws.services.s3.model.S3Object;
import com.amazonaws.services.s3.model.S3ObjectSummary;
-import org.junit.Ignore;
-import org.junit.Test;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
import org.apache.tika.exception.TikaException;
import org.apache.tika.metadata.Metadata;
@@ -52,7 +52,7 @@ import org.apache.tika.pipes.fetcher.FetcherManager;
import org.apache.tika.pipes.pipesiterator.CallablePipesIterator;
import org.apache.tika.pipes.pipesiterator.PipesIterator;
-@Ignore("turn these into actual tests with mock s3")
+@Disabled("turn these into actual tests with mock s3")
public class PipeIntegrationTests {
private static final Path OUTDIR = Paths.get("");
diff --git a/tika-integration-tests/tika-pipes-solr-integration-tests/pom.xml
b/tika-integration-tests/tika-pipes-solr-integration-tests/pom.xml
index 019e99ddd..fb15b8a61 100644
--- a/tika-integration-tests/tika-pipes-solr-integration-tests/pom.xml
+++ b/tika-integration-tests/tika-pipes-solr-integration-tests/pom.xml
@@ -35,6 +35,11 @@
<version>${test.containers.version}</version>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.testcontainers</groupId>
+ <artifactId>junit-jupiter</artifactId>
+ <scope>test</scope>
+ </dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>tika-pipes-iterator-solr</artifactId>
@@ -60,6 +65,7 @@
<scope>test</scope>
</dependency>
+
</dependencies>
<scm>
diff --git
a/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/java/org/apache/tika/pipes/solr/tests/TikaPipesSolr6Test.java
b/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/java/org/apache/tika/pipes/solr/tests/TikaPipesSolr6Test.java
index b14618841..3e3d392aa 100644
---
a/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/java/org/apache/tika/pipes/solr/tests/TikaPipesSolr6Test.java
+++
b/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/java/org/apache/tika/pipes/solr/tests/TikaPipesSolr6Test.java
@@ -16,6 +16,9 @@
*/
package org.apache.tika.pipes.solr.tests;
+import org.testcontainers.junit.jupiter.Testcontainers;
+
+@Testcontainers(disabledWithoutDocker = true)
public class TikaPipesSolr6Test extends TikaPipesSolrTestBase {
@Override
diff --git
a/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/java/org/apache/tika/pipes/solr/tests/TikaPipesSolr6ZkTest.java
b/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/java/org/apache/tika/pipes/solr/tests/TikaPipesSolr6ZkTest.java
index 682d3df7b..91cb6cd2d 100644
---
a/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/java/org/apache/tika/pipes/solr/tests/TikaPipesSolr6ZkTest.java
+++
b/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/java/org/apache/tika/pipes/solr/tests/TikaPipesSolr6ZkTest.java
@@ -18,13 +18,15 @@ package org.apache.tika.pipes.solr.tests;
import static org.junit.Assume.assumeTrue;
-import org.junit.BeforeClass;
+import org.junit.jupiter.api.BeforeAll;
+import org.testcontainers.junit.jupiter.Testcontainers;
import org.apache.tika.utils.SystemUtils;
+@Testcontainers(disabledWithoutDocker = true)
public class TikaPipesSolr6ZkTest extends TikaPipesSolr6Test {
- @BeforeClass
+ @BeforeAll
public static void setUp() {
assumeTrue("zk test only works on linux (and not mac os x)",
SystemUtils.IS_OS_UNIX && ! SystemUtils.IS_OS_MAC_OSX);
diff --git
a/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/java/org/apache/tika/pipes/solr/tests/TikaPipesSolr7Test.java
b/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/java/org/apache/tika/pipes/solr/tests/TikaPipesSolr7Test.java
index ae1064c33..efefedf44 100644
---
a/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/java/org/apache/tika/pipes/solr/tests/TikaPipesSolr7Test.java
+++
b/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/java/org/apache/tika/pipes/solr/tests/TikaPipesSolr7Test.java
@@ -16,6 +16,9 @@
*/
package org.apache.tika.pipes.solr.tests;
+import org.testcontainers.junit.jupiter.Testcontainers;
+
+@Testcontainers(disabledWithoutDocker = true)
public class TikaPipesSolr7Test extends TikaPipesSolrTestBase {
@Override
diff --git
a/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/java/org/apache/tika/pipes/solr/tests/TikaPipesSolr7ZkTest.java
b/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/java/org/apache/tika/pipes/solr/tests/TikaPipesSolr7ZkTest.java
index c641d53b0..2ffea2221 100644
---
a/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/java/org/apache/tika/pipes/solr/tests/TikaPipesSolr7ZkTest.java
+++
b/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/java/org/apache/tika/pipes/solr/tests/TikaPipesSolr7ZkTest.java
@@ -18,13 +18,15 @@ package org.apache.tika.pipes.solr.tests;
import static org.junit.Assume.assumeTrue;
-import org.junit.BeforeClass;
+import org.junit.jupiter.api.BeforeAll;
+import org.testcontainers.junit.jupiter.Testcontainers;
import org.apache.tika.utils.SystemUtils;
+@Testcontainers(disabledWithoutDocker = true)
public class TikaPipesSolr7ZkTest extends TikaPipesSolr7Test {
- @BeforeClass
+ @BeforeAll
public static void setUp() {
assumeTrue("zk test only works on linux (and not mac os x)",
SystemUtils.IS_OS_UNIX && ! SystemUtils.IS_OS_MAC_OSX);
diff --git
a/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/java/org/apache/tika/pipes/solr/tests/TikaPipesSolr8Test.java
b/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/java/org/apache/tika/pipes/solr/tests/TikaPipesSolr8Test.java
index 3097f757b..e04dc59fb 100644
---
a/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/java/org/apache/tika/pipes/solr/tests/TikaPipesSolr8Test.java
+++
b/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/java/org/apache/tika/pipes/solr/tests/TikaPipesSolr8Test.java
@@ -16,11 +16,14 @@
*/
package org.apache.tika.pipes.solr.tests;
+import org.testcontainers.junit.jupiter.Testcontainers;
+
+@Testcontainers(disabledWithoutDocker = true)
public class TikaPipesSolr8Test extends TikaPipesSolrTestBase {
@Override
public String getSolrImageName() {
- return "solr:8.11.1";
+ return "solr:8.11.2";
}
@Override
diff --git
a/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/java/org/apache/tika/pipes/solr/tests/TikaPipesSolr8ZkTest.java
b/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/java/org/apache/tika/pipes/solr/tests/TikaPipesSolr8ZkTest.java
index 7f160e4b0..f689fbb2e 100644
---
a/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/java/org/apache/tika/pipes/solr/tests/TikaPipesSolr8ZkTest.java
+++
b/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/java/org/apache/tika/pipes/solr/tests/TikaPipesSolr8ZkTest.java
@@ -18,13 +18,15 @@ package org.apache.tika.pipes.solr.tests;
import static org.junit.Assume.assumeTrue;
-import org.junit.BeforeClass;
+import org.junit.jupiter.api.BeforeAll;
+import org.testcontainers.junit.jupiter.Testcontainers;
import org.apache.tika.utils.SystemUtils;
+@Testcontainers(disabledWithoutDocker = true)
public class TikaPipesSolr8ZkTest extends TikaPipesSolr8Test {
- @BeforeClass
+ @BeforeAll
public static void setUp() {
assumeTrue("zk test only works on linux (and not mac os x)",
SystemUtils.IS_OS_UNIX && ! SystemUtils.IS_OS_MAC_OSX);
diff --git
a/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/java/org/apache/tika/pipes/solr/tests/TikaPipesSolr9Test.java
b/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/java/org/apache/tika/pipes/solr/tests/TikaPipesSolr9Test.java
index 4ea8ca7b2..cdba9f0e5 100644
---
a/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/java/org/apache/tika/pipes/solr/tests/TikaPipesSolr9Test.java
+++
b/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/java/org/apache/tika/pipes/solr/tests/TikaPipesSolr9Test.java
@@ -16,6 +16,9 @@
*/
package org.apache.tika.pipes.solr.tests;
+import org.testcontainers.junit.jupiter.Testcontainers;
+
+@Testcontainers(disabledWithoutDocker = true)
public class TikaPipesSolr9Test extends TikaPipesSolrTestBase {
@Override
diff --git
a/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/java/org/apache/tika/pipes/solr/tests/TikaPipesSolr9ZkTest.java
b/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/java/org/apache/tika/pipes/solr/tests/TikaPipesSolr9ZkTest.java
index 7ac937391..402a13e01 100644
---
a/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/java/org/apache/tika/pipes/solr/tests/TikaPipesSolr9ZkTest.java
+++
b/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/java/org/apache/tika/pipes/solr/tests/TikaPipesSolr9ZkTest.java
@@ -18,16 +18,17 @@ package org.apache.tika.pipes.solr.tests;
import static org.junit.Assume.assumeTrue;
-import org.junit.BeforeClass;
-import org.junit.Ignore;
+import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Disabled;
+import org.testcontainers.junit.jupiter.Testcontainers;
import org.apache.tika.utils.SystemUtils;
-@Ignore("until we can fix SessionExpiredException")
+@Disabled("until we can fix SessionExpiredException")
+@Testcontainers(disabledWithoutDocker = true)
public class TikaPipesSolr9ZkTest extends TikaPipesSolr9Test {
- @BeforeClass
+ @BeforeAll
public static void setUp() {
assumeTrue("zk test only works on linux (and not mac os x)",
SystemUtils.IS_OS_UNIX && ! SystemUtils.IS_OS_MAC_OSX);
diff --git
a/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/java/org/apache/tika/pipes/solr/tests/TikaPipesSolrTestBase.java
b/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/java/org/apache/tika/pipes/solr/tests/TikaPipesSolrTestBase.java
index 34e446773..c4c8be31d 100644
---
a/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/java/org/apache/tika/pipes/solr/tests/TikaPipesSolrTestBase.java
+++
b/tika-integration-tests/tika-pipes-solr-integration-tests/src/test/java/org/apache/tika/pipes/solr/tests/TikaPipesSolrTestBase.java
@@ -16,6 +16,8 @@
*/
package org.apache.tika.pipes.solr.tests;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
@@ -36,12 +38,12 @@ import org.apache.tika.pipes.emitter.solr.SolrEmitter;
import org.apache.tika.utils.SystemUtils;
import org.jetbrains.annotations.NotNull;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import org.testcontainers.containers.FixedHostPortGenericContainer;
import org.testcontainers.containers.GenericContainer;
+import org.testcontainers.junit.jupiter.Container;
import org.testcontainers.shaded.org.apache.commons.io.FileUtils;
import org.testcontainers.utility.DockerImageName;
@@ -51,6 +53,8 @@ public abstract class TikaPipesSolrTestBase {
private final String collection = "testcol";
private final int numDocs = 42;
private final File testFileFolder = new File("target", "test-files");
+
+ @Container
protected GenericContainer<?> solr;
private String solrHost;
private int solrPort;
@@ -66,8 +70,15 @@ public abstract class TikaPipesSolrTestBase {
return true;
}
- @Before
- public void setupTest() throws Exception {
+ public TikaPipesSolrTestBase() {
+ try {
+ init();
+ } catch (InterruptedException e) {
+
+ }
+ }
+
+ private void init() throws InterruptedException {
if (SystemUtils.IS_OS_MAC_OSX || SystemUtils.IS_OS_VERSION_WSL) {
// Networking on these operating systems needs fixed ports and
localhost to be passed for the SolrCloud
// with Zookeeper tests to succeed. This means stopping and
starting needs
@@ -83,12 +94,17 @@ public abstract class TikaPipesSolrTestBase {
.withCommand("-DzkRun");
}
solr.start();
+
// Ideally wanted to use TestContainers WaitStrategy but they were
inconsistent
Thread.sleep(2000);
+ }
+
+ @BeforeEach
+ public void setupTest() throws Exception {
setupSolr();
}
- @After
+ @AfterEach
public void tearDownAfter() throws Exception {
FileUtils.deleteDirectory(testFileFolder);
if (solr != null) {
@@ -164,7 +180,7 @@ public abstract class TikaPipesSolrTestBase {
" }\n" +
"}"));
CloseableHttpResponse resp = client.execute(postAddRoot);
- Assert.assertEquals(200, resp.getStatusLine().getStatusCode());
+ assertEquals(200, resp.getStatusLine().getStatusCode());
}
}
private void addSchemaFieldsForNestedDocs(String solrUrl) throws
IOException {
@@ -181,7 +197,7 @@ public abstract class TikaPipesSolrTestBase {
" }\n" +
"}"));
CloseableHttpResponse resp = client.execute(postAddRoot);
- Assert.assertEquals(200, resp.getStatusLine().getStatusCode());
+ assertEquals(200, resp.getStatusLine().getStatusCode());
}
}
@@ -213,14 +229,14 @@ public abstract class TikaPipesSolrTestBase {
try (SolrClient solrClient = new
LBHttpSolrClient.Builder().withBaseSolrUrls(solrEndpoint)
.build()) {
solrClient.commit(collection, true, true);
- Assert.assertEquals(numDocs, solrClient
+ assertEquals(numDocs, solrClient
.query(collection, new SolrQuery("mime_s:\"text/html;
charset=ISO-8859-1\""))
.getResults().getNumFound());
- Assert.assertEquals(numDocs,
+ assertEquals(numDocs,
solrClient.query(collection, new
SolrQuery("content_s:*initial*")).getResults()
.getNumFound());
if(handlesParentChild()) {
- Assert.assertEquals(3,
+ assertEquals(3,
solrClient.query(collection, new
SolrQuery("_root_:\"test-embedded.docx\""))
.getResults().getNumFound());
}
@@ -248,10 +264,10 @@ public abstract class TikaPipesSolrTestBase {
try (SolrClient solrClient = new
LBHttpSolrClient.Builder().withBaseSolrUrls(solrEndpoint)
.build()) {
solrClient.commit(collection, true, true);
- Assert.assertEquals(numDocs, solrClient
+ assertEquals(numDocs, solrClient
.query(collection, new SolrQuery("mime_s:\"text/html;
charset=ISO-8859-1\""))
.getResults().getNumFound());
- Assert.assertEquals(numDocs,
+ assertEquals(numDocs,
solrClient.query(collection, new
SolrQuery("content_s:*updated*")).getResults()
.getNumFound());
}
diff --git a/tika-parent/pom.xml b/tika-parent/pom.xml
index c1c239f8c..bb3c99ded 100644
--- a/tika-parent/pom.xml
+++ b/tika-parent/pom.xml
@@ -676,6 +676,18 @@
<artifactId>jdom2</artifactId>
<version>${jdom2.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.junit.jupiter</groupId>
+ <artifactId>junit-jupiter-api</artifactId>
+ <version>${junit5.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.junit.jupiter</groupId>
+ <artifactId>junit-jupiter-engine</artifactId>
+ <version>${junit5.version}</version>
+ <scope>test</scope>
+ </dependency>
<dependency>
<groupId>org.jvnet.staxex</groupId>
<artifactId>stax-ex</artifactId>
@@ -723,6 +735,19 @@
<artifactId>jcl-over-slf4j</artifactId>
<version>${slf4j.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.testcontainers</groupId>
+ <artifactId>testcontainers</artifactId>
+ <version>${test.containers.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.testcontainers</groupId>
+ <artifactId>junit-jupiter</artifactId>
+ <version>${test.containers.version}</version>
+ <scope>test</scope>
+ </dependency>
+
<dependency>
<groupId>org.xerial.snappy</groupId>
<artifactId>snappy-java</artifactId>
@@ -740,13 +765,11 @@
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
- <version>${junit5.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
- <version>${junit5.version}</version>
<scope>test</scope>
</dependency>
</dependencies>