This is an automated email from the ASF dual-hosted git repository.
tilman 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 cfa4b090d TIKA-4537: add testcontainers + docker start
cfa4b090d is described below
commit cfa4b090d9202b85595c72a68320d30e90647279
Author: Tilman Hausherr <[email protected]>
AuthorDate: Fri Oct 31 13:45:55 2025 +0100
TIKA-4537: add testcontainers + docker start
---
tika-translate/pom.xml | 10 ++++++
.../language/translate/impl/RTGTranslatorTest.java | 39 ++++++++++++++++++----
2 files changed, 43 insertions(+), 6 deletions(-)
diff --git a/tika-translate/pom.xml b/tika-translate/pom.xml
index 3ab74ad8c..5e3259c0c 100644
--- a/tika-translate/pom.xml
+++ b/tika-translate/pom.xml
@@ -87,6 +87,16 @@
<artifactId>tyrus-standalone-client</artifactId>
<version>2.2.1</version>
</dependency>
+ <dependency>
+ <groupId>org.testcontainers</groupId>
+ <artifactId>testcontainers</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.testcontainers</groupId>
+ <artifactId>junit-jupiter</artifactId>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<reporting>
<plugins>
diff --git
a/tika-translate/src/test/java/org/apache/tika/language/translate/impl/RTGTranslatorTest.java
b/tika-translate/src/test/java/org/apache/tika/language/translate/impl/RTGTranslatorTest.java
index ac1067bad..30087100d 100644
---
a/tika-translate/src/test/java/org/apache/tika/language/translate/impl/RTGTranslatorTest.java
+++
b/tika-translate/src/test/java/org/apache/tika/language/translate/impl/RTGTranslatorTest.java
@@ -22,34 +22,61 @@ import static
org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.fail;
import static org.junit.jupiter.api.Assumptions.assumeTrue;
+import java.time.Duration;
import java.util.Locale;
-import org.junit.jupiter.api.BeforeEach;
+import com.github.dockerjava.api.model.ExposedPort;
+import com.github.dockerjava.api.model.PortBinding;
+import com.github.dockerjava.api.model.Ports;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
+import org.testcontainers.containers.GenericContainer;
+import org.testcontainers.containers.wait.strategy.Wait;
+import org.testcontainers.junit.jupiter.Testcontainers;
+import org.testcontainers.utility.DockerImageName;
/**
* Test harness for the {@link RTGTranslator}.
*/
+@Testcontainers(disabledWithoutDocker = true)
public class RTGTranslatorTest {
- private RTGTranslator translator;
+ static private RTGTranslator translator;
+ static private GenericContainer<?> container;
- @BeforeEach
- public void setUp() {
+ @BeforeAll
+ static void setUp() {
+ // ChatGPT, prompts used:
+ // How can I run "docker run --rm -i -p 6060:6060
tgowda/rtg-model:500toEng-v1" with testcontainers in java?
+ // What can I do if the container takes longer to initialize?
+ DockerImageName imageName =
DockerImageName.parse("tgowda/rtg-model:500toEng-v1");
+ PortBinding portBinding = new
PortBinding(Ports.Binding.bindPort(6060), new ExposedPort(6060));
+ container = new GenericContainer<>(imageName)
+ .withCreateContainerCmdModifier(cmd ->
cmd.getHostConfig().withPortBindings(portBinding))
+ .waitingFor(Wait.forHttp("/about")
+ .forPort(6060)
+ .forStatusCode(200)
+ .withStartupTimeout(Duration.ofMinutes(2)));
+ container.start();
translator = new RTGTranslator();
}
+ @AfterAll
+ static void finish() {
+ container.close();
+ }
+
@Test
public void testSimpleTranslate() {
assumeTrue(translator.isAvailable());
String source = "hola seƱor";
String expected = "hello, sir.";
- String result = null;
try {
- result = translator.translate(source);
+ String result = translator.translate(source);
assertNotNull(result);
assertEquals(expected, result.toLowerCase(Locale.getDefault()),
"Result: [" + result + "]: not equal to expected: [" +
expected + "]");