diff --git a/build.gradle b/build.gradle index e52732e8a82..1381b9f139d 100644 --- a/build.gradle +++ b/build.gradle @@ -105,7 +105,8 @@ subprojects { } } - tasks.withType(Test).all { + tasks.withType(Test).configureEach { + useJUnitPlatform() reports { junitXml.outputPerTestCase = true } @@ -132,6 +133,10 @@ subprojects { dependencies { testImplementation 'ch.qos.logback:logback-classic:1.3.14' + testImplementation(platform("org.junit:junit-bom:5.13.0")) + testImplementation(project(":junit-jupiter")) + testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine") + testRuntimeOnly("org.junit.platform:junit-platform-launcher") } checkstyle { diff --git a/core/build.gradle b/core/build.gradle index 4dad6c61131..6f28fe14121 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -69,7 +69,13 @@ configurations.all { } dependencies { - api 'junit:junit:4.13.2' + constraints { + testCompileOnly('junit:junit') { + version { + rejectAll() + } + } + } api 'org.slf4j:slf4j-api:1.7.36' compileOnly 'org.jetbrains:annotations:24.1.0' testCompileOnly 'org.jetbrains:annotations:24.1.0' @@ -125,7 +131,7 @@ dependencies { jarFileTestCompileOnly "org.projectlombok:lombok:${lombok.version}" jarFileTestAnnotationProcessor "org.projectlombok:lombok:${lombok.version}" - jarFileTestImplementation 'junit:junit:4.13.2' + jarFileTestImplementation(project(":junit-jupiter")) jarFileTestImplementation 'org.assertj:assertj-core:3.26.3' jarFileTestImplementation 'org.ow2.asm:asm-debug-all:5.2' } diff --git a/core/src/jarFileTest/java/org/testcontainers/PublicBinaryAPITest.java b/core/src/jarFileTest/java/org/testcontainers/PublicBinaryAPITest.java index 77156e77636..64230a4fa92 100644 --- a/core/src/jarFileTest/java/org/testcontainers/PublicBinaryAPITest.java +++ b/core/src/jarFileTest/java/org/testcontainers/PublicBinaryAPITest.java @@ -2,12 +2,10 @@ import lombok.RequiredArgsConstructor; import org.assertj.core.api.Assertions; -import org.junit.Assume; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; -import org.junit.runners.Parameterized.Parameters; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.objectweb.asm.ClassReader; import org.objectweb.asm.Opcodes; import org.objectweb.asm.Type; @@ -27,12 +25,13 @@ import java.util.List; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assumptions.assumeThat; /** * This test checks that we don't expose any shaded class in our public API. - * We use {@link Parameterized} runner here to create a test per public class in Testcontainers' JAR file. */ -@RunWith(Parameterized.class) +@ParameterizedClass +@MethodSource("data") @RequiredArgsConstructor public class PublicBinaryAPITest extends AbstractJarFileTest { @@ -46,7 +45,6 @@ public class PublicBinaryAPITest extends AbstractJarFileTest { Assertions.registerFormatterForType(MethodNode.class, it -> it.name + it.desc); } - @Parameters(name = "{0}") public static List data() throws Exception { List result = new ArrayList<>(); @@ -89,7 +87,7 @@ public FileVisitResult visitFile(Path path, BasicFileAttributes attrs) throws IO private final ClassNode classNode; - @Before + @BeforeEach public void setUp() { switch (classNode.name) { // Necessary evil @@ -97,7 +95,7 @@ public void setUp() { case "org/testcontainers/dockerclient/DockerClientProviderStrategy": case "org/testcontainers/dockerclient/WindowsClientProviderStrategy": case "org/testcontainers/utility/DynamicPollInterval": - Assume.assumeTrue(false); + assumeThat(true).isFalse(); } } diff --git a/core/src/main/java/org/testcontainers/containers/ComposeContainer.java b/core/src/main/java/org/testcontainers/containers/ComposeContainer.java index 79d706d3b6a..e8061363a18 100644 --- a/core/src/main/java/org/testcontainers/containers/ComposeContainer.java +++ b/core/src/main/java/org/testcontainers/containers/ComposeContainer.java @@ -5,8 +5,6 @@ import lombok.NonNull; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.SystemUtils; -import org.junit.runner.Description; -import org.junit.runners.model.Statement; import org.testcontainers.containers.output.OutputFrame; import org.testcontainers.containers.wait.strategy.Wait; import org.testcontainers.containers.wait.strategy.WaitStrategy; @@ -31,7 +29,7 @@ * It uses either Compose V2 contained within the Docker binary, or a containerised version of Compose V2. */ @Slf4j -public class ComposeContainer extends FailureDetectingExternalResource implements Startable { +public class ComposeContainer implements Startable { private final Map scalingPreferences = new HashMap<>(); @@ -93,32 +91,6 @@ public ComposeContainer(String identifier, List composeFiles) { this.project = this.composeDelegate.getProject(); } - @Override - @Deprecated - public Statement apply(Statement base, Description description) { - return super.apply(base, description); - } - - @Override - @Deprecated - public void starting(Description description) { - start(); - } - - @Override - @Deprecated - protected void succeeded(Description description) {} - - @Override - @Deprecated - protected void failed(Throwable e, Description description) {} - - @Override - @Deprecated - public void finished(Description description) { - stop(); - } - @Override public void start() { synchronized (MUTEX) { diff --git a/core/src/main/java/org/testcontainers/containers/DockerComposeContainer.java b/core/src/main/java/org/testcontainers/containers/DockerComposeContainer.java index 92dc75b6cde..57876dee49e 100644 --- a/core/src/main/java/org/testcontainers/containers/DockerComposeContainer.java +++ b/core/src/main/java/org/testcontainers/containers/DockerComposeContainer.java @@ -5,8 +5,6 @@ import lombok.NonNull; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.SystemUtils; -import org.junit.runner.Description; -import org.junit.runners.model.Statement; import org.testcontainers.containers.output.OutputFrame; import org.testcontainers.containers.wait.strategy.Wait; import org.testcontainers.containers.wait.strategy.WaitStrategy; @@ -31,7 +29,7 @@ */ @Slf4j public class DockerComposeContainer> - extends FailureDetectingExternalResource + implements Startable { private final Map scalingPreferences = new HashMap<>(); @@ -99,32 +97,6 @@ public DockerComposeContainer(String identifier, List composeFiles) { this.project = this.composeDelegate.getProject(); } - @Override - @Deprecated - public Statement apply(Statement base, Description description) { - return super.apply(base, description); - } - - @Override - @Deprecated - public void starting(Description description) { - start(); - } - - @Override - @Deprecated - protected void succeeded(Description description) {} - - @Override - @Deprecated - protected void failed(Throwable e, Description description) {} - - @Override - @Deprecated - public void finished(Description description) { - stop(); - } - @Override public void start() { synchronized (MUTEX) { diff --git a/core/src/main/java/org/testcontainers/containers/FailureDetectingExternalResource.java b/core/src/main/java/org/testcontainers/containers/FailureDetectingExternalResource.java deleted file mode 100644 index 71344267d32..00000000000 --- a/core/src/main/java/org/testcontainers/containers/FailureDetectingExternalResource.java +++ /dev/null @@ -1,50 +0,0 @@ -package org.testcontainers.containers; - -import org.junit.rules.TestRule; -import org.junit.runner.Description; -import org.junit.runners.model.MultipleFailureException; -import org.junit.runners.model.Statement; - -import java.util.ArrayList; -import java.util.List; - -/** - * {@link TestRule} which is called before and after each test, and also is notified on success/failure. - * - * This mimics the behaviour of TestWatcher to some degree, but failures occurring in this rule do not - * contribute to the overall failure count (which can otherwise cause strange negative test success - * figures). - */ -public class FailureDetectingExternalResource implements TestRule { - - @Override - public Statement apply(Statement base, Description description) { - return new Statement() { - @Override - public void evaluate() throws Throwable { - List errors = new ArrayList(); - - try { - starting(description); - base.evaluate(); - succeeded(description); - } catch (Throwable e) { - errors.add(e); - failed(e, description); - } finally { - finished(description); - } - - MultipleFailureException.assertEmpty(errors); - } - }; - } - - protected void starting(Description description) {} - - protected void succeeded(Description description) {} - - protected void failed(Throwable e, Description description) {} - - protected void finished(Description description) {} -} diff --git a/core/src/main/java/org/testcontainers/containers/GenericContainer.java b/core/src/main/java/org/testcontainers/containers/GenericContainer.java index acd70f69cab..169ad8b644e 100644 --- a/core/src/main/java/org/testcontainers/containers/GenericContainer.java +++ b/core/src/main/java/org/testcontainers/containers/GenericContainer.java @@ -32,8 +32,6 @@ import org.apache.commons.lang3.SystemUtils; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.junit.runner.Description; -import org.junit.runners.model.Statement; import org.rnorth.ducttape.unreliables.Unreliables; import org.slf4j.Logger; import org.testcontainers.DockerClientFactory; @@ -106,7 +104,7 @@ */ @Data public class GenericContainer> - extends FailureDetectingExternalResource + implements Container, AutoCloseable, WaitStrategyTarget, Startable { public static final int CONTAINER_RUNNING_TIMEOUT_SEC = 30; @@ -1053,57 +1051,6 @@ public void addExposedPorts(int... ports) { this.containerDef.addExposedTcpPorts(ports); } - private TestDescription toDescription(Description description) { - return new TestDescription() { - @Override - public String getTestId() { - return description.getDisplayName(); - } - - @Override - public String getFilesystemFriendlyName() { - return description.getClassName() + "-" + description.getMethodName(); - } - }; - } - - @Override - @Deprecated - public Statement apply(Statement base, Description description) { - return super.apply(base, description); - } - - @Override - @Deprecated - protected void starting(Description description) { - if (this instanceof TestLifecycleAware) { - ((TestLifecycleAware) this).beforeTest(toDescription(description)); - } - this.start(); - } - - @Override - @Deprecated - protected void succeeded(Description description) { - if (this instanceof TestLifecycleAware) { - ((TestLifecycleAware) this).afterTest(toDescription(description), Optional.empty()); - } - } - - @Override - @Deprecated - protected void failed(Throwable e, Description description) { - if (this instanceof TestLifecycleAware) { - ((TestLifecycleAware) this).afterTest(toDescription(description), Optional.of(e)); - } - } - - @Override - @Deprecated - protected void finished(Description description) { - this.stop(); - } - /** * {@inheritDoc} */ diff --git a/core/src/main/java/org/testcontainers/containers/Network.java b/core/src/main/java/org/testcontainers/containers/Network.java index 88ddd6dd906..27cab80c652 100644 --- a/core/src/main/java/org/testcontainers/containers/Network.java +++ b/core/src/main/java/org/testcontainers/containers/Network.java @@ -4,8 +4,6 @@ import lombok.Builder; import lombok.Getter; import lombok.Singular; -import org.junit.rules.ExternalResource; -import org.junit.rules.TestRule; import org.testcontainers.DockerClientFactory; import org.testcontainers.utility.ResourceReaper; @@ -17,7 +15,7 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.Consumer; -public interface Network extends AutoCloseable, TestRule { +public interface Network extends AutoCloseable { Network SHARED = new NetworkImpl(false, null, Collections.emptySet(), null) { @Override public void close() { @@ -40,7 +38,7 @@ static NetworkImpl.NetworkImplBuilder builder() { @Builder @Getter - class NetworkImpl extends ExternalResource implements Network { + class NetworkImpl implements Network { private final String name = UUID.randomUUID().toString(); @@ -100,11 +98,6 @@ private String create() { return createNetworkCmd.exec().getId(); } - @Override - protected void after() { - close(); - } - @Override public synchronized void close() { if (initialized.getAndSet(false)) { diff --git a/core/src/test/java/alt/testcontainers/images/OutOfPackageImagePullPolicyTest.java b/core/src/test/java/alt/testcontainers/images/OutOfPackageImagePullPolicyTest.java index 6b7f7044994..742ccfdec5a 100644 --- a/core/src/test/java/alt/testcontainers/images/OutOfPackageImagePullPolicyTest.java +++ b/core/src/test/java/alt/testcontainers/images/OutOfPackageImagePullPolicyTest.java @@ -1,6 +1,6 @@ package alt.testcontainers.images; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.TestImages; import org.testcontainers.containers.GenericContainer; import org.testcontainers.containers.startupcheck.OneShotStartupCheckStrategy; diff --git a/core/src/test/java/org/testcontainers/DaemonTest.java b/core/src/test/java/org/testcontainers/DaemonTest.java index dd35112f781..a37134e2fc5 100644 --- a/core/src/test/java/org/testcontainers/DaemonTest.java +++ b/core/src/test/java/org/testcontainers/DaemonTest.java @@ -1,6 +1,6 @@ package org.testcontainers; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.GenericContainer; import java.io.File; diff --git a/core/src/test/java/org/testcontainers/DockerClientFactoryTest.java b/core/src/test/java/org/testcontainers/DockerClientFactoryTest.java index 794bbbc37c9..99aad239b83 100644 --- a/core/src/test/java/org/testcontainers/DockerClientFactoryTest.java +++ b/core/src/test/java/org/testcontainers/DockerClientFactoryTest.java @@ -1,8 +1,9 @@ package org.testcontainers; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.dockerclient.LogToStringContainerCallback; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.DockerImageName; import org.testcontainers.utility.MockTestcontainersConfigurationRule; @@ -12,9 +13,10 @@ /** * Test for {@link DockerClientFactory}. */ +@Testcontainers public class DockerClientFactoryTest { - @Rule + @Container public MockTestcontainersConfigurationRule configurationMock = new MockTestcontainersConfigurationRule(); @Test diff --git a/core/src/test/java/org/testcontainers/containers/ComposeContainerWithServicesTest.java b/core/src/test/java/org/testcontainers/containers/ComposeContainerWithServicesTest.java index 9a73c83981b..0fe27406c8f 100644 --- a/core/src/test/java/org/testcontainers/containers/ComposeContainerWithServicesTest.java +++ b/core/src/test/java/org/testcontainers/containers/ComposeContainerWithServicesTest.java @@ -1,6 +1,6 @@ package org.testcontainers.containers; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.rnorth.ducttape.TimeoutException; import org.testcontainers.containers.wait.strategy.Wait; diff --git a/core/src/test/java/org/testcontainers/containers/ComposeOverridesTest.java b/core/src/test/java/org/testcontainers/containers/ComposeOverridesTest.java index 553ac21a8a0..5f88b71a800 100644 --- a/core/src/test/java/org/testcontainers/containers/ComposeOverridesTest.java +++ b/core/src/test/java/org/testcontainers/containers/ComposeOverridesTest.java @@ -3,11 +3,10 @@ import com.google.common.util.concurrent.Uninterruptibles; import org.apache.commons.lang3.SystemUtils; import org.assertj.core.api.Assumptions; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; -import org.junit.runners.Parameterized.Parameters; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.rnorth.ducttape.unreliables.Unreliables; import org.testcontainers.utility.CommandLine; @@ -18,7 +17,8 @@ import java.util.Arrays; import java.util.concurrent.TimeUnit; -@RunWith(Parameterized.class) +@ParameterizedClass(name = "{index}: local[{0}], composeFiles[{2}], expectedEnvVar[{1}]") +@MethodSource("data") public class ComposeOverridesTest { private static final String DOCKER_EXECUTABLE = SystemUtils.IS_OS_WINDOWS ? "docker.exe" : "docker"; @@ -49,7 +49,6 @@ public ComposeOverridesTest(boolean localMode, String expectedEnvVar, File... co this.composeFiles = composeFiles; } - @Parameters(name = "{index}: local[{0}], composeFiles[{2}], expectedEnvVar[{1}]") public static Iterable data() { return Arrays.asList( new Object[][] { @@ -61,7 +60,7 @@ public static Iterable data() { ); } - @Before + @BeforeEach public void setUp() { if (localMode) { Assumptions diff --git a/core/src/test/java/org/testcontainers/containers/ComposeProfilesOptionTest.java b/core/src/test/java/org/testcontainers/containers/ComposeProfilesOptionTest.java index 8fc662a118e..1351ae7aa7a 100644 --- a/core/src/test/java/org/testcontainers/containers/ComposeProfilesOptionTest.java +++ b/core/src/test/java/org/testcontainers/containers/ComposeProfilesOptionTest.java @@ -1,30 +1,32 @@ package org.testcontainers.containers; import org.assertj.core.api.Assumptions; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.Parameter; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; import org.testcontainers.utility.CommandLine; import java.io.File; import static org.assertj.core.api.Assertions.assertThat; -@RunWith(Parameterized.class) +@ParameterizedClass +@MethodSource("local") public class ComposeProfilesOptionTest { - @Parameterized.Parameters(name = "{0}") public static Boolean[] local() { return new Boolean[] { Boolean.TRUE, Boolean.FALSE }; } - @Parameterized.Parameter + @Parameter(0) public boolean localMode; public static final File COMPOSE_FILE = new File("src/test/resources/compose-profile-option/compose-test.yml"); - @Before + @BeforeEach public void setUp() { if (this.localMode) { Assumptions diff --git a/core/src/test/java/org/testcontainers/containers/ContainerStateTest.java b/core/src/test/java/org/testcontainers/containers/ContainerStateTest.java index d3cedc11464..d41b03f279c 100644 --- a/core/src/test/java/org/testcontainers/containers/ContainerStateTest.java +++ b/core/src/test/java/org/testcontainers/containers/ContainerStateTest.java @@ -1,8 +1,9 @@ package org.testcontainers.containers; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.Parameter; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import java.util.Collections; import java.util.List; @@ -12,10 +13,10 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -@RunWith(Parameterized.class) +@ParameterizedClass(name = "{0} ({1} -> {2})") +@MethodSource("params") public class ContainerStateTest { - @Parameterized.Parameters(name = "{0} ({1} -> {2})") public static Object[][] params() { return new Object[][] { new Object[] { "regular mapping", "80:8080/tcp", Collections.singletonList(80) }, @@ -27,13 +28,13 @@ public static Object[][] params() { }; } - @Parameterized.Parameter(0) + @Parameter(0) public String name; - @Parameterized.Parameter(1) + @Parameter(1) public String testSet; - @Parameterized.Parameter(2) + @Parameter(2) public List expectedResult; @Test diff --git a/core/src/test/java/org/testcontainers/containers/DockerComposeContainerWithServicesTest.java b/core/src/test/java/org/testcontainers/containers/DockerComposeContainerWithServicesTest.java index f92c4727921..e315549ef88 100644 --- a/core/src/test/java/org/testcontainers/containers/DockerComposeContainerWithServicesTest.java +++ b/core/src/test/java/org/testcontainers/containers/DockerComposeContainerWithServicesTest.java @@ -1,6 +1,6 @@ package org.testcontainers.containers; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.rnorth.ducttape.TimeoutException; import org.testcontainers.containers.wait.strategy.Wait; diff --git a/core/src/test/java/org/testcontainers/containers/DockerComposeFilesTest.java b/core/src/test/java/org/testcontainers/containers/DockerComposeFilesTest.java index 9ae02a676c4..3c52110a032 100644 --- a/core/src/test/java/org/testcontainers/containers/DockerComposeFilesTest.java +++ b/core/src/test/java/org/testcontainers/containers/DockerComposeFilesTest.java @@ -1,7 +1,7 @@ package org.testcontainers.containers; import com.google.common.collect.Lists; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.io.File; diff --git a/core/src/test/java/org/testcontainers/containers/DockerComposeOverridesTest.java b/core/src/test/java/org/testcontainers/containers/DockerComposeOverridesTest.java index 036134e32d8..a79fde9b7ec 100644 --- a/core/src/test/java/org/testcontainers/containers/DockerComposeOverridesTest.java +++ b/core/src/test/java/org/testcontainers/containers/DockerComposeOverridesTest.java @@ -2,11 +2,10 @@ import com.google.common.util.concurrent.Uninterruptibles; import org.assertj.core.api.Assumptions; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; -import org.junit.runners.Parameterized.Parameters; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.rnorth.ducttape.unreliables.Unreliables; import org.testcontainers.utility.CommandLine; @@ -17,7 +16,8 @@ import java.util.Arrays; import java.util.concurrent.TimeUnit; -@RunWith(Parameterized.class) +@ParameterizedClass(name = "{index}: local[{0}], composeFiles[{2}], expectedEnvVar[{1}]") +@MethodSource("data") public class DockerComposeOverridesTest { private static final File BASE_COMPOSE_FILE = new File("src/test/resources/docker-compose-base.yml"); @@ -46,7 +46,6 @@ public DockerComposeOverridesTest(boolean localMode, String expectedEnvVar, File this.composeFiles = composeFiles; } - @Parameters(name = "{index}: local[{0}], composeFiles[{2}], expectedEnvVar[{1}]") public static Iterable data() { return Arrays.asList( new Object[][] { @@ -58,7 +57,7 @@ public static Iterable data() { ); } - @Before + @BeforeEach public void setUp() { if (localMode) { Assumptions diff --git a/core/src/test/java/org/testcontainers/containers/DockerComposeProfilesOptionTest.java b/core/src/test/java/org/testcontainers/containers/DockerComposeProfilesOptionTest.java index 72f80cc877e..885cf60d481 100644 --- a/core/src/test/java/org/testcontainers/containers/DockerComposeProfilesOptionTest.java +++ b/core/src/test/java/org/testcontainers/containers/DockerComposeProfilesOptionTest.java @@ -1,30 +1,31 @@ package org.testcontainers.containers; import org.assertj.core.api.Assumptions; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.Parameter; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.testcontainers.utility.CommandLine; import java.io.File; import static org.assertj.core.api.Assertions.assertThat; -@RunWith(Parameterized.class) +@ParameterizedClass +@MethodSource("parameters") public class DockerComposeProfilesOptionTest { - @Parameterized.Parameters(name = "{0}") public static Boolean[] local() { return new Boolean[] { Boolean.TRUE, Boolean.FALSE }; } - @Parameterized.Parameter + @Parameter(0) public boolean localMode; public static final File COMPOSE_FILE = new File("src/test/resources/compose-profile-option/compose-test.yml"); - @Before + @BeforeEach public void setUp() { if (this.localMode) { Assumptions diff --git a/core/src/test/java/org/testcontainers/containers/DockerModelRunnerContainerTest.java b/core/src/test/java/org/testcontainers/containers/DockerModelRunnerContainerTest.java index c04c0159e51..00180da4a47 100644 --- a/core/src/test/java/org/testcontainers/containers/DockerModelRunnerContainerTest.java +++ b/core/src/test/java/org/testcontainers/containers/DockerModelRunnerContainerTest.java @@ -2,7 +2,7 @@ import io.restassured.RestAssured; import io.restassured.response.Response; -import org.junit.Test; +import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assumptions.assumeThat; diff --git a/core/src/test/java/org/testcontainers/containers/ExposedHostTest.java b/core/src/test/java/org/testcontainers/containers/ExposedHostTest.java index 4ce316fcf80..3dee6a2cc1e 100644 --- a/core/src/test/java/org/testcontainers/containers/ExposedHostTest.java +++ b/core/src/test/java/org/testcontainers/containers/ExposedHostTest.java @@ -3,12 +3,10 @@ import com.google.common.collect.ImmutableMap; import com.sun.net.httpserver.HttpServer; import lombok.SneakyThrows; -import org.junit.After; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; -import org.junit.runner.Description; -import org.junit.runners.model.Statement; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import org.testcontainers.DockerClientFactory; import org.testcontainers.TestImages; import org.testcontainers.Testcontainers; @@ -27,7 +25,7 @@ public class ExposedHostTest { private static HttpServer server; - @BeforeClass + @BeforeAll public static void setUpClass() throws Exception { server = HttpServer.create(new InetSocketAddress(0), 0); server.createContext( @@ -44,12 +42,12 @@ public static void setUpClass() throws Exception { server.start(); } - @AfterClass + @AfterAll public static void tearDownClass() { server.stop(0); } - @After + @AfterEach public void tearDown() { PortForwardingContainer.INSTANCE.reset(); } @@ -189,11 +187,6 @@ public String getId() { @Override public void close() {} - - @Override - public Statement apply(Statement base, Description description) { - return null; - } }; List networks = DockerClientFactory diff --git a/core/src/test/java/org/testcontainers/containers/FailureDetectingExternalResourceTest.java b/core/src/test/java/org/testcontainers/containers/FailureDetectingExternalResourceTest.java deleted file mode 100644 index c743fcf6a43..00000000000 --- a/core/src/test/java/org/testcontainers/containers/FailureDetectingExternalResourceTest.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.testcontainers.containers; - -import org.junit.Test; -import org.junit.runner.Description; -import org.junit.runners.model.Statement; - -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.doThrow; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; - -public class FailureDetectingExternalResourceTest { - - @Test - public void finishedIsCalledForCleanupIfStartingThrows() throws Throwable { - FailureDetectingExternalResource res = spy(FailureDetectingExternalResource.class); - Statement stmt = res.apply(mock(Statement.class), Description.EMPTY); - doThrow(new RuntimeException()).when(res).starting(any()); - try { - stmt.evaluate(); - } catch (Throwable t) { - // ignore - } - verify(res).starting(any()); - verify(res).finished(any()); - } -} diff --git a/core/src/test/java/org/testcontainers/containers/GenericContainerTest.java b/core/src/test/java/org/testcontainers/containers/GenericContainerTest.java index c1c4ff3818e..ace5a3842ff 100644 --- a/core/src/test/java/org/testcontainers/containers/GenericContainerTest.java +++ b/core/src/test/java/org/testcontainers/containers/GenericContainerTest.java @@ -17,7 +17,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.FileUtils; import org.assertj.core.api.Assumptions; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.rnorth.ducttape.unreliables.Unreliables; import org.testcontainers.DockerClientFactory; import org.testcontainers.TestImages; diff --git a/core/src/test/java/org/testcontainers/containers/JibTest.java b/core/src/test/java/org/testcontainers/containers/JibTest.java index d784b08f2a8..8981c8ea741 100644 --- a/core/src/test/java/org/testcontainers/containers/JibTest.java +++ b/core/src/test/java/org/testcontainers/containers/JibTest.java @@ -1,8 +1,8 @@ package org.testcontainers.containers; import com.github.dockerjava.api.command.InspectImageResponse; -import org.junit.Ignore; -import org.junit.Test; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; import org.testcontainers.DockerClientFactory; import org.testcontainers.containers.output.OutputFrame.OutputType; import org.testcontainers.containers.startupcheck.OneShotStartupCheckStrategy; @@ -13,7 +13,7 @@ import static org.assertj.core.api.Assertions.assertThat; -@Ignore("Jib doesn't work with latest Docker version provided by GH Actions. Jib should be updated") +@Disabled("Jib doesn't work with latest Docker version provided by GH Actions. Jib should be updated") public class JibTest { @Test diff --git a/core/src/test/java/org/testcontainers/containers/MultiStageBuildTest.java b/core/src/test/java/org/testcontainers/containers/MultiStageBuildTest.java index f5bed1020c0..754dd19062b 100644 --- a/core/src/test/java/org/testcontainers/containers/MultiStageBuildTest.java +++ b/core/src/test/java/org/testcontainers/containers/MultiStageBuildTest.java @@ -1,6 +1,6 @@ package org.testcontainers.containers; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.images.builder.ImageFromDockerfile; import java.io.IOException; diff --git a/core/src/test/java/org/testcontainers/containers/NetworkTest.java b/core/src/test/java/org/testcontainers/containers/NetworkTest.java index 099bef20ed7..fc6f297f85b 100644 --- a/core/src/test/java/org/testcontainers/containers/NetworkTest.java +++ b/core/src/test/java/org/testcontainers/containers/NetworkTest.java @@ -1,29 +1,31 @@ package org.testcontainers.containers; -import org.junit.Rule; -import org.junit.Test; -import org.junit.experimental.runners.Enclosed; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; import org.testcontainers.DockerClientFactory; import org.testcontainers.TestImages; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.ManagedNetwork; +import org.testcontainers.junit.jupiter.Testcontainers; import static org.assertj.core.api.Assertions.assertThat; -@RunWith(Enclosed.class) +@Testcontainers public class NetworkTest { - public static class WithRules { + @Nested + public class WithRules { - @Rule + @ManagedNetwork public Network network = Network.newNetwork(); - @Rule + @Container public GenericContainer foo = new GenericContainer<>(TestImages.TINY_IMAGE) .withNetwork(network) .withNetworkAliases("foo") .withCommand("/bin/sh", "-c", "while true ; do printf 'HTTP/1.1 200 OK\\n\\nyay' | nc -l -p 8080; done"); - @Rule + @Container public GenericContainer bar = new GenericContainer<>(TestImages.TINY_IMAGE) .withNetwork(network) .withCommand("top"); @@ -35,7 +37,8 @@ public void testNetworkSupport() throws Exception { } } - public static class WithoutRules { + @Nested + public class WithoutRules { @Test public void testNetworkSupport() throws Exception { diff --git a/core/src/test/java/org/testcontainers/containers/ParsedDockerComposeFileValidationTest.java b/core/src/test/java/org/testcontainers/containers/ParsedDockerComposeFileValidationTest.java index 9067d77d825..ddee5c561b8 100644 --- a/core/src/test/java/org/testcontainers/containers/ParsedDockerComposeFileValidationTest.java +++ b/core/src/test/java/org/testcontainers/containers/ParsedDockerComposeFileValidationTest.java @@ -3,9 +3,8 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.Sets; import lombok.SneakyThrows; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; import java.io.File; import java.io.PrintWriter; @@ -18,8 +17,8 @@ public class ParsedDockerComposeFileValidationTest { - @Rule - public TemporaryFolder temporaryFolder = new TemporaryFolder(); + @TempDir + public File temporaryFolder; @Test public void shouldValidate() { @@ -152,7 +151,7 @@ public void shouldObtainImageFromDockerfileBuildWithContext() { @Test public void shouldSupportALotOfAliases() throws Exception { - File file = temporaryFolder.newFile(); + File file = new File(temporaryFolder, "test.yml"); try (PrintWriter writer = new PrintWriter(file)) { writer.println("x-entry: &entry"); writer.println(" key: value"); diff --git a/core/src/test/java/org/testcontainers/containers/ReusabilityUnitTests.java b/core/src/test/java/org/testcontainers/containers/ReusabilityUnitTests.java index 04f97fef514..056b8110a77 100644 --- a/core/src/test/java/org/testcontainers/containers/ReusabilityUnitTests.java +++ b/core/src/test/java/org/testcontainers/containers/ReusabilityUnitTests.java @@ -9,7 +9,6 @@ import com.github.dockerjava.api.command.InspectContainerResponse; import com.github.dockerjava.api.command.ListContainersCmd; import com.github.dockerjava.api.command.StartContainerCmd; -import com.github.dockerjava.api.model.Container; import com.github.dockerjava.core.command.CreateContainerCmdImpl; import com.github.dockerjava.core.command.InspectContainerCmdImpl; import com.github.dockerjava.core.command.ListContainersCmdImpl; @@ -17,11 +16,12 @@ import lombok.RequiredArgsConstructor; import lombok.experimental.FieldDefaults; import org.junit.Rule; -import org.junit.Test; -import org.junit.experimental.runners.Enclosed; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.junit.runner.RunWith; import org.junit.runners.BlockJUnit4ClassRunner; -import org.junit.runners.Parameterized; import org.mockito.Answers; import org.mockito.Mockito; import org.mockito.stubbing.Answer; @@ -53,16 +53,15 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.when; -@RunWith(Enclosed.class) public class ReusabilityUnitTests { - @RunWith(Parameterized.class) + @Nested + @ParameterizedClass + @MethodSource("data") @RequiredArgsConstructor @FieldDefaults(makeFinal = true) - public static class CanBeReusedTest { - - @Parameterized.Parameters(name = "{0}") - public static Object[][] data() { + public class CanBeReusedTest { + public Object[][] data() { return new Object[][] { { "generic", new GenericContainer<>(TestImages.TINY_IMAGE), true }, { "anonymous generic", new GenericContainer(TestImages.TINY_IMAGE) {}, true }, @@ -87,14 +86,14 @@ public void shouldBeReusable() { } } - static class CustomContainer extends GenericContainer { + class CustomContainer extends GenericContainer { CustomContainer() { super(TestImages.TINY_IMAGE); } } - static class CustomContainerWithContainerIsCreated + class CustomContainerWithContainerIsCreated extends GenericContainer { CustomContainerWithContainerIsCreated() { @@ -108,9 +107,10 @@ protected void containerIsCreated(String containerId) { } } + @Nested @RunWith(BlockJUnit4ClassRunner.class) @FieldDefaults(makeFinal = true) - public static class HooksTest extends AbstractReusabilityTest { + public class HooksTest extends AbstractReusabilityTest { List script = new ArrayList<>(); @@ -189,9 +189,10 @@ public void shouldNotCallHookIfNotReused() { } } + @Nested @RunWith(BlockJUnit4ClassRunner.class) @FieldDefaults(makeFinal = true) - public static class HashTest extends AbstractReusabilityTest { + public class HashTest extends AbstractReusabilityTest { protected GenericContainer container = makeReusable( new GenericContainer(TestImages.TINY_IMAGE) { @@ -303,19 +304,22 @@ public void shouldHashCopiedFiles() { } } - @RunWith(Parameterized.class) - @FieldDefaults(makeFinal = true) - public static class CopyFilesHashTest { - private final TestStrategy strategy; + interface TestStrategy { + void withCopyFileToContainer(MountableFile mountableFile, String path); + + void clear(); + } - interface TestStrategy { - void withCopyFileToContainer(MountableFile mountableFile, String path); + @Nested + @ParameterizedClass + @MethodSource("strategies") + @FieldDefaults(makeFinal = true) + public class CopyFilesHashTest { - void clear(); - } + private final TestStrategy strategy; - private static class MountableFileTestStrategy implements TestStrategy { + private class MountableFileTestStrategy implements TestStrategy { private final GenericContainer container; @@ -334,7 +338,7 @@ public void clear() { } } - private static class TransferableTestStrategy implements TestStrategy { + private class TransferableTestStrategy implements TestStrategy { private final GenericContainer container; @@ -353,8 +357,7 @@ public void clear() { } } - @Parameterized.Parameters - public static List, TestStrategy>> strategies() { + public List, TestStrategy>> strategies() { return Arrays.asList(MountableFileTestStrategy::new, TransferableTestStrategy::new); } @@ -506,7 +509,7 @@ public void folderPermissions() throws Exception { } @FieldDefaults(makeFinal = true) - public abstract static class AbstractReusabilityTest { + public abstract class AbstractReusabilityTest { @Rule public MockTestcontainersConfigurationRule configurationMock = new MockTestcontainersConfigurationRule(); diff --git a/core/src/test/java/org/testcontainers/containers/output/ContainerLogsTest.java b/core/src/test/java/org/testcontainers/containers/output/ContainerLogsTest.java index cc3a98dba47..30a76b5498d 100644 --- a/core/src/test/java/org/testcontainers/containers/output/ContainerLogsTest.java +++ b/core/src/test/java/org/testcontainers/containers/output/ContainerLogsTest.java @@ -1,7 +1,7 @@ package org.testcontainers.containers.output; -import org.junit.Ignore; -import org.junit.Test; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; import org.testcontainers.TestImages; import org.testcontainers.containers.GenericContainer; import org.testcontainers.containers.startupcheck.OneShotStartupCheckStrategy; @@ -11,7 +11,7 @@ public class ContainerLogsTest { @Test - @Ignore("fails due to the timing of the shell's decision to flush") + @Disabled("fails due to the timing of the shell's decision to flush") public void getLogsReturnsAllLogsToDate() { try (GenericContainer container = shortLivedContainer()) { container.start(); diff --git a/core/src/test/java/org/testcontainers/containers/output/FrameConsumerResultCallbackTest.java b/core/src/test/java/org/testcontainers/containers/output/FrameConsumerResultCallbackTest.java index f6e513c1fd8..ff77386c597 100644 --- a/core/src/test/java/org/testcontainers/containers/output/FrameConsumerResultCallbackTest.java +++ b/core/src/test/java/org/testcontainers/containers/output/FrameConsumerResultCallbackTest.java @@ -2,7 +2,7 @@ import com.github.dockerjava.api.model.Frame; import com.github.dockerjava.api.model.StreamType; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.io.IOException; import java.nio.charset.StandardCharsets; diff --git a/core/src/test/java/org/testcontainers/containers/output/ToStringConsumerTest.java b/core/src/test/java/org/testcontainers/containers/output/ToStringConsumerTest.java index eaab250141c..210b9cc96f3 100644 --- a/core/src/test/java/org/testcontainers/containers/output/ToStringConsumerTest.java +++ b/core/src/test/java/org/testcontainers/containers/output/ToStringConsumerTest.java @@ -1,11 +1,14 @@ package org.testcontainers.containers.output; import org.apache.commons.lang3.RandomStringUtils; -import org.junit.Test; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.Timeout; import org.testcontainers.containers.Container.ExecResult; import org.testcontainers.containers.GenericContainer; import org.testcontainers.containers.startupcheck.OneShotStartupCheckStrategy; +import java.util.concurrent.TimeUnit; + import static org.assertj.core.api.Assertions.assertThat; public class ToStringConsumerTest { @@ -32,7 +35,8 @@ public void newlines_are_not_added_to_exec_output() throws Exception { } } - @Test(timeout = 60_000L) + @Test + @Timeout(value = 60, unit = TimeUnit.SECONDS) public void newlines_are_not_added_to_exec_output_with_tty() throws Exception { try (GenericContainer container = new GenericContainer<>("alpine:3.17")) { container.withCreateContainerCmdModifier(cmd -> { diff --git a/core/src/test/java/org/testcontainers/containers/startupcheck/IsRunningStartupCheckStrategyTest.java b/core/src/test/java/org/testcontainers/containers/startupcheck/IsRunningStartupCheckStrategyTest.java index 7e3bf1d814f..4cb36c2ae8a 100644 --- a/core/src/test/java/org/testcontainers/containers/startupcheck/IsRunningStartupCheckStrategyTest.java +++ b/core/src/test/java/org/testcontainers/containers/startupcheck/IsRunningStartupCheckStrategyTest.java @@ -1,7 +1,7 @@ package org.testcontainers.containers.startupcheck; -import org.junit.Ignore; -import org.junit.Test; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; import org.testcontainers.TestImages; import org.testcontainers.containers.GenericContainer; @@ -17,7 +17,7 @@ public void testCommandQuickExitSuccess() { } @Test - @Ignore("This test can fail to throw an AssertionError if the container doesn't fail quickly enough") + @Disabled("This test can fail to throw an AssertionError if the container doesn't fail quickly enough") public void testCommandQuickExitFailure() { try (GenericContainer container = new GenericContainer<>(TestImages.TINY_IMAGE).withCommand("/bin/false")) { assertThatThrownBy(container::start) diff --git a/core/src/test/java/org/testcontainers/containers/wait/internal/ExternalPortListeningCheckTest.java b/core/src/test/java/org/testcontainers/containers/wait/internal/ExternalPortListeningCheckTest.java index b7d9fd5a6fa..6464b849b9d 100644 --- a/core/src/test/java/org/testcontainers/containers/wait/internal/ExternalPortListeningCheckTest.java +++ b/core/src/test/java/org/testcontainers/containers/wait/internal/ExternalPortListeningCheckTest.java @@ -1,9 +1,9 @@ package org.testcontainers.containers.wait.internal; import com.google.common.collect.ImmutableSet; -import org.junit.After; -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.wait.strategy.WaitStrategyTarget; import java.net.ServerSocket; @@ -23,7 +23,7 @@ public class ExternalPortListeningCheckTest { private WaitStrategyTarget mockContainer; - @Before + @BeforeEach public void setUp() throws Exception { listeningSocket1 = new ServerSocket(0); listeningSocket2 = new ServerSocket(0); @@ -71,7 +71,7 @@ public void oneNotListening() { .isInstanceOf(IllegalStateException.class); } - @After + @AfterEach public void tearDown() throws Exception { listeningSocket1.close(); listeningSocket2.close(); diff --git a/core/src/test/java/org/testcontainers/containers/wait/internal/InternalCommandPortListeningCheckTest.java b/core/src/test/java/org/testcontainers/containers/wait/internal/InternalCommandPortListeningCheckTest.java index d93eb90c339..c403a0a91cf 100644 --- a/core/src/test/java/org/testcontainers/containers/wait/internal/InternalCommandPortListeningCheckTest.java +++ b/core/src/test/java/org/testcontainers/containers/wait/internal/InternalCommandPortListeningCheckTest.java @@ -2,23 +2,26 @@ import com.google.common.collect.ImmutableSet; import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.rnorth.ducttape.TimeoutException; import org.rnorth.ducttape.unreliables.Unreliables; import org.testcontainers.containers.GenericContainer; import org.testcontainers.images.builder.ImageFromDockerfile; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import java.util.Arrays; import java.util.concurrent.TimeUnit; import static org.assertj.core.api.Assertions.fail; -@RunWith(Parameterized.class) +@Testcontainers +@ParameterizedClass +@MethodSource("data") public class InternalCommandPortListeningCheckTest { - @Parameterized.Parameters(name = "{index} - {0}") public static Iterable data() { return Arrays.asList( new Object[][] { @@ -29,7 +32,7 @@ public static Iterable data() { ); } - @Rule + @Container public GenericContainer container; public InternalCommandPortListeningCheckTest(String dockerfile) { diff --git a/core/src/test/java/org/testcontainers/containers/wait/strategy/DockerHealthcheckWaitStrategyTest.java b/core/src/test/java/org/testcontainers/containers/wait/strategy/DockerHealthcheckWaitStrategyTest.java index 0cbf257e9b5..cf3b37d8f90 100644 --- a/core/src/test/java/org/testcontainers/containers/wait/strategy/DockerHealthcheckWaitStrategyTest.java +++ b/core/src/test/java/org/testcontainers/containers/wait/strategy/DockerHealthcheckWaitStrategyTest.java @@ -1,7 +1,7 @@ package org.testcontainers.containers.wait.strategy; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.ContainerLaunchException; import org.testcontainers.containers.GenericContainer; import org.testcontainers.images.builder.ImageFromDockerfile; @@ -15,7 +15,7 @@ public class DockerHealthcheckWaitStrategyTest { private GenericContainer container; - @Before + @BeforeEach public void setUp() { // Using a Dockerfile here, since Dockerfile builder DSL doesn't support HEALTHCHECK container = diff --git a/core/src/test/java/org/testcontainers/containers/wait/strategy/WaitAllStrategyTest.java b/core/src/test/java/org/testcontainers/containers/wait/strategy/WaitAllStrategyTest.java index 8b69553e5ab..f01b859aab4 100644 --- a/core/src/test/java/org/testcontainers/containers/wait/strategy/WaitAllStrategyTest.java +++ b/core/src/test/java/org/testcontainers/containers/wait/strategy/WaitAllStrategyTest.java @@ -1,7 +1,7 @@ package org.testcontainers.containers.wait.strategy; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.mockito.InOrder; import org.mockito.Mock; import org.mockito.MockitoAnnotations; @@ -34,7 +34,7 @@ public class WaitAllStrategyTest { @Mock private WaitStrategy strategy3; - @Before + @BeforeEach public void setUp() { MockitoAnnotations.initMocks(this); } diff --git a/core/src/test/java/org/testcontainers/dockerclient/AmbiguousImagePullTest.java b/core/src/test/java/org/testcontainers/dockerclient/AmbiguousImagePullTest.java index f67ad212d77..bc3132a797a 100644 --- a/core/src/test/java/org/testcontainers/dockerclient/AmbiguousImagePullTest.java +++ b/core/src/test/java/org/testcontainers/dockerclient/AmbiguousImagePullTest.java @@ -1,13 +1,17 @@ package org.testcontainers.dockerclient; -import org.junit.Test; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.Timeout; import org.testcontainers.DockerRegistryContainer; import org.testcontainers.containers.GenericContainer; import org.testcontainers.utility.DockerImageName; +import java.util.concurrent.TimeUnit; + public class AmbiguousImagePullTest { - @Test(timeout = 30_000) + @Test + @Timeout(value = 30, unit = TimeUnit.SECONDS) public void testNotUsingParse() { try (DockerRegistryContainer registryContainer = new DockerRegistryContainer()) { registryContainer.start(); diff --git a/core/src/test/java/org/testcontainers/dockerclient/DockerClientConfigUtilsTest.java b/core/src/test/java/org/testcontainers/dockerclient/DockerClientConfigUtilsTest.java index 757816cb189..6bdcb48edd2 100644 --- a/core/src/test/java/org/testcontainers/dockerclient/DockerClientConfigUtilsTest.java +++ b/core/src/test/java/org/testcontainers/dockerclient/DockerClientConfigUtilsTest.java @@ -2,10 +2,12 @@ import com.github.dockerjava.api.DockerClient; import org.assertj.core.api.Assumptions; -import org.junit.Test; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.Timeout; import org.testcontainers.DockerClientFactory; import java.net.URI; +import java.util.concurrent.TimeUnit; import static org.assertj.core.api.Assertions.assertThat; @@ -55,7 +57,8 @@ public void getDockerHostIpAddressShouldReturnNullWhenUnsupportedUriScheme() { assertThat(actual).isNull(); } - @Test(timeout = 5_000) + @Test + @Timeout(value = 5, unit = TimeUnit.SECONDS) public void getDefaultGateway() { assertThat(DockerClientConfigUtils.getDefaultGateway()).isNotNull(); } diff --git a/core/src/test/java/org/testcontainers/dockerclient/EnvironmentAndSystemPropertyClientProviderStrategyTest.java b/core/src/test/java/org/testcontainers/dockerclient/EnvironmentAndSystemPropertyClientProviderStrategyTest.java index 58bd6984401..28abf6fb16d 100644 --- a/core/src/test/java/org/testcontainers/dockerclient/EnvironmentAndSystemPropertyClientProviderStrategyTest.java +++ b/core/src/test/java/org/testcontainers/dockerclient/EnvironmentAndSystemPropertyClientProviderStrategyTest.java @@ -2,12 +2,13 @@ import com.github.dockerjava.core.DefaultDockerClientConfig; import com.github.dockerjava.transport.SSLConfig; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.junit.runner.RunWith; import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.MockTestcontainersConfigurationRule; import org.testcontainers.utility.TestcontainersConfiguration; @@ -27,17 +28,18 @@ * Test that we can use Testcontainers configuration file to override settings. We assume that docker-java has test * coverage for detection of environment variables (e.g. DOCKER_HOST) and its own properties config file. */ +@Testcontainers @RunWith(MockitoJUnitRunner.class) public class EnvironmentAndSystemPropertyClientProviderStrategyTest { - @Rule + @Container public MockTestcontainersConfigurationRule mockConfig = new MockTestcontainersConfigurationRule(); private URI defaultDockerHost; private com.github.dockerjava.core.SSLConfig defaultSSLConfig; - @Before + @BeforeEach public void checkEnvironmentClear() { // If docker-java picks up non-default settings from the environment, our test needs to know to expect those DefaultDockerClientConfig defaultConfig = DefaultDockerClientConfig.createDefaultConfigBuilder().build(); diff --git a/core/src/test/java/org/testcontainers/dockerclient/EventStreamTest.java b/core/src/test/java/org/testcontainers/dockerclient/EventStreamTest.java index 642eb6d7390..72284a4ac4e 100644 --- a/core/src/test/java/org/testcontainers/dockerclient/EventStreamTest.java +++ b/core/src/test/java/org/testcontainers/dockerclient/EventStreamTest.java @@ -4,9 +4,8 @@ import com.github.dockerjava.api.model.Event; import com.github.dockerjava.core.command.EventsResultCallback; import org.jetbrains.annotations.NotNull; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.Timeout; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.Timeout; import org.testcontainers.DockerClientFactory; import org.testcontainers.TestImages; import org.testcontainers.containers.GenericContainer; @@ -22,13 +21,11 @@ */ public class EventStreamTest { - @Rule - public Timeout timeout = new Timeout(10, TimeUnit.SECONDS); - /** * Test that docker events can be streamed from the client. */ @Test + @Timeout(value = 10, unit = TimeUnit.SECONDS) public void test() throws IOException, InterruptedException { CountDownLatch latch = new CountDownLatch(1); diff --git a/core/src/test/java/org/testcontainers/dockerclient/ImagePullTest.java b/core/src/test/java/org/testcontainers/dockerclient/ImagePullTest.java index 42cff09c335..db2a1cd186b 100644 --- a/core/src/test/java/org/testcontainers/dockerclient/ImagePullTest.java +++ b/core/src/test/java/org/testcontainers/dockerclient/ImagePullTest.java @@ -1,18 +1,18 @@ package org.testcontainers.dockerclient; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.testcontainers.containers.GenericContainer; import org.testcontainers.containers.startupcheck.OneShotStartupCheckStrategy; import org.testcontainers.utility.DockerImageName; -@RunWith(Parameterized.class) +@ParameterizedClass +@MethodSource("parameters") public class ImagePullTest { private final String image; - @Parameterized.Parameters(name = "{0}") public static String[] parameters() { return new String[] { "alpine:latest", diff --git a/core/src/test/java/org/testcontainers/dockerclient/TestcontainersHostPropertyClientProviderStrategyTest.java b/core/src/test/java/org/testcontainers/dockerclient/TestcontainersHostPropertyClientProviderStrategyTest.java index 4ebdb300a2f..9336e1b5f0c 100644 --- a/core/src/test/java/org/testcontainers/dockerclient/TestcontainersHostPropertyClientProviderStrategyTest.java +++ b/core/src/test/java/org/testcontainers/dockerclient/TestcontainersHostPropertyClientProviderStrategyTest.java @@ -1,7 +1,7 @@ package org.testcontainers.dockerclient; import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.junit.runner.RunWith; import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; diff --git a/core/src/test/java/org/testcontainers/images/AgeBasedPullPolicyTest.java b/core/src/test/java/org/testcontainers/images/AgeBasedPullPolicyTest.java index 0bdf969688b..351d43612a8 100644 --- a/core/src/test/java/org/testcontainers/images/AgeBasedPullPolicyTest.java +++ b/core/src/test/java/org/testcontainers/images/AgeBasedPullPolicyTest.java @@ -1,6 +1,6 @@ package org.testcontainers.images; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.utility.DockerImageName; import java.time.Duration; diff --git a/core/src/test/java/org/testcontainers/images/ImageDataTest.java b/core/src/test/java/org/testcontainers/images/ImageDataTest.java index 6ff75e9e355..30c7d8b13cb 100644 --- a/core/src/test/java/org/testcontainers/images/ImageDataTest.java +++ b/core/src/test/java/org/testcontainers/images/ImageDataTest.java @@ -1,7 +1,7 @@ package org.testcontainers.images; import com.github.dockerjava.api.command.InspectImageResponse; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.time.Instant; diff --git a/core/src/test/java/org/testcontainers/images/ImagePullPolicyTest.java b/core/src/test/java/org/testcontainers/images/ImagePullPolicyTest.java index a885c035e5c..2f0b70d5d02 100644 --- a/core/src/test/java/org/testcontainers/images/ImagePullPolicyTest.java +++ b/core/src/test/java/org/testcontainers/images/ImagePullPolicyTest.java @@ -1,22 +1,24 @@ package org.testcontainers.images; import com.github.dockerjava.api.exception.NotFoundException; -import org.junit.ClassRule; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.mockito.Mockito; import org.testcontainers.DockerClientFactory; import org.testcontainers.DockerRegistryContainer; import org.testcontainers.containers.ContainerLaunchException; import org.testcontainers.containers.GenericContainer; import org.testcontainers.containers.startupcheck.OneShotStartupCheckStrategy; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.DockerImageName; import static org.assertj.core.api.Assertions.fail; import static org.mockito.ArgumentMatchers.any; +@Testcontainers public class ImagePullPolicyTest { - @ClassRule + @Container public static DockerRegistryContainer registry = new DockerRegistryContainer(); private final DockerImageName imageName = registry.createImage(); diff --git a/core/src/test/java/org/testcontainers/images/OverrideImagePullPolicyTest.java b/core/src/test/java/org/testcontainers/images/OverrideImagePullPolicyTest.java index 43c026ea294..4843927a2c1 100644 --- a/core/src/test/java/org/testcontainers/images/OverrideImagePullPolicyTest.java +++ b/core/src/test/java/org/testcontainers/images/OverrideImagePullPolicyTest.java @@ -1,28 +1,30 @@ package org.testcontainers.images; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.mockito.Mockito; import org.testcontainers.DockerRegistryContainer; import org.testcontainers.containers.GenericContainer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.FakeImagePullPolicy; import org.testcontainers.utility.MockTestcontainersConfigurationRule; import org.testcontainers.utility.TestcontainersConfiguration; import static org.assertj.core.api.Assertions.assertThat; +@Testcontainers public class OverrideImagePullPolicyTest { - @Rule + @Container public MockTestcontainersConfigurationRule config = new MockTestcontainersConfigurationRule(); private ImagePullPolicy originalInstance; private ImagePullPolicy originalDefaultImplementation; - @Before + @BeforeEach public void setUp() { this.originalInstance = PullPolicy.instance; this.originalDefaultImplementation = PullPolicy.defaultImplementation; @@ -30,7 +32,7 @@ public void setUp() { PullPolicy.defaultImplementation = Mockito.mock(ImagePullPolicy.class); } - @After + @AfterEach public void tearDown() { PullPolicy.instance = originalInstance; PullPolicy.defaultImplementation = originalDefaultImplementation; diff --git a/core/src/test/java/org/testcontainers/images/ParsedDockerfileTest.java b/core/src/test/java/org/testcontainers/images/ParsedDockerfileTest.java index f8c66860022..fbab0ca1bff 100644 --- a/core/src/test/java/org/testcontainers/images/ParsedDockerfileTest.java +++ b/core/src/test/java/org/testcontainers/images/ParsedDockerfileTest.java @@ -1,7 +1,7 @@ package org.testcontainers.images; import com.google.common.collect.Sets; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.nio.file.Paths; import java.util.Arrays; diff --git a/core/src/test/java/org/testcontainers/images/RemoteDockerImageTest.java b/core/src/test/java/org/testcontainers/images/RemoteDockerImageTest.java index 9e4ac66fb53..845d3299140 100644 --- a/core/src/test/java/org/testcontainers/images/RemoteDockerImageTest.java +++ b/core/src/test/java/org/testcontainers/images/RemoteDockerImageTest.java @@ -1,12 +1,14 @@ package org.testcontainers.images; -import org.junit.Test; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.Timeout; import org.testcontainers.utility.Base58; import org.testcontainers.utility.DockerImageName; import org.testcontainers.utility.LazyFuture; import java.util.concurrent.CompletableFuture; import java.util.concurrent.Future; +import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; import static org.assertj.core.api.Assertions.assertThat; @@ -29,7 +31,8 @@ public void toStringWithExceptionContainsOnlyImageNameFuture() { assertThat(remoteDockerImage.toString()).contains("imageName=java.lang.RuntimeException: arbitrary"); } - @Test(timeout = 5000L) + @Test + @Timeout(value = 5, unit = TimeUnit.SECONDS) public void toStringDoesntResolveImageNameFuture() { CompletableFuture imageNameFuture = new CompletableFuture<>(); @@ -47,7 +50,8 @@ public void toStringDoesntResolveImageNameFuture() { assertThat(remoteDockerImage.toString()).contains("imageName=" + imageName); } - @Test(timeout = 5000L) + @Test + @Timeout(value = 5, unit = TimeUnit.SECONDS) public void toStringDoesntResolveLazyFuture() throws Exception { String imageName = Base58.randomString(8).toLowerCase(); AtomicBoolean resolved = new AtomicBoolean(false); diff --git a/core/src/test/java/org/testcontainers/images/builder/DockerfileBuildTest.java b/core/src/test/java/org/testcontainers/images/builder/DockerfileBuildTest.java index b2c7075f4d2..225129db0c0 100644 --- a/core/src/test/java/org/testcontainers/images/builder/DockerfileBuildTest.java +++ b/core/src/test/java/org/testcontainers/images/builder/DockerfileBuildTest.java @@ -1,8 +1,8 @@ package org.testcontainers.images.builder; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.testcontainers.containers.GenericContainer; import org.testcontainers.containers.startupcheck.OneShotStartupCheckStrategy; @@ -13,7 +13,8 @@ import static org.assertj.core.api.Assertions.assertThat; -@RunWith(Parameterized.class) +@ParameterizedClass +@MethodSource("parameters") public class DockerfileBuildTest { static final Path RESOURCE_PATH = Paths.get("src/test/resources/dockerfile-build-test"); @@ -22,7 +23,6 @@ public class DockerfileBuildTest { public ImageFromDockerfile image; - @Parameterized.Parameters public static Object[][] parameters() { Map buildArgs = new HashMap<>(4); buildArgs.put("BUILD_IMAGE", "alpine:3.16"); diff --git a/core/src/test/java/org/testcontainers/images/builder/DockerignoreTest.java b/core/src/test/java/org/testcontainers/images/builder/DockerignoreTest.java index 8c6d288da99..3a191e2a9c9 100644 --- a/core/src/test/java/org/testcontainers/images/builder/DockerignoreTest.java +++ b/core/src/test/java/org/testcontainers/images/builder/DockerignoreTest.java @@ -1,7 +1,7 @@ package org.testcontainers.images.builder; import com.github.dockerjava.api.exception.DockerClientException; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.GenericContainer; import org.testcontainers.containers.startupcheck.OneShotStartupCheckStrategy; import org.testcontainers.utility.DockerImageName; diff --git a/core/src/test/java/org/testcontainers/images/builder/ImageFromDockerfileTest.java b/core/src/test/java/org/testcontainers/images/builder/ImageFromDockerfileTest.java index b761d984187..32cd00f17e1 100644 --- a/core/src/test/java/org/testcontainers/images/builder/ImageFromDockerfileTest.java +++ b/core/src/test/java/org/testcontainers/images/builder/ImageFromDockerfileTest.java @@ -2,7 +2,7 @@ import com.github.dockerjava.api.DockerClient; import com.github.dockerjava.api.command.InspectImageResponse; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.DockerClientFactory; import org.testcontainers.utility.Base58; diff --git a/core/src/test/java/org/testcontainers/images/builder/dockerfile/statement/AbstractStatementTest.java b/core/src/test/java/org/testcontainers/images/builder/dockerfile/statement/AbstractStatementTest.java index 0c47d556137..91aec5a11a7 100644 --- a/core/src/test/java/org/testcontainers/images/builder/dockerfile/statement/AbstractStatementTest.java +++ b/core/src/test/java/org/testcontainers/images/builder/dockerfile/statement/AbstractStatementTest.java @@ -3,8 +3,8 @@ import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.exception.ExceptionUtils; -import org.junit.Rule; -import org.junit.rules.TestName; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.TestInfo; import org.rnorth.ducttape.Preconditions; import java.io.InputStream; @@ -14,13 +14,17 @@ public abstract class AbstractStatementTest { - @Rule - public TestName testName = new TestName(); + private String methodName; + + @BeforeEach + void init(TestInfo testInfo) { + methodName = testInfo.getTestMethod().get().getName(); + } protected void assertStatement(Statement statement) { String[] expectedLines = new String[0]; try { - String path = "fixtures/statements/" + getClass().getSimpleName() + "/" + testName.getMethodName(); + String path = "fixtures/statements/" + getClass().getSimpleName() + "/" + methodName; InputStream inputStream = getClass().getClassLoader().getResourceAsStream(path); Preconditions.check("inputStream is null for path " + path, inputStream != null); @@ -29,7 +33,7 @@ protected void assertStatement(Statement statement) { IOUtils.closeQuietly(inputStream); expectedLines = StringUtils.chomp(content.replaceAll("\r\n", "\n").trim()).split("\n"); } catch (Exception e) { - fail("can't load fixture '" + testName.getMethodName() + "'\n" + ExceptionUtils.getStackTrace(e)); + fail("can't load fixture '" + methodName + "'\n" + ExceptionUtils.getStackTrace(e)); } StringBuilder builder = new StringBuilder(); diff --git a/core/src/test/java/org/testcontainers/images/builder/dockerfile/statement/KeyValuesStatementTest.java b/core/src/test/java/org/testcontainers/images/builder/dockerfile/statement/KeyValuesStatementTest.java index f446e48b42c..8a31a2c3b62 100644 --- a/core/src/test/java/org/testcontainers/images/builder/dockerfile/statement/KeyValuesStatementTest.java +++ b/core/src/test/java/org/testcontainers/images/builder/dockerfile/statement/KeyValuesStatementTest.java @@ -1,7 +1,7 @@ package org.testcontainers.images.builder.dockerfile.statement; import com.google.common.collect.ImmutableMap; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.Collections; diff --git a/core/src/test/java/org/testcontainers/images/builder/dockerfile/statement/MultiArgsStatementTest.java b/core/src/test/java/org/testcontainers/images/builder/dockerfile/statement/MultiArgsStatementTest.java index 50bc8bedd96..0ef15e02767 100644 --- a/core/src/test/java/org/testcontainers/images/builder/dockerfile/statement/MultiArgsStatementTest.java +++ b/core/src/test/java/org/testcontainers/images/builder/dockerfile/statement/MultiArgsStatementTest.java @@ -1,6 +1,6 @@ package org.testcontainers.images.builder.dockerfile.statement; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class MultiArgsStatementTest extends AbstractStatementTest { diff --git a/core/src/test/java/org/testcontainers/images/builder/dockerfile/statement/RawStatementTest.java b/core/src/test/java/org/testcontainers/images/builder/dockerfile/statement/RawStatementTest.java index 70724a03f09..b1f995a21de 100644 --- a/core/src/test/java/org/testcontainers/images/builder/dockerfile/statement/RawStatementTest.java +++ b/core/src/test/java/org/testcontainers/images/builder/dockerfile/statement/RawStatementTest.java @@ -1,6 +1,6 @@ package org.testcontainers.images.builder.dockerfile.statement; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class RawStatementTest extends AbstractStatementTest { diff --git a/core/src/test/java/org/testcontainers/images/builder/dockerfile/statement/SingleArgumentStatementTest.java b/core/src/test/java/org/testcontainers/images/builder/dockerfile/statement/SingleArgumentStatementTest.java index dbdabab9fff..20195b1777d 100644 --- a/core/src/test/java/org/testcontainers/images/builder/dockerfile/statement/SingleArgumentStatementTest.java +++ b/core/src/test/java/org/testcontainers/images/builder/dockerfile/statement/SingleArgumentStatementTest.java @@ -1,6 +1,6 @@ package org.testcontainers.images.builder.dockerfile.statement; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class SingleArgumentStatementTest extends AbstractStatementTest { diff --git a/core/src/test/java/org/testcontainers/junit/BaseComposeTest.java b/core/src/test/java/org/testcontainers/junit/BaseComposeTest.java index 4d919388eb7..835c8a04980 100644 --- a/core/src/test/java/org/testcontainers/junit/BaseComposeTest.java +++ b/core/src/test/java/org/testcontainers/junit/BaseComposeTest.java @@ -1,13 +1,13 @@ package org.testcontainers.junit; import com.github.dockerjava.api.model.Network; -import org.junit.After; -import org.junit.Assume; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import org.testcontainers.DockerClientFactory; import org.testcontainers.containers.ComposeContainer; +import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.TestEnvironment; import redis.clients.jedis.Jedis; @@ -16,7 +16,9 @@ import java.util.stream.Collectors; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assumptions.assumeThat; +@Testcontainers public abstract class BaseComposeTest { protected static final int REDIS_PORT = 6379; @@ -25,9 +27,11 @@ public abstract class BaseComposeTest { private List existingNetworks = new ArrayList<>(); - @BeforeClass + @BeforeAll public static void checkVersion() { - Assume.assumeTrue(TestEnvironment.dockerApiAtLeast("1.22")); + assumeThat(TestEnvironment.dockerApiAtLeast("1.22")) + .as("dockerApiAtLeast(\"1.22\")") + .isTrue(); } @Test @@ -61,12 +65,12 @@ public void secondTest() { // However, @Rule creates a separate DockerComposeContainer instance per test, so this just shouldn't happen } - @Before + @BeforeEach public void captureNetworks() { existingNetworks.addAll(findAllNetworks()); } - @After + @AfterEach public void verifyNoNetworks() { assertThat(findAllNetworks()).as("The networks").isEqualTo(existingNetworks); } diff --git a/core/src/test/java/org/testcontainers/junit/BaseDockerComposeTest.java b/core/src/test/java/org/testcontainers/junit/BaseDockerComposeTest.java index c1aee4d7f2b..74c05c3e585 100644 --- a/core/src/test/java/org/testcontainers/junit/BaseDockerComposeTest.java +++ b/core/src/test/java/org/testcontainers/junit/BaseDockerComposeTest.java @@ -1,13 +1,13 @@ package org.testcontainers.junit; import com.github.dockerjava.api.model.Network; -import org.junit.After; -import org.junit.Assume; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import org.testcontainers.DockerClientFactory; import org.testcontainers.containers.DockerComposeContainer; +import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.TestEnvironment; import redis.clients.jedis.Jedis; @@ -16,10 +16,12 @@ import java.util.stream.Collectors; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assumptions.assumeThat; /** * Created by rnorth on 21/05/2016. */ +@Testcontainers public abstract class BaseDockerComposeTest { protected static final int REDIS_PORT = 6379; @@ -28,9 +30,11 @@ public abstract class BaseDockerComposeTest { private List existingNetworks = new ArrayList<>(); - @BeforeClass + @BeforeAll public static void checkVersion() { - Assume.assumeTrue(TestEnvironment.dockerApiAtLeast("1.22")); + assumeThat(TestEnvironment.dockerApiAtLeast("1.22")) + .as("dockerApiAtLeast(\"1.22\")") + .isTrue(); } @Test @@ -64,12 +68,12 @@ public void secondTest() { // However, @Rule creates a separate DockerComposeContainer instance per test, so this just shouldn't happen } - @Before + @BeforeEach public void captureNetworks() { existingNetworks.addAll(findAllNetworks()); } - @After + @AfterEach public void verifyNoNetworks() { assertThat(findAllNetworks()).as("The networks").isEqualTo(existingNetworks); } diff --git a/core/src/test/java/org/testcontainers/junit/ComposeContainerOverrideTest.java b/core/src/test/java/org/testcontainers/junit/ComposeContainerOverrideTest.java index 453fe9207ad..7e081d18ed9 100644 --- a/core/src/test/java/org/testcontainers/junit/ComposeContainerOverrideTest.java +++ b/core/src/test/java/org/testcontainers/junit/ComposeContainerOverrideTest.java @@ -1,7 +1,7 @@ package org.testcontainers.junit; import com.github.dockerjava.api.command.InspectContainerResponse; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.ComposeContainer; import org.testcontainers.containers.ContainerState; diff --git a/core/src/test/java/org/testcontainers/junit/ComposeContainerPortViaEnvTest.java b/core/src/test/java/org/testcontainers/junit/ComposeContainerPortViaEnvTest.java index b27f4b080da..b85b9f2d251 100644 --- a/core/src/test/java/org/testcontainers/junit/ComposeContainerPortViaEnvTest.java +++ b/core/src/test/java/org/testcontainers/junit/ComposeContainerPortViaEnvTest.java @@ -1,13 +1,13 @@ package org.testcontainers.junit; -import org.junit.Rule; import org.testcontainers.containers.ComposeContainer; +import org.testcontainers.junit.jupiter.Container; import java.io.File; public class ComposeContainerPortViaEnvTest extends BaseComposeTest { - @Rule + @Container public ComposeContainer environment = new ComposeContainer( new File("src/test/resources/v2-compose-test-port-via-env.yml") ) diff --git a/core/src/test/java/org/testcontainers/junit/ComposeContainerScalingTest.java b/core/src/test/java/org/testcontainers/junit/ComposeContainerScalingTest.java index 83bc894b516..4ef2e29ff86 100644 --- a/core/src/test/java/org/testcontainers/junit/ComposeContainerScalingTest.java +++ b/core/src/test/java/org/testcontainers/junit/ComposeContainerScalingTest.java @@ -1,30 +1,34 @@ package org.testcontainers.junit; -import org.junit.Assume; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.ComposeContainer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.TestEnvironment; import redis.clients.jedis.Jedis; import java.io.File; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assumptions.assumeThat; +@Testcontainers public class ComposeContainerScalingTest { private static final int REDIS_PORT = 6379; private Jedis[] clients = new Jedis[3]; - @BeforeClass + @BeforeAll public static void checkVersion() { - Assume.assumeTrue(TestEnvironment.dockerApiAtLeast("1.22")); + assumeThat(TestEnvironment.dockerApiAtLeast("1.22")) + .as("dockerApiAtLeast(\"1.22\")") + .isTrue(); } - @Rule + @Container public ComposeContainer environment = new ComposeContainer( new File("src/test/resources/composev2/scaled-compose-test.yml") ) @@ -33,7 +37,7 @@ public static void checkVersion() { .withExposedService("redis-2", REDIS_PORT) // explicit service index .withExposedService("redis", 3, REDIS_PORT); // explicit service index via parameter - @Before + @BeforeEach public void setupClients() { for (int i = 0; i < 3; i++) { String name = String.format("redis-%d", i + 1); diff --git a/core/src/test/java/org/testcontainers/junit/ComposeContainerTest.java b/core/src/test/java/org/testcontainers/junit/ComposeContainerTest.java index 39c7ff2baf5..c90089ea8a7 100644 --- a/core/src/test/java/org/testcontainers/junit/ComposeContainerTest.java +++ b/core/src/test/java/org/testcontainers/junit/ComposeContainerTest.java @@ -1,10 +1,10 @@ package org.testcontainers.junit; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.ComposeContainer; import org.testcontainers.containers.ContainerState; import org.testcontainers.containers.DockerComposeContainer; +import org.testcontainers.junit.jupiter.Container; import java.io.File; import java.io.IOException; @@ -17,8 +17,8 @@ public class ComposeContainerTest extends BaseComposeTest { - @Rule // composeContainerConstructor { + @Container public ComposeContainer environment = new ComposeContainer( new File("src/test/resources/composev2/compose-test.yml") ) diff --git a/core/src/test/java/org/testcontainers/junit/ComposeContainerVolumeRemovalTest.java b/core/src/test/java/org/testcontainers/junit/ComposeContainerVolumeRemovalTest.java index 65cc7b92aa5..35f31c61d78 100644 --- a/core/src/test/java/org/testcontainers/junit/ComposeContainerVolumeRemovalTest.java +++ b/core/src/test/java/org/testcontainers/junit/ComposeContainerVolumeRemovalTest.java @@ -1,8 +1,8 @@ package org.testcontainers.junit; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.testcontainers.DockerClientFactory; import org.testcontainers.containers.ComposeContainer; @@ -15,7 +15,8 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; -@RunWith(Parameterized.class) +@ParameterizedClass(name = "removeVolumes = {0}") +@MethodSource("params") public class ComposeContainerVolumeRemovalTest { public ComposeContainerVolumeRemovalTest( @@ -30,7 +31,6 @@ public ComposeContainerVolumeRemovalTest( public final boolean shouldVolumesBePresentAfterRunning; - @Parameterized.Parameters(name = "removeVolumes = {0}") public static Object[][] params() { return new Object[][] { { true, false }, { false, true } }; } diff --git a/core/src/test/java/org/testcontainers/junit/ComposeContainerWithBuildTest.java b/core/src/test/java/org/testcontainers/junit/ComposeContainerWithBuildTest.java index 7d13f72e300..a8251f94cdb 100644 --- a/core/src/test/java/org/testcontainers/junit/ComposeContainerWithBuildTest.java +++ b/core/src/test/java/org/testcontainers/junit/ComposeContainerWithBuildTest.java @@ -1,9 +1,9 @@ package org.testcontainers.junit; import com.github.dockerjava.api.model.Container; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.rnorth.ducttape.unreliables.Unreliables; import org.testcontainers.DockerClientFactory; import org.testcontainers.containers.ComposeContainer; @@ -15,7 +15,8 @@ import static org.assertj.core.api.Assertions.assertThat; -@RunWith(Parameterized.class) +@ParameterizedClass(name = "removeMode = {0}") +@MethodSource("params") public class ComposeContainerWithBuildTest { public ComposeContainerWithBuildTest( @@ -34,7 +35,6 @@ public ComposeContainerWithBuildTest( public final boolean shouldPulledImageBePresentAfterRunning; - @Parameterized.Parameters(name = "removeMode = {0}") public static Object[][] params() { return new Object[][] { { null, true, true }, diff --git a/core/src/test/java/org/testcontainers/junit/ComposeContainerWithCopyFilesTest.java b/core/src/test/java/org/testcontainers/junit/ComposeContainerWithCopyFilesTest.java index 2b1e2cd4081..3cfa5b88cfd 100644 --- a/core/src/test/java/org/testcontainers/junit/ComposeContainerWithCopyFilesTest.java +++ b/core/src/test/java/org/testcontainers/junit/ComposeContainerWithCopyFilesTest.java @@ -1,7 +1,7 @@ package org.testcontainers.junit; import io.restassured.RestAssured; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.ComposeContainer; import org.testcontainers.containers.ContainerLaunchException; diff --git a/core/src/test/java/org/testcontainers/junit/ComposeContainerWithOptionsTest.java b/core/src/test/java/org/testcontainers/junit/ComposeContainerWithOptionsTest.java index 9a6c581eb3b..9dc57168388 100644 --- a/core/src/test/java/org/testcontainers/junit/ComposeContainerWithOptionsTest.java +++ b/core/src/test/java/org/testcontainers/junit/ComposeContainerWithOptionsTest.java @@ -2,10 +2,10 @@ import com.google.common.collect.ImmutableSet; import org.assertj.core.api.Assumptions; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.testcontainers.containers.ComposeContainer; import org.testcontainers.utility.CommandLine; @@ -17,7 +17,10 @@ /** * Tests the options associated with the docker-compose command. */ -@RunWith(Parameterized.class) +@ParameterizedClass( + name = "docker-compose test [compose file: {0}, local: {1}, options: {2}, expected result: {3}]" +) +@MethodSource("parameters") public class ComposeContainerWithOptionsTest { public ComposeContainerWithOptionsTest( @@ -40,9 +43,6 @@ public ComposeContainerWithOptionsTest( private final boolean expectError; - @Parameterized.Parameters( - name = "docker-compose test [compose file: {0}, local: {1}, options: {2}, expected result: {3}]" - ) public static Object[][] params() { return new Object[][] { // Test the happy day case. THe compatibility option should be accepted by docker-compose. @@ -76,7 +76,7 @@ public static Object[][] params() { }; } - @Before + @BeforeEach public void setUp() { if (this.localMode) { Assumptions diff --git a/core/src/test/java/org/testcontainers/junit/ComposeContainerWithWaitStrategies.java b/core/src/test/java/org/testcontainers/junit/ComposeContainerWithWaitStrategies.java index 1304413dce5..bbced0a3664 100644 --- a/core/src/test/java/org/testcontainers/junit/ComposeContainerWithWaitStrategies.java +++ b/core/src/test/java/org/testcontainers/junit/ComposeContainerWithWaitStrategies.java @@ -1,6 +1,6 @@ package org.testcontainers.junit; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.ComposeContainer; import org.testcontainers.containers.wait.strategy.Wait; diff --git a/core/src/test/java/org/testcontainers/junit/ComposeErrorHandlingTest.java b/core/src/test/java/org/testcontainers/junit/ComposeErrorHandlingTest.java index 496ede74497..8e168ce6168 100644 --- a/core/src/test/java/org/testcontainers/junit/ComposeErrorHandlingTest.java +++ b/core/src/test/java/org/testcontainers/junit/ComposeErrorHandlingTest.java @@ -1,6 +1,6 @@ package org.testcontainers.junit; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.ComposeContainer; import java.io.File; diff --git a/core/src/test/java/org/testcontainers/junit/ComposePassthroughTest.java b/core/src/test/java/org/testcontainers/junit/ComposePassthroughTest.java index d1724cb1e70..47a9d1218c5 100644 --- a/core/src/test/java/org/testcontainers/junit/ComposePassthroughTest.java +++ b/core/src/test/java/org/testcontainers/junit/ComposePassthroughTest.java @@ -1,12 +1,12 @@ package org.testcontainers.junit; -import org.junit.Assume; -import org.junit.BeforeClass; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.ComposeContainer; import org.testcontainers.containers.ContainerState; import org.testcontainers.containers.wait.strategy.HostPortWaitStrategy; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.TestEnvironment; import java.io.File; @@ -14,17 +14,21 @@ import java.util.Objects; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assumptions.assumeThat; +@Testcontainers public class ComposePassthroughTest { private final TestWaitStrategy waitStrategy = new TestWaitStrategy(); - @BeforeClass + @BeforeAll public static void checkVersion() { - Assume.assumeTrue(TestEnvironment.dockerApiAtLeast("1.22")); + assumeThat(TestEnvironment.dockerApiAtLeast("1.22")) + .as("dockerApiAtLeast(\"1.22\")") + .isTrue(); } - @Rule + @Container public ComposeContainer compose = new ComposeContainer( new File("src/test/resources/v2-compose-test-passthrough.yml") ) diff --git a/core/src/test/java/org/testcontainers/junit/ComposeWaitStrategyTest.java b/core/src/test/java/org/testcontainers/junit/ComposeWaitStrategyTest.java index a77f80d227e..de192e234ab 100644 --- a/core/src/test/java/org/testcontainers/junit/ComposeWaitStrategyTest.java +++ b/core/src/test/java/org/testcontainers/junit/ComposeWaitStrategyTest.java @@ -1,8 +1,8 @@ package org.testcontainers.junit; -import org.junit.After; -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.junit.runner.Description; import org.mockito.Mockito; import org.testcontainers.containers.ComposeContainer; @@ -22,12 +22,12 @@ public class ComposeWaitStrategyTest { private ComposeContainer environment; - @Before + @BeforeEach public final void setUp() { environment = new ComposeContainer(new File("src/test/resources/composev2/compose-test.yml")); } - @After + @AfterEach public final void cleanUp() { environment.stop(); } diff --git a/core/src/test/java/org/testcontainers/junit/ComposeWithIdentifierTest.java b/core/src/test/java/org/testcontainers/junit/ComposeWithIdentifierTest.java index f94449bb39f..44ad10a5583 100644 --- a/core/src/test/java/org/testcontainers/junit/ComposeWithIdentifierTest.java +++ b/core/src/test/java/org/testcontainers/junit/ComposeWithIdentifierTest.java @@ -1,13 +1,13 @@ package org.testcontainers.junit; -import org.junit.Rule; import org.testcontainers.containers.ComposeContainer; +import org.testcontainers.junit.jupiter.Container; import java.io.File; public class ComposeWithIdentifierTest extends BaseComposeTest { - @Rule + @Container public ComposeContainer environment = new ComposeContainer( "TEST", new File("src/test/resources/v2-compose-test.yml") diff --git a/core/src/test/java/org/testcontainers/junit/ComposeWithNetworkTest.java b/core/src/test/java/org/testcontainers/junit/ComposeWithNetworkTest.java index 3ce63b2a5fe..7182155d491 100644 --- a/core/src/test/java/org/testcontainers/junit/ComposeWithNetworkTest.java +++ b/core/src/test/java/org/testcontainers/junit/ComposeWithNetworkTest.java @@ -1,13 +1,13 @@ package org.testcontainers.junit; -import org.junit.Rule; import org.testcontainers.containers.ComposeContainer; +import org.testcontainers.junit.jupiter.Container; import java.io.File; public class ComposeWithNetworkTest extends BaseComposeTest { - @Rule + @Container public ComposeContainer environment = new ComposeContainer( new File("src/test/resources/v2-compose-test-with-network.yml") ) diff --git a/core/src/test/java/org/testcontainers/junit/CopyFileToContainerTest.java b/core/src/test/java/org/testcontainers/junit/CopyFileToContainerTest.java index 1aa017d6894..f0889d35922 100644 --- a/core/src/test/java/org/testcontainers/junit/CopyFileToContainerTest.java +++ b/core/src/test/java/org/testcontainers/junit/CopyFileToContainerTest.java @@ -2,8 +2,8 @@ import com.google.common.io.Files; import com.google.common.io.Resources; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.testcontainers.TestImages; import org.testcontainers.containers.BindMode; import org.testcontainers.containers.GenericContainer; @@ -24,7 +24,7 @@ public class CopyFileToContainerTest { private static String fileName = "test-resource.txt"; - @Before + @BeforeEach public void setup() throws IOException { destinationOnHost = File.createTempFile("testcontainers", null).getAbsolutePath(); } diff --git a/core/src/test/java/org/testcontainers/junit/DependenciesTest.java b/core/src/test/java/org/testcontainers/junit/DependenciesTest.java index effa9b06447..c52f718b2e9 100644 --- a/core/src/test/java/org/testcontainers/junit/DependenciesTest.java +++ b/core/src/test/java/org/testcontainers/junit/DependenciesTest.java @@ -1,7 +1,7 @@ package org.testcontainers.junit; import lombok.Getter; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.TestImages; import org.testcontainers.containers.GenericContainer; import org.testcontainers.containers.startupcheck.OneShotStartupCheckStrategy; diff --git a/core/src/test/java/org/testcontainers/junit/DockerComposeContainerPortViaEnvTest.java b/core/src/test/java/org/testcontainers/junit/DockerComposeContainerPortViaEnvTest.java index 849e2a8e6a6..de4beb956f4 100644 --- a/core/src/test/java/org/testcontainers/junit/DockerComposeContainerPortViaEnvTest.java +++ b/core/src/test/java/org/testcontainers/junit/DockerComposeContainerPortViaEnvTest.java @@ -1,13 +1,15 @@ package org.testcontainers.junit; -import org.junit.Rule; import org.testcontainers.containers.DockerComposeContainer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import java.io.File; +@Testcontainers public class DockerComposeContainerPortViaEnvTest extends BaseDockerComposeTest { - @Rule + @Container public DockerComposeContainer environment = new DockerComposeContainer( new File("src/test/resources/v2-compose-test-port-via-env.yml") ) diff --git a/core/src/test/java/org/testcontainers/junit/DockerComposeContainerScalingTest.java b/core/src/test/java/org/testcontainers/junit/DockerComposeContainerScalingTest.java index 5571e42dcf7..c094e46400a 100644 --- a/core/src/test/java/org/testcontainers/junit/DockerComposeContainerScalingTest.java +++ b/core/src/test/java/org/testcontainers/junit/DockerComposeContainerScalingTest.java @@ -1,33 +1,37 @@ package org.testcontainers.junit; -import org.junit.Assume; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.DockerComposeContainer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.TestEnvironment; import redis.clients.jedis.Jedis; import java.io.File; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assumptions.assumeThat; /** * Created by rnorth on 08/08/2015. */ +@Testcontainers public class DockerComposeContainerScalingTest { private static final int REDIS_PORT = 6379; private Jedis[] clients = new Jedis[3]; - @BeforeClass + @BeforeAll public static void checkVersion() { - Assume.assumeTrue(TestEnvironment.dockerApiAtLeast("1.22")); + assumeThat(TestEnvironment.dockerApiAtLeast("1.22")) + .as("dockerApiAtLeast(\"1.22\")") + .isTrue(); } - @Rule + @Container public DockerComposeContainer environment = new DockerComposeContainer( new File("src/test/resources/scaled-compose-test.yml") ) @@ -36,7 +40,7 @@ public static void checkVersion() { .withExposedService("redis_2", REDIS_PORT) // explicit service index .withExposedService("redis", 3, REDIS_PORT); // explicit service index via parameter - @Before + @BeforeEach public void setupClients() { for (int i = 0; i < 3; i++) { String name = String.format("redis_%d", i + 1); diff --git a/core/src/test/java/org/testcontainers/junit/DockerComposeContainerTest.java b/core/src/test/java/org/testcontainers/junit/DockerComposeContainerTest.java index 96989af90a4..0ac76fa3a92 100644 --- a/core/src/test/java/org/testcontainers/junit/DockerComposeContainerTest.java +++ b/core/src/test/java/org/testcontainers/junit/DockerComposeContainerTest.java @@ -1,9 +1,9 @@ package org.testcontainers.junit; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.ContainerState; import org.testcontainers.containers.DockerComposeContainer; +import org.testcontainers.junit.jupiter.Container; import java.io.File; import java.io.IOException; @@ -19,7 +19,7 @@ */ public class DockerComposeContainerTest extends BaseDockerComposeTest { - @Rule + @Container public DockerComposeContainer environment = new DockerComposeContainer( new File("src/test/resources/compose-test.yml") ) diff --git a/core/src/test/java/org/testcontainers/junit/DockerComposeContainerVolumeRemovalTest.java b/core/src/test/java/org/testcontainers/junit/DockerComposeContainerVolumeRemovalTest.java index 764000a3cae..d1c87e440a9 100644 --- a/core/src/test/java/org/testcontainers/junit/DockerComposeContainerVolumeRemovalTest.java +++ b/core/src/test/java/org/testcontainers/junit/DockerComposeContainerVolumeRemovalTest.java @@ -1,8 +1,8 @@ package org.testcontainers.junit; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.testcontainers.DockerClientFactory; import org.testcontainers.containers.DockerComposeContainer; @@ -15,7 +15,8 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; -@RunWith(Parameterized.class) +@ParameterizedClass(name = "removeVolumes = {0}") +@MethodSource("params") public class DockerComposeContainerVolumeRemovalTest { public DockerComposeContainerVolumeRemovalTest( @@ -30,7 +31,6 @@ public DockerComposeContainerVolumeRemovalTest( public final boolean shouldVolumesBePresentAfterRunning; - @Parameterized.Parameters(name = "removeVolumes = {0}") public static Object[][] params() { return new Object[][] { { true, false }, { false, true } }; } diff --git a/core/src/test/java/org/testcontainers/junit/DockerComposeContainerWithBuildTest.java b/core/src/test/java/org/testcontainers/junit/DockerComposeContainerWithBuildTest.java index ea7e35689d0..cbd2d082415 100644 --- a/core/src/test/java/org/testcontainers/junit/DockerComposeContainerWithBuildTest.java +++ b/core/src/test/java/org/testcontainers/junit/DockerComposeContainerWithBuildTest.java @@ -1,9 +1,9 @@ package org.testcontainers.junit; import com.github.dockerjava.api.model.Container; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.rnorth.ducttape.unreliables.Unreliables; import org.testcontainers.DockerClientFactory; import org.testcontainers.containers.DockerComposeContainer; @@ -15,7 +15,8 @@ import static org.assertj.core.api.Assertions.assertThat; -@RunWith(Parameterized.class) +@ParameterizedClass(name = "removeMode = {0}") +@MethodSource("params") public class DockerComposeContainerWithBuildTest { public DockerComposeContainerWithBuildTest( @@ -34,7 +35,6 @@ public DockerComposeContainerWithBuildTest( public final boolean shouldPulledImageBePresentAfterRunning; - @Parameterized.Parameters(name = "removeMode = {0}") public static Object[][] params() { return new Object[][] { { null, true, true }, diff --git a/core/src/test/java/org/testcontainers/junit/DockerComposeContainerWithCopyFilesTest.java b/core/src/test/java/org/testcontainers/junit/DockerComposeContainerWithCopyFilesTest.java index 46dd4c65b3c..ba265e7e9d4 100644 --- a/core/src/test/java/org/testcontainers/junit/DockerComposeContainerWithCopyFilesTest.java +++ b/core/src/test/java/org/testcontainers/junit/DockerComposeContainerWithCopyFilesTest.java @@ -1,7 +1,7 @@ package org.testcontainers.junit; import io.restassured.RestAssured; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.DockerComposeContainer; import java.io.File; diff --git a/core/src/test/java/org/testcontainers/junit/DockerComposeContainerWithOptionsTest.java b/core/src/test/java/org/testcontainers/junit/DockerComposeContainerWithOptionsTest.java index ae5dbc1d0b4..a1a61be6d0e 100644 --- a/core/src/test/java/org/testcontainers/junit/DockerComposeContainerWithOptionsTest.java +++ b/core/src/test/java/org/testcontainers/junit/DockerComposeContainerWithOptionsTest.java @@ -2,10 +2,10 @@ import com.google.common.collect.ImmutableSet; import org.assertj.core.api.Assumptions; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.testcontainers.containers.DockerComposeContainer; import org.testcontainers.utility.CommandLine; @@ -17,7 +17,10 @@ /** * Tests the options associated with the docker-compose command. */ -@RunWith(Parameterized.class) +@ParameterizedClass( + name = "docker-compose test [compose file: {0}, local: {1}, options: {2}, expected result: {3}]" +) +@MethodSource("params") public class DockerComposeContainerWithOptionsTest { public DockerComposeContainerWithOptionsTest( @@ -40,9 +43,6 @@ public DockerComposeContainerWithOptionsTest( private final boolean expectError; - @Parameterized.Parameters( - name = "docker-compose test [compose file: {0}, local: {1}, options: {2}, expected result: {3}]" - ) public static Object[][] params() { return new Object[][] { // Test the happy day case. THe compatibility option should be accepted by docker-compose. @@ -76,7 +76,7 @@ public static Object[][] params() { }; } - @Before + @BeforeEach public void setUp() { if (this.localMode) { Assumptions diff --git a/core/src/test/java/org/testcontainers/junit/DockerComposeErrorHandlingTest.java b/core/src/test/java/org/testcontainers/junit/DockerComposeErrorHandlingTest.java index 63383bb7175..5e429746600 100644 --- a/core/src/test/java/org/testcontainers/junit/DockerComposeErrorHandlingTest.java +++ b/core/src/test/java/org/testcontainers/junit/DockerComposeErrorHandlingTest.java @@ -1,6 +1,6 @@ package org.testcontainers.junit; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.DockerComposeContainer; import java.io.File; diff --git a/core/src/test/java/org/testcontainers/junit/DockerComposeLocalImageTest.java b/core/src/test/java/org/testcontainers/junit/DockerComposeLocalImageTest.java index 69b674bca71..3e061bacca3 100644 --- a/core/src/test/java/org/testcontainers/junit/DockerComposeLocalImageTest.java +++ b/core/src/test/java/org/testcontainers/junit/DockerComposeLocalImageTest.java @@ -2,7 +2,7 @@ import com.github.dockerjava.api.DockerClient; import com.github.dockerjava.core.command.PullImageResultCallback; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.DockerClientFactory; import org.testcontainers.containers.DockerComposeContainer; diff --git a/core/src/test/java/org/testcontainers/junit/DockerComposeLogConsumerTest.java b/core/src/test/java/org/testcontainers/junit/DockerComposeLogConsumerTest.java index 97e686a9b92..de0a13cfecf 100644 --- a/core/src/test/java/org/testcontainers/junit/DockerComposeLogConsumerTest.java +++ b/core/src/test/java/org/testcontainers/junit/DockerComposeLogConsumerTest.java @@ -1,6 +1,6 @@ package org.testcontainers.junit; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.junit.runner.Description; import org.testcontainers.containers.DockerComposeContainer; import org.testcontainers.containers.output.OutputFrame.OutputType; diff --git a/core/src/test/java/org/testcontainers/junit/DockerComposePassthroughTest.java b/core/src/test/java/org/testcontainers/junit/DockerComposePassthroughTest.java index 10a26306248..4717ce7067f 100644 --- a/core/src/test/java/org/testcontainers/junit/DockerComposePassthroughTest.java +++ b/core/src/test/java/org/testcontainers/junit/DockerComposePassthroughTest.java @@ -1,12 +1,12 @@ package org.testcontainers.junit; -import org.junit.Assume; -import org.junit.BeforeClass; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.ContainerState; import org.testcontainers.containers.DockerComposeContainer; import org.testcontainers.containers.wait.strategy.HostPortWaitStrategy; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.TestEnvironment; import java.io.File; @@ -14,20 +14,24 @@ import java.util.Objects; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assumptions.assumeThat; /** * Created by rnorth on 11/06/2016. */ +@Testcontainers public class DockerComposePassthroughTest { private final TestWaitStrategy waitStrategy = new TestWaitStrategy(); - @BeforeClass + @BeforeAll public static void checkVersion() { - Assume.assumeTrue(TestEnvironment.dockerApiAtLeast("1.22")); + assumeThat(TestEnvironment.dockerApiAtLeast("1.22")) + .as("dockerApiAtLeast(\"1.22\")") + .isTrue(); } - @Rule + @Container public DockerComposeContainer compose = new DockerComposeContainer( new File("src/test/resources/v2-compose-test-passthrough.yml") ) diff --git a/core/src/test/java/org/testcontainers/junit/DockerComposeServiceTest.java b/core/src/test/java/org/testcontainers/junit/DockerComposeServiceTest.java index ccca85407f3..a3bb5950a9d 100644 --- a/core/src/test/java/org/testcontainers/junit/DockerComposeServiceTest.java +++ b/core/src/test/java/org/testcontainers/junit/DockerComposeServiceTest.java @@ -1,16 +1,17 @@ package org.testcontainers.junit; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.DockerComposeContainer; +import org.testcontainers.junit.jupiter.Container; import java.io.File; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.catchThrowableOfType; public class DockerComposeServiceTest extends BaseDockerComposeTest { - @Rule + @Container public DockerComposeContainer environment = new DockerComposeContainer( new File("src/test/resources/compose-test.yml") ) @@ -22,9 +23,11 @@ protected DockerComposeContainer getEnvironment() { return environment; } - @Test(expected = IllegalArgumentException.class) + @Test public void testDbIsNotStarting() { - environment.getServicePort("db_1", 10001); + catchThrowableOfType(IllegalArgumentException.class, () -> + environment.getServicePort("db_1", 10001) + ); } @Test diff --git a/core/src/test/java/org/testcontainers/junit/DockerComposeV2FormatTest.java b/core/src/test/java/org/testcontainers/junit/DockerComposeV2FormatTest.java index f3dc2ee3cc8..92659b34595 100644 --- a/core/src/test/java/org/testcontainers/junit/DockerComposeV2FormatTest.java +++ b/core/src/test/java/org/testcontainers/junit/DockerComposeV2FormatTest.java @@ -1,7 +1,7 @@ package org.testcontainers.junit; -import org.junit.Rule; import org.testcontainers.containers.DockerComposeContainer; +import org.testcontainers.junit.jupiter.Container; import java.io.File; @@ -10,7 +10,7 @@ */ public class DockerComposeV2FormatTest extends BaseDockerComposeTest { - @Rule + @Container public DockerComposeContainer environment = new DockerComposeContainer( new File("src/test/resources/v2-compose-test.yml") ) diff --git a/core/src/test/java/org/testcontainers/junit/DockerComposeV2FormatWithIdentifierTest.java b/core/src/test/java/org/testcontainers/junit/DockerComposeV2FormatWithIdentifierTest.java index 90c041b53b6..601bd770baa 100644 --- a/core/src/test/java/org/testcontainers/junit/DockerComposeV2FormatWithIdentifierTest.java +++ b/core/src/test/java/org/testcontainers/junit/DockerComposeV2FormatWithIdentifierTest.java @@ -1,13 +1,13 @@ package org.testcontainers.junit; -import org.junit.Rule; import org.testcontainers.containers.DockerComposeContainer; +import org.testcontainers.junit.jupiter.Container; import java.io.File; public class DockerComposeV2FormatWithIdentifierTest extends BaseDockerComposeTest { - @Rule + @Container public DockerComposeContainer environment = new DockerComposeContainer( "TEST", new File("src/test/resources/v2-compose-test.yml") diff --git a/core/src/test/java/org/testcontainers/junit/DockerComposeV2WithNetworkTest.java b/core/src/test/java/org/testcontainers/junit/DockerComposeV2WithNetworkTest.java index b28dfc3ee51..7512f8ba00d 100644 --- a/core/src/test/java/org/testcontainers/junit/DockerComposeV2WithNetworkTest.java +++ b/core/src/test/java/org/testcontainers/junit/DockerComposeV2WithNetworkTest.java @@ -1,13 +1,13 @@ package org.testcontainers.junit; -import org.junit.Rule; import org.testcontainers.containers.DockerComposeContainer; +import org.testcontainers.junit.jupiter.Container; import java.io.File; public class DockerComposeV2WithNetworkTest extends BaseDockerComposeTest { - @Rule + @Container public DockerComposeContainer environment = new DockerComposeContainer( new File("src/test/resources/v2-compose-test-with-network.yml") ) diff --git a/core/src/test/java/org/testcontainers/junit/DockerComposeWaitStrategyTest.java b/core/src/test/java/org/testcontainers/junit/DockerComposeWaitStrategyTest.java index b110e776285..f731d449327 100644 --- a/core/src/test/java/org/testcontainers/junit/DockerComposeWaitStrategyTest.java +++ b/core/src/test/java/org/testcontainers/junit/DockerComposeWaitStrategyTest.java @@ -1,8 +1,8 @@ package org.testcontainers.junit; -import org.junit.After; -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.junit.runner.Description; import org.mockito.Mockito; import org.testcontainers.containers.DockerComposeContainer; @@ -22,12 +22,12 @@ public class DockerComposeWaitStrategyTest { private DockerComposeContainer environment; - @Before + @BeforeEach public final void setUp() { environment = new DockerComposeContainer<>(new File("src/test/resources/compose-test.yml")); } - @After + @AfterEach public final void cleanUp() { environment.stop(); } diff --git a/core/src/test/java/org/testcontainers/junit/DockerNetworkModeTest.java b/core/src/test/java/org/testcontainers/junit/DockerNetworkModeTest.java index b048e4716fd..e2060ef025f 100644 --- a/core/src/test/java/org/testcontainers/junit/DockerNetworkModeTest.java +++ b/core/src/test/java/org/testcontainers/junit/DockerNetworkModeTest.java @@ -2,7 +2,7 @@ import com.github.dockerjava.api.model.NetworkSettings; import lombok.extern.slf4j.Slf4j; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.TestImages; import org.testcontainers.containers.GenericContainer; import org.testcontainers.containers.startupcheck.OneShotStartupCheckStrategy; diff --git a/core/src/test/java/org/testcontainers/junit/DockerfileContainerTest.java b/core/src/test/java/org/testcontainers/junit/DockerfileContainerTest.java index 9ed143aca9c..2a76099a023 100644 --- a/core/src/test/java/org/testcontainers/junit/DockerfileContainerTest.java +++ b/core/src/test/java/org/testcontainers/junit/DockerfileContainerTest.java @@ -4,10 +4,11 @@ import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClientBuilder; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.GenericContainer; import org.testcontainers.images.builder.ImageFromDockerfile; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import java.io.IOException; @@ -16,9 +17,10 @@ /** * Simple test case / demonstration of creating a fresh container image from a Dockerfile DSL */ +@Testcontainers public class DockerfileContainerTest { - @Rule + @Container public GenericContainer dslContainer = new GenericContainer( new ImageFromDockerfile("tcdockerfile/nginx", false) .withDockerfileFromBuilder(builder -> { diff --git a/core/src/test/java/org/testcontainers/junit/DockerfileTest.java b/core/src/test/java/org/testcontainers/junit/DockerfileTest.java index 113fd7f4c63..1b0b892e5cc 100644 --- a/core/src/test/java/org/testcontainers/junit/DockerfileTest.java +++ b/core/src/test/java/org/testcontainers/junit/DockerfileTest.java @@ -1,7 +1,7 @@ package org.testcontainers.junit; import com.github.dockerjava.api.command.BuildImageCmd; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.testcontainers.containers.GenericContainer; diff --git a/core/src/test/java/org/testcontainers/junit/ExecInContainerTest.java b/core/src/test/java/org/testcontainers/junit/ExecInContainerTest.java index a3dd21318d2..8a5aee5c855 100644 --- a/core/src/test/java/org/testcontainers/junit/ExecInContainerTest.java +++ b/core/src/test/java/org/testcontainers/junit/ExecInContainerTest.java @@ -1,20 +1,22 @@ package org.testcontainers.junit; -import org.junit.Assume; -import org.junit.ClassRule; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.TestImages; import org.testcontainers.containers.ExecConfig; import org.testcontainers.containers.GenericContainer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.TestEnvironment; import java.util.Collections; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assumptions.assumeThat; +@Testcontainers public class ExecInContainerTest { - @ClassRule + @Container public static GenericContainer redis = new GenericContainer<>(TestImages.REDIS_IMAGE).withExposedPorts(6379); @Test @@ -22,7 +24,9 @@ public void shouldExecuteCommand() throws Exception { // The older "lxc" execution driver doesn't support "exec". At the time of writing (2016/03/29), // that's the case for CircleCI. // Once they resolve the issue, this clause can be removed. - Assume.assumeTrue(TestEnvironment.dockerExecutionDriverSupportsExec()); + assumeThat(TestEnvironment.dockerExecutionDriverSupportsExec()) + .as("dockerExecutionDriverSupportsExec") + .isTrue(); final GenericContainer.ExecResult result = redis.execInContainer("redis-cli", "role"); assertThat(result.getStdout()) diff --git a/core/src/test/java/org/testcontainers/junit/FileOperationsTest.java b/core/src/test/java/org/testcontainers/junit/FileOperationsTest.java index 767deacfb00..d09cc909d47 100644 --- a/core/src/test/java/org/testcontainers/junit/FileOperationsTest.java +++ b/core/src/test/java/org/testcontainers/junit/FileOperationsTest.java @@ -4,9 +4,8 @@ import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; import org.apache.commons.io.output.CountingOutputStream; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; import org.testcontainers.TestImages; import org.testcontainers.containers.Container; import org.testcontainers.containers.GenericContainer; @@ -20,11 +19,12 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.assertj.core.api.Assertions.catchThrowableOfType; public class FileOperationsTest { - @Rule - public TemporaryFolder temporaryFolder = new TemporaryFolder(); + @TempDir + public File temporaryFolder; @Test public void copyFileToContainerFileTest() throws Exception { @@ -36,7 +36,7 @@ public void copyFileToContainerFileTest() throws Exception { final MountableFile mountableFile = MountableFile.forClasspathResource("test_copy_to_container.txt"); alpineCopyToContainer.copyFileToContainer(mountableFile, "/test.txt"); - File actualFile = new File(temporaryFolder.getRoot().getAbsolutePath() + "/test_copy_to_container.txt"); + File actualFile = new File(temporaryFolder.getAbsolutePath() + "/test_copy_to_container.txt"); alpineCopyToContainer.copyFileFromContainer("/test.txt", actualFile.getPath()); File expectedFile = new File(mountableFile.getResolvedPath()); @@ -46,7 +46,7 @@ public void copyFileToContainerFileTest() throws Exception { @Test public void copyLargeFilesToContainer() throws Exception { - File tempFile = temporaryFolder.newFile(); + File tempFile = new File(temporaryFolder, "copyLargeFilesToContainer.bin"); try ( GenericContainer alpineCopyToContainer = new GenericContainer<>(TestImages.ALPINE_IMAGE) // .withCommand("sleep", "infinity") @@ -91,7 +91,7 @@ public void copyFileToContainerFolderTest() throws Exception { final MountableFile mountableFile = MountableFile.forClasspathResource("test_copy_to_container.txt"); alpineCopyToContainer.copyFileToContainer(mountableFile, "/home/"); - File actualFile = new File(temporaryFolder.getRoot().getAbsolutePath() + "/test_copy_to_container.txt"); + File actualFile = new File(temporaryFolder.getAbsolutePath() + "/test_copy_to_container.txt"); alpineCopyToContainer.copyFileFromContainer("/home/test_copy_to_container.txt", actualFile.getPath()); File expectedFile = new File(mountableFile.getResolvedPath()); @@ -109,7 +109,7 @@ public void copyFolderToContainerFolderTest() throws Exception { final MountableFile mountableFile = MountableFile.forClasspathResource("mappable-resource/"); alpineCopyToContainer.copyFileToContainer(mountableFile, "/home/test/"); - File actualFile = new File(temporaryFolder.getRoot().getAbsolutePath() + "/test_copy_to_container.txt"); + File actualFile = new File(temporaryFolder.getAbsolutePath() + "/test_copy_to_container.txt"); alpineCopyToContainer.copyFileFromContainer("/home/test/test-resource.txt", actualFile.getPath()); File expectedFile = new File(mountableFile.getResolvedPath() + "/test-resource.txt"); @@ -117,14 +117,16 @@ public void copyFolderToContainerFolderTest() throws Exception { } } - @Test(expected = NotFoundException.class) + @Test public void copyFromContainerShouldFailBecauseNoFileTest() throws NotFoundException { try ( GenericContainer alpineCopyToContainer = new GenericContainer(TestImages.ALPINE_IMAGE) // .withCommand("top") ) { alpineCopyToContainer.start(); - alpineCopyToContainer.copyFileFromContainer("/home/test.txt", "src/test/resources/copy-from/test.txt"); + catchThrowableOfType(NotFoundException.class, () -> + alpineCopyToContainer.copyFileFromContainer("/home/test.txt", "src/test/resources/copy-from/test.txt") + ); } } @@ -138,7 +140,7 @@ public void shouldCopyFileFromContainerTest() throws IOException { final MountableFile mountableFile = MountableFile.forClasspathResource("test_copy_to_container.txt"); alpineCopyToContainer.copyFileToContainer(mountableFile, "/home/"); - File actualFile = new File(temporaryFolder.getRoot().getAbsolutePath() + "/test_copy_from_container.txt"); + File actualFile = new File(temporaryFolder.getAbsolutePath() + "/test_copy_from_container.txt"); alpineCopyToContainer.copyFileFromContainer("/home/test_copy_to_container.txt", actualFile.getPath()); File expectedFile = new File(mountableFile.getResolvedPath()); diff --git a/core/src/test/java/org/testcontainers/junit/FixedHostPortContainerTest.java b/core/src/test/java/org/testcontainers/junit/FixedHostPortContainerTest.java index a123b800f3a..7ea2ef532d7 100644 --- a/core/src/test/java/org/testcontainers/junit/FixedHostPortContainerTest.java +++ b/core/src/test/java/org/testcontainers/junit/FixedHostPortContainerTest.java @@ -1,7 +1,7 @@ package org.testcontainers.junit; import org.awaitility.Awaitility; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.TestImages; import org.testcontainers.containers.FixedHostPortGenericContainer; import org.testcontainers.containers.GenericContainer; diff --git a/core/src/test/java/org/testcontainers/junit/GenericContainerRuleTest.java b/core/src/test/java/org/testcontainers/junit/GenericContainerRuleTest.java index 5a9d7c1616d..ae4470eb444 100644 --- a/core/src/test/java/org/testcontainers/junit/GenericContainerRuleTest.java +++ b/core/src/test/java/org/testcontainers/junit/GenericContainerRuleTest.java @@ -14,10 +14,9 @@ import com.rabbitmq.client.Envelope; import org.apache.commons.io.FileUtils; import org.bson.Document; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Ignore; -import org.junit.Test; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; import org.rnorth.ducttape.RetryCountExceededException; import org.rnorth.ducttape.unreliables.Unreliables; import org.testcontainers.TestImages; @@ -68,7 +67,7 @@ public class GenericContainerRuleTest { /* * Test data setup */ - @BeforeClass + @BeforeAll public static void setupContent() throws FileNotFoundException { File contentFolder = new File(System.getProperty("user.home") + "/.tmp-test-container"); contentFolder.mkdir(); @@ -78,21 +77,21 @@ public static void setupContent() throws FileNotFoundException { /** * Redis */ - @ClassRule + @org.testcontainers.junit.jupiter.Container public static GenericContainer redis = new GenericContainer<>(TestImages.REDIS_IMAGE) .withExposedPorts(REDIS_PORT); /** * RabbitMQ */ - @ClassRule + @org.testcontainers.junit.jupiter.Container public static GenericContainer rabbitMq = new GenericContainer<>(TestImages.RABBITMQ_IMAGE) .withExposedPorts(RABBITMQ_PORT); /** * MongoDB */ - @ClassRule + @org.testcontainers.junit.jupiter.Container public static GenericContainer mongo = new GenericContainer<>(TestImages.MONGODB_IMAGE) .withExposedPorts(MONGO_PORT); @@ -100,7 +99,7 @@ public static void setupContent() throws FileNotFoundException { * Pass an environment variable to the container, then run a shell script that exposes the variable in a quick and * dirty way for testing. */ - @ClassRule + @org.testcontainers.junit.jupiter.Container public static GenericContainer alpineEnvVar = new GenericContainer<>(TestImages.ALPINE_IMAGE) .withExposedPorts(80) .withEnv("MAGIC_NUMBER", "4") @@ -111,7 +110,7 @@ public static void setupContent() throws FileNotFoundException { * Pass environment variables to the container, then run a shell script that exposes the variables in a quick and * dirty way for testing. */ - @ClassRule + @org.testcontainers.junit.jupiter.Container public static GenericContainer alpineEnvVarFromMap = new GenericContainer<>(TestImages.ALPINE_IMAGE) .withExposedPorts(80) .withEnv(ImmutableMap.of("FIRST", "42", "SECOND", "50")) @@ -120,7 +119,7 @@ public static void setupContent() throws FileNotFoundException { /** * Map a file on the classpath to a file in the container, and then expose the content for testing. */ - @ClassRule + @org.testcontainers.junit.jupiter.Container public static GenericContainer alpineClasspathResource = new GenericContainer<>(TestImages.ALPINE_IMAGE) .withExposedPorts(80) .withClasspathResourceMapping("mappable-resource/test-resource.txt", "/content.txt", BindMode.READ_ONLY) @@ -129,7 +128,7 @@ public static void setupContent() throws FileNotFoundException { /** * Map a file on the classpath to a file in the container, and then expose the content for testing. */ - @ClassRule + @org.testcontainers.junit.jupiter.Container public static GenericContainer alpineClasspathResourceSelinux = new GenericContainer<>(TestImages.ALPINE_IMAGE) .withExposedPorts(80) .withClasspathResourceMapping( @@ -143,7 +142,7 @@ public static void setupContent() throws FileNotFoundException { /** * Create a container with an extra host entry and expose the content of /etc/hosts for testing. */ - @ClassRule + @org.testcontainers.junit.jupiter.Container public static GenericContainer alpineExtrahost = new GenericContainer<>(TestImages.ALPINE_IMAGE) .withExposedPorts(80) .withExtraHost("somehost", "192.168.1.10") @@ -331,7 +330,7 @@ protected static void writeStringToFile(File contentFolder, String filename, Str } @Test - @Ignore //TODO investigate intermittent failures + @Disabled //TODO investigate intermittent failures public void failFastWhenContainerHaltsImmediately() { long startingTimeNano = System.nanoTime(); final GenericContainer failsImmediately = new GenericContainer<>(TestImages.ALPINE_IMAGE) diff --git a/core/src/test/java/org/testcontainers/junit/NonExistentImagePullTest.java b/core/src/test/java/org/testcontainers/junit/NonExistentImagePullTest.java index aff9b29cbe7..c5d7a17f12a 100644 --- a/core/src/test/java/org/testcontainers/junit/NonExistentImagePullTest.java +++ b/core/src/test/java/org/testcontainers/junit/NonExistentImagePullTest.java @@ -1,10 +1,13 @@ package org.testcontainers.junit; -import org.junit.Test; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.Timeout; import org.testcontainers.containers.ContainerFetchException; import org.testcontainers.containers.GenericContainer; import org.testcontainers.utility.DockerImageName; +import java.util.concurrent.TimeUnit; + import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.catchThrowable; @@ -13,7 +16,8 @@ */ public class NonExistentImagePullTest { - @Test(timeout = 60_000L) + @Test + @Timeout(value = 60, unit = TimeUnit.SECONDS) public void pullingNonExistentImageFailsGracefully() { assertThat( catchThrowable(() -> { diff --git a/core/src/test/java/org/testcontainers/junit/OutputStreamTest.java b/core/src/test/java/org/testcontainers/junit/OutputStreamTest.java index 17b1d247cbb..7d22ac22ace 100644 --- a/core/src/test/java/org/testcontainers/junit/OutputStreamTest.java +++ b/core/src/test/java/org/testcontainers/junit/OutputStreamTest.java @@ -1,7 +1,7 @@ package org.testcontainers.junit; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.Timeout; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.testcontainers.TestImages; @@ -10,6 +10,8 @@ import org.testcontainers.containers.output.Slf4jLogConsumer; import org.testcontainers.containers.output.ToStringConsumer; import org.testcontainers.containers.output.WaitingConsumer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; @@ -21,15 +23,17 @@ /** * Simple test for following container output. */ +@Testcontainers public class OutputStreamTest { - @Rule + @Container public GenericContainer container = new GenericContainer(TestImages.ALPINE_IMAGE) .withCommand("ping -c 5 127.0.0.1"); private static final Logger LOGGER = LoggerFactory.getLogger(OutputStreamTest.class); - @Test(timeout = 60_000L) + @Test + @Timeout(value = 60, unit = TimeUnit.SECONDS) public void testFetchStdout() throws TimeoutException { WaitingConsumer consumer = new WaitingConsumer(); @@ -42,7 +46,8 @@ public void testFetchStdout() throws TimeoutException { ); } - @Test(timeout = 60_000L) + @Test + @Timeout(value = 60, unit = TimeUnit.SECONDS) public void testFetchStdoutWithTimeout() { WaitingConsumer consumer = new WaitingConsumer(); @@ -65,7 +70,8 @@ public void testFetchStdoutWithTimeout() { .isInstanceOf(TimeoutException.class); } - @Test(timeout = 60_000L) + @Test + @Timeout(value = 60, unit = TimeUnit.SECONDS) public void testFetchStdoutWithNoLimit() throws TimeoutException { WaitingConsumer consumer = new WaitingConsumer(); @@ -76,7 +82,8 @@ public void testFetchStdoutWithNoLimit() throws TimeoutException { }); } - @Test(timeout = 60_000L) + @Test + @Timeout(value = 60, unit = TimeUnit.SECONDS) public void testLogConsumer() throws TimeoutException { WaitingConsumer waitingConsumer = new WaitingConsumer(); Slf4jLogConsumer logConsumer = new Slf4jLogConsumer(LOGGER); @@ -89,7 +96,8 @@ public void testLogConsumer() throws TimeoutException { }); } - @Test(timeout = 60_000L) + @Test + @Timeout(value = 60, unit = TimeUnit.SECONDS) public void testToStringConsumer() throws TimeoutException { WaitingConsumer waitingConsumer = new WaitingConsumer(); ToStringConsumer toStringConsumer = new ToStringConsumer(); diff --git a/core/src/test/java/org/testcontainers/junit/OutputStreamWithTTYTest.java b/core/src/test/java/org/testcontainers/junit/OutputStreamWithTTYTest.java index c340f26d3fb..94b6316d986 100644 --- a/core/src/test/java/org/testcontainers/junit/OutputStreamWithTTYTest.java +++ b/core/src/test/java/org/testcontainers/junit/OutputStreamWithTTYTest.java @@ -2,8 +2,8 @@ import lombok.extern.slf4j.Slf4j; import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.Timeout; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.Timeout; import org.testcontainers.TestImages; import org.testcontainers.containers.GenericContainer; import org.testcontainers.containers.output.OutputFrame; @@ -11,6 +11,8 @@ import org.testcontainers.containers.output.ToStringConsumer; import org.testcontainers.containers.output.WaitingConsumer; import org.testcontainers.containers.startupcheck.OneShotStartupCheckStrategy; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; @@ -20,17 +22,16 @@ import static org.assertj.core.api.Assertions.catchThrowable; @Slf4j +@Testcontainers +@Timeout(value = 10, unit = TimeUnit.SECONDS) public class OutputStreamWithTTYTest { - @Rule + @Container public GenericContainer container = new GenericContainer<>(TestImages.ALPINE_IMAGE) .withCommand("ls -1") .withStartupCheckStrategy(new OneShotStartupCheckStrategy()) .withCreateContainerCmdModifier(command -> command.withTty(true)); - @Rule - public Timeout globalTimeout = Timeout.seconds(10); - @Test public void testFetchStdout() throws TimeoutException { WaitingConsumer consumer = new WaitingConsumer(); diff --git a/core/src/test/java/org/testcontainers/junit/ParameterizedDockerfileContainerTest.java b/core/src/test/java/org/testcontainers/junit/ParameterizedDockerfileContainerTest.java index 8437123f97a..94b427a0a4d 100644 --- a/core/src/test/java/org/testcontainers/junit/ParameterizedDockerfileContainerTest.java +++ b/core/src/test/java/org/testcontainers/junit/ParameterizedDockerfileContainerTest.java @@ -1,11 +1,13 @@ package org.testcontainers.junit; import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.testcontainers.containers.GenericContainer; import org.testcontainers.images.builder.ImageFromDockerfile; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import static org.assertj.core.api.Assertions.assertThat; @@ -13,12 +15,14 @@ * Simple test case / demonstration of creating a fresh container image from a Dockerfile DSL when the test * is parameterized. */ -@RunWith(Parameterized.class) +@Testcontainers +@ParameterizedClass +@MethodSource("data") public class ParameterizedDockerfileContainerTest { private final String expectedVersion; - @Rule + @Container public GenericContainer container; public ParameterizedDockerfileContainerTest(String baseImage, String expectedVersion) { @@ -37,7 +41,6 @@ public ParameterizedDockerfileContainerTest(String baseImage, String expectedVer this.expectedVersion = expectedVersion; } - @Parameterized.Parameters(name = "{0}") public static Object[][] data() { return new Object[][] { // { "alpine:3.12", "3.12" }, diff --git a/core/src/test/java/org/testcontainers/junit/WorkingDirectoryTest.java b/core/src/test/java/org/testcontainers/junit/WorkingDirectoryTest.java index 05f65e1f493..3b6da2e3fc2 100644 --- a/core/src/test/java/org/testcontainers/junit/WorkingDirectoryTest.java +++ b/core/src/test/java/org/testcontainers/junit/WorkingDirectoryTest.java @@ -1,19 +1,21 @@ package org.testcontainers.junit; -import org.junit.ClassRule; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.TestImages; import org.testcontainers.containers.GenericContainer; import org.testcontainers.containers.startupcheck.OneShotStartupCheckStrategy; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import static org.assertj.core.api.Assertions.assertThat; /** * Created by rnorth on 26/07/2016. */ +@Testcontainers public class WorkingDirectoryTest { - @ClassRule + @Container public static GenericContainer container = new GenericContainer(TestImages.ALPINE_IMAGE) .withWorkingDirectory("/etc") .withStartupCheckStrategy(new OneShotStartupCheckStrategy()) diff --git a/core/src/test/java/org/testcontainers/junit/wait/strategy/AbstractWaitStrategyTest.java b/core/src/test/java/org/testcontainers/junit/wait/strategy/AbstractWaitStrategyTest.java index 6c2dbb50244..fa97bbc25c3 100644 --- a/core/src/test/java/org/testcontainers/junit/wait/strategy/AbstractWaitStrategyTest.java +++ b/core/src/test/java/org/testcontainers/junit/wait/strategy/AbstractWaitStrategyTest.java @@ -1,7 +1,7 @@ package org.testcontainers.junit.wait.strategy; import org.jetbrains.annotations.NotNull; -import org.junit.Before; +import org.junit.jupiter.api.BeforeEach; import org.rnorth.ducttape.RetryCountExceededException; import org.testcontainers.TestImages; import org.testcontainers.containers.ContainerLaunchException; @@ -36,7 +36,7 @@ public abstract class AbstractWaitStrategyTest { @NotNull protected abstract W buildWaitStrategy(final AtomicBoolean ready); - @Before + @BeforeEach public void setUp() { ready = new AtomicBoolean(false); } diff --git a/core/src/test/java/org/testcontainers/junit/wait/strategy/HostPortWaitStrategyTest.java b/core/src/test/java/org/testcontainers/junit/wait/strategy/HostPortWaitStrategyTest.java index bed23566899..b29002e45e1 100644 --- a/core/src/test/java/org/testcontainers/junit/wait/strategy/HostPortWaitStrategyTest.java +++ b/core/src/test/java/org/testcontainers/junit/wait/strategy/HostPortWaitStrategyTest.java @@ -1,12 +1,12 @@ package org.testcontainers.junit.wait.strategy; -import org.junit.ClassRule; -import org.junit.Test; -import org.junit.experimental.runners.Enclosed; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; import org.testcontainers.TestImages; import org.testcontainers.containers.GenericContainer; import org.testcontainers.containers.wait.strategy.Wait; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import java.time.Duration; @@ -14,13 +14,14 @@ * Test wait strategy with overloaded waitingFor methods. * Other implementations of WaitStrategy are tested through backwards compatible wait strategy tests */ -@RunWith(Enclosed.class) +@Testcontainers public class HostPortWaitStrategyTest { - public static class DefaultHostPortWaitStrategyTest { + @Nested + public class DefaultHostPortWaitStrategyTest { - @ClassRule - public static GenericContainer container = new GenericContainer<>(TestImages.ALPINE_IMAGE) + @Container + public GenericContainer container = new GenericContainer<>(TestImages.ALPINE_IMAGE) .withExposedPorts() .withCommand("sh", "-c", "while true; do nc -lp 8080; done") .withExposedPorts(8080) @@ -30,10 +31,11 @@ public static class DefaultHostPortWaitStrategyTest { public void testWaiting() {} } - public static class ExplicitHostPortWaitStrategyTest { + @Nested + public class ExplicitHostPortWaitStrategyTest { - @ClassRule - public static GenericContainer container = new GenericContainer<>(TestImages.ALPINE_IMAGE) + @Container + public GenericContainer container = new GenericContainer<>(TestImages.ALPINE_IMAGE) .withExposedPorts() .withCommand("sh", "-c", "while true; do nc -lp 8080; done") .withExposedPorts(8080) diff --git a/core/src/test/java/org/testcontainers/junit/wait/strategy/HttpWaitStrategyTest.java b/core/src/test/java/org/testcontainers/junit/wait/strategy/HttpWaitStrategyTest.java index 91c94009086..70ebb1518dc 100644 --- a/core/src/test/java/org/testcontainers/junit/wait/strategy/HttpWaitStrategyTest.java +++ b/core/src/test/java/org/testcontainers/junit/wait/strategy/HttpWaitStrategyTest.java @@ -2,7 +2,7 @@ import org.assertj.core.api.Assertions; import org.jetbrains.annotations.NotNull; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.rnorth.ducttape.RetryCountExceededException; import org.testcontainers.containers.GenericContainer; import org.testcontainers.containers.wait.strategy.HttpWaitStrategy; diff --git a/core/src/test/java/org/testcontainers/junit/wait/strategy/LogMessageWaitStrategyTest.java b/core/src/test/java/org/testcontainers/junit/wait/strategy/LogMessageWaitStrategyTest.java index 5dd9623107b..a66dafab19c 100644 --- a/core/src/test/java/org/testcontainers/junit/wait/strategy/LogMessageWaitStrategyTest.java +++ b/core/src/test/java/org/testcontainers/junit/wait/strategy/LogMessageWaitStrategyTest.java @@ -1,9 +1,9 @@ package org.testcontainers.junit.wait.strategy; import org.jetbrains.annotations.NotNull; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.testcontainers.containers.wait.strategy.LogMessageWaitStrategy; import java.util.concurrent.atomic.AtomicBoolean; @@ -11,12 +11,12 @@ /** * Tests for {@link LogMessageWaitStrategy}. */ -@RunWith(Parameterized.class) +@ParameterizedClass +@MethodSource("parameters") public class LogMessageWaitStrategyTest extends AbstractWaitStrategyTest { private final String pattern; - @Parameterized.Parameters(name = "{0}") public static Object[] parameters() { return new String[] { ".*ready.*\\s", // previous recommended style (explicit line ending) diff --git a/core/src/test/java/org/testcontainers/junit/wait/strategy/ShellStrategyTest.java b/core/src/test/java/org/testcontainers/junit/wait/strategy/ShellStrategyTest.java index 0a85037cc14..55e7c1b1f2d 100644 --- a/core/src/test/java/org/testcontainers/junit/wait/strategy/ShellStrategyTest.java +++ b/core/src/test/java/org/testcontainers/junit/wait/strategy/ShellStrategyTest.java @@ -1,7 +1,7 @@ package org.testcontainers.junit.wait.strategy; import org.jetbrains.annotations.NotNull; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.wait.strategy.ShellStrategy; import java.util.concurrent.atomic.AtomicBoolean; diff --git a/core/src/test/java/org/testcontainers/utility/AuthenticatedImagePullTest.java b/core/src/test/java/org/testcontainers/utility/AuthenticatedImagePullTest.java index 0e00dd87bf7..529af649cf2 100644 --- a/core/src/test/java/org/testcontainers/utility/AuthenticatedImagePullTest.java +++ b/core/src/test/java/org/testcontainers/utility/AuthenticatedImagePullTest.java @@ -2,10 +2,9 @@ import com.github.dockerjava.api.model.AuthConfig; import org.intellij.lang.annotations.Language; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Test; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import org.mockito.Mockito; import org.testcontainers.DockerRegistryContainer; import org.testcontainers.TestImages; @@ -13,6 +12,8 @@ import org.testcontainers.containers.DockerComposeContainer; import org.testcontainers.containers.GenericContainer; import org.testcontainers.images.builder.ImageFromDockerfile; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import java.io.IOException; import java.nio.file.Files; @@ -32,12 +33,13 @@ * {@link RegistryAuthLocatorTest} covers actual credential scenarios at a lower level, which are * impractical to test end-to-end. */ +@Testcontainers public class AuthenticatedImagePullTest { /** * Containerised docker image registry, with simple hardcoded credentials */ - @ClassRule + @Container public static DockerRegistryContainer authenticatedRegistry = new DockerRegistryContainer( new ImageFromDockerfile() .withDockerfileFromBuilder(builder -> { @@ -54,7 +56,7 @@ public class AuthenticatedImagePullTest { private final DockerImageName testImageName = authenticatedRegistry.createImage(); - @BeforeClass + @BeforeAll public static void beforeClass() throws Exception { originalAuthLocatorSingleton = RegistryAuthLocator.instance(); @@ -77,7 +79,7 @@ public static void beforeClass() throws Exception { .thenReturn(authConfig); } - @AfterClass + @AfterAll public static void tearDown() { RegistryAuthLocator.setInstance(originalAuthLocatorSingleton); } diff --git a/core/src/test/java/org/testcontainers/utility/ClasspathScannerTest.java b/core/src/test/java/org/testcontainers/utility/ClasspathScannerTest.java index e775a2cd492..58920f3a9b6 100644 --- a/core/src/test/java/org/testcontainers/utility/ClasspathScannerTest.java +++ b/core/src/test/java/org/testcontainers/utility/ClasspathScannerTest.java @@ -1,7 +1,7 @@ package org.testcontainers.utility; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import java.io.IOException; import java.net.URL; @@ -27,7 +27,7 @@ public class ClasspathScannerTest { private static URL FILE_C; - @BeforeClass + @BeforeAll public static void setUp() throws Exception { FILE_A = new URL("file:///a/someName"); FILE_B = new URL("file:///b/someName"); diff --git a/core/src/test/java/org/testcontainers/utility/ComparableVersionTest.java b/core/src/test/java/org/testcontainers/utility/ComparableVersionTest.java index cd95d8a5f3d..1700c952874 100644 --- a/core/src/test/java/org/testcontainers/utility/ComparableVersionTest.java +++ b/core/src/test/java/org/testcontainers/utility/ComparableVersionTest.java @@ -1,15 +1,15 @@ package org.testcontainers.utility; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; -import org.junit.runners.Parameterized.Parameters; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import java.util.Arrays; import static org.assertj.core.api.Assertions.assertThat; -@RunWith(Parameterized.class) +@ParameterizedClass(name = "Parsed version: {0}={1}") +@MethodSource("data") public class ComparableVersionTest { private final int[] expected; @@ -26,7 +26,6 @@ public void shouldParseVersions() { assertThat(ComparableVersion.parseVersion(given)).containsExactly(expected); } - @Parameters(name = "Parsed version: {0}={1}") public static Iterable data() { return Arrays.asList( new Object[][] { diff --git a/core/src/test/java/org/testcontainers/utility/DefaultImageNameSubstitutorTest.java b/core/src/test/java/org/testcontainers/utility/DefaultImageNameSubstitutorTest.java index 90f7745edd7..c60af70ca73 100644 --- a/core/src/test/java/org/testcontainers/utility/DefaultImageNameSubstitutorTest.java +++ b/core/src/test/java/org/testcontainers/utility/DefaultImageNameSubstitutorTest.java @@ -1,13 +1,15 @@ package org.testcontainers.utility; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.mockito.Mockito; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.eq; +@Testcontainers public class DefaultImageNameSubstitutorTest { public static final DockerImageName ORIGINAL_IMAGE = DockerImageName.parse("foo"); @@ -16,10 +18,10 @@ public class DefaultImageNameSubstitutorTest { private ConfigurationFileImageNameSubstitutor underTest; - @Rule + @Container public MockTestcontainersConfigurationRule config = new MockTestcontainersConfigurationRule(); - @Before + @BeforeEach public void setUp() { underTest = new ConfigurationFileImageNameSubstitutor(TestcontainersConfiguration.getInstance()); } diff --git a/core/src/test/java/org/testcontainers/utility/DirectoryTarResourceTest.java b/core/src/test/java/org/testcontainers/utility/DirectoryTarResourceTest.java index a56315085ae..d077d6e1d55 100644 --- a/core/src/test/java/org/testcontainers/utility/DirectoryTarResourceTest.java +++ b/core/src/test/java/org/testcontainers/utility/DirectoryTarResourceTest.java @@ -1,7 +1,7 @@ package org.testcontainers.utility; import org.assertj.core.api.Condition; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.GenericContainer; import org.testcontainers.containers.startupcheck.OneShotStartupCheckStrategy; import org.testcontainers.images.builder.ImageFromDockerfile; diff --git a/core/src/test/java/org/testcontainers/utility/DockerImageNameCompatibilityTest.java b/core/src/test/java/org/testcontainers/utility/DockerImageNameCompatibilityTest.java index dd17981111f..53eefe9f5ca 100644 --- a/core/src/test/java/org/testcontainers/utility/DockerImageNameCompatibilityTest.java +++ b/core/src/test/java/org/testcontainers/utility/DockerImageNameCompatibilityTest.java @@ -1,6 +1,6 @@ package org.testcontainers.utility; -import org.junit.Test; +import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; diff --git a/core/src/test/java/org/testcontainers/utility/DockerImageNameTest.java b/core/src/test/java/org/testcontainers/utility/DockerImageNameTest.java index b1a0cbc980f..b33f8956fc8 100644 --- a/core/src/test/java/org/testcontainers/utility/DockerImageNameTest.java +++ b/core/src/test/java/org/testcontainers/utility/DockerImageNameTest.java @@ -1,19 +1,21 @@ package org.testcontainers.utility; -import org.junit.Test; -import org.junit.experimental.runners.Enclosed; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.Parameter; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.ThrowableAssert.catchThrowableOfType; -@RunWith(Enclosed.class) public class DockerImageNameTest { - @RunWith(Parameterized.class) + @Nested + @ParameterizedClass + @MethodSource("getNames") public static class ValidNames { - @Parameterized.Parameters(name = "{0}") public static String[] getNames() { return new String[] { "myname:latest", @@ -30,7 +32,7 @@ public static String[] getNames() { }; } - @Parameterized.Parameter + @Parameter(0) public String imageName; @Test @@ -39,10 +41,11 @@ public void testValidNameAccepted() { } } - @RunWith(Parameterized.class) + @Nested + @ParameterizedClass + @MethodSource("getNames") public static class InvalidNames { - @Parameterized.Parameters(name = "{0}") public static String[] getNames() { return new String[] { ":latest", @@ -53,19 +56,22 @@ public static String[] getNames() { }; } - @Parameterized.Parameter + @Parameter(0) public String imageName; - @Test(expected = IllegalArgumentException.class) + @Test public void testInvalidNameRejected() { - DockerImageName.parse(imageName).assertValid(); + catchThrowableOfType(IllegalArgumentException.class, () -> + DockerImageName.parse(imageName).assertValid() + ); } } - @RunWith(Parameterized.class) + @Nested + @ParameterizedClass(name = "{0}{1}{2}{3}{4}") + @MethodSource("getNames") public static class Parsing { - @Parameterized.Parameters(name = "{0}{1}{2}{3}{4}") public static String[][] getNames() { return new String[][] { { "", "", "myname", ":", null }, @@ -92,19 +98,19 @@ public static String[][] getNames() { }; } - @Parameterized.Parameter(0) + @Parameter(0) public String registry; - @Parameterized.Parameter(1) + @Parameter(1) public String registrySeparator; - @Parameterized.Parameter(2) + @Parameter(2) public String repo; - @Parameterized.Parameter(3) + @Parameter(3) public String versionSeparator; - @Parameterized.Parameter(4) + @Parameter(4) public String version; @Test diff --git a/core/src/test/java/org/testcontainers/utility/DockerLoggerFactoryTest.java b/core/src/test/java/org/testcontainers/utility/DockerLoggerFactoryTest.java index 17f0f3d7160..df187d675a2 100644 --- a/core/src/test/java/org/testcontainers/utility/DockerLoggerFactoryTest.java +++ b/core/src/test/java/org/testcontainers/utility/DockerLoggerFactoryTest.java @@ -4,7 +4,7 @@ import ch.qos.logback.classic.Logger; import ch.qos.logback.classic.spi.ILoggingEvent; import ch.qos.logback.core.read.ListAppender; -import org.junit.Test; +import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; diff --git a/core/src/test/java/org/testcontainers/utility/DockerStatusTest.java b/core/src/test/java/org/testcontainers/utility/DockerStatusTest.java index 304bbc4190d..aaa6de97721 100644 --- a/core/src/test/java/org/testcontainers/utility/DockerStatusTest.java +++ b/core/src/test/java/org/testcontainers/utility/DockerStatusTest.java @@ -1,9 +1,9 @@ package org.testcontainers.utility; import com.github.dockerjava.api.command.InspectContainerResponse; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.mockito.Mockito; import java.time.Duration; @@ -14,10 +14,8 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.when; -/** - * - */ -@RunWith(Parameterized.class) +@ParameterizedClass +@MethodSource("parameters") public class DockerStatusTest { private final DateTimeFormatter dateTimeFormatter; @@ -52,7 +50,6 @@ public DockerStatusTest(DateTimeFormatter dateTimeFormatter) { paused = buildState(false, true, buildTimestamp(now.minusMillis(100)), DockerStatus.DOCKER_TIMESTAMP_ZERO); } - @Parameterized.Parameters public static Object[][] parameters() { return new Object[][] { { DateTimeFormatter.ISO_INSTANT }, diff --git a/core/src/test/java/org/testcontainers/utility/FilterRegistryTest.java b/core/src/test/java/org/testcontainers/utility/FilterRegistryTest.java index 2741edb5cee..ed1831c368f 100644 --- a/core/src/test/java/org/testcontainers/utility/FilterRegistryTest.java +++ b/core/src/test/java/org/testcontainers/utility/FilterRegistryTest.java @@ -1,6 +1,6 @@ package org.testcontainers.utility; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.utility.ResourceReaper.FilterRegistry; import java.io.ByteArrayInputStream; diff --git a/core/src/test/java/org/testcontainers/utility/ImageNameSubstitutorTest.java b/core/src/test/java/org/testcontainers/utility/ImageNameSubstitutorTest.java index 6c29e26c58f..90ad5c491b7 100644 --- a/core/src/test/java/org/testcontainers/utility/ImageNameSubstitutorTest.java +++ b/core/src/test/java/org/testcontainers/utility/ImageNameSubstitutorTest.java @@ -1,12 +1,13 @@ package org.testcontainers.utility; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; import org.mockito.Mockito; import org.testcontainers.containers.GenericContainer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import java.io.FileWriter; import java.io.IOException; @@ -20,19 +21,20 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.mockito.ArgumentMatchers.eq; +@Testcontainers public class ImageNameSubstitutorTest { - @Rule - public TemporaryFolder tempFolder = new TemporaryFolder(); + @TempDir + public Path tempFolder; - @Rule + @Container public MockTestcontainersConfigurationRule config = new MockTestcontainersConfigurationRule(); private ImageNameSubstitutor originalInstance; private ImageNameSubstitutor originalDefaultImplementation; - @Before + @BeforeEach public void setUp() throws Exception { originalInstance = ImageNameSubstitutor.instance; originalDefaultImplementation = ImageNameSubstitutor.defaultImplementation; @@ -46,7 +48,7 @@ public void setUp() throws Exception { Mockito.doReturn("default implementation").when(ImageNameSubstitutor.defaultImplementation).getDescription(); } - @After + @AfterEach public void tearDown() throws Exception { ImageNameSubstitutor.instance = originalInstance; ImageNameSubstitutor.defaultImplementation = originalDefaultImplementation; @@ -96,7 +98,7 @@ public void testImageNameSubstitutorToString() { @Test public void testImageNameSubstitutorFromServiceLoader() throws IOException { - Path tempDir = this.tempFolder.newFolder("image-name-substitutor-test").toPath(); + Path tempDir = tempFolder.resolve("image-name-substitutor-test"); Path metaInfDir = Paths.get(tempDir.toString(), "META-INF", "services"); Files.createDirectories(metaInfDir); diff --git a/core/src/test/java/org/testcontainers/utility/LazyFutureTest.java b/core/src/test/java/org/testcontainers/utility/LazyFutureTest.java index 822109ff9cd..87d86c22425 100644 --- a/core/src/test/java/org/testcontainers/utility/LazyFutureTest.java +++ b/core/src/test/java/org/testcontainers/utility/LazyFutureTest.java @@ -2,7 +2,8 @@ import com.google.common.util.concurrent.Futures; import lombok.SneakyThrows; -import org.junit.Test; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.Timeout; import java.util.Collections; import java.util.List; @@ -39,7 +40,8 @@ protected Integer resolve() { assertThat(lazyFuture.get()).as("result of resolve() must be cached").isEqualTo(1); } - @Test(timeout = 5_000) + @Test + @Timeout(value = 5, unit = TimeUnit.SECONDS) public void timeoutWorks() { Future lazyFuture = new LazyFuture() { @Override @@ -55,7 +57,8 @@ protected Void resolve() { .isInstanceOf(TimeoutException.class); } - @Test(timeout = 5_000) + @Test + @Timeout(value = 5, unit = TimeUnit.SECONDS) public void testThreadSafety() throws Exception { final int numOfThreads = 3; CountDownLatch latch = new CountDownLatch(numOfThreads); diff --git a/core/src/test/java/org/testcontainers/utility/LicenseAcceptanceTest.java b/core/src/test/java/org/testcontainers/utility/LicenseAcceptanceTest.java index 63da017c88e..86c74e0f9d2 100644 --- a/core/src/test/java/org/testcontainers/utility/LicenseAcceptanceTest.java +++ b/core/src/test/java/org/testcontainers/utility/LicenseAcceptanceTest.java @@ -1,6 +1,8 @@ package org.testcontainers.utility; -import org.junit.Test; +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.catchThrowableOfType; public class LicenseAcceptanceTest { @@ -10,8 +12,10 @@ public void testForExistingNames() { LicenseAcceptance.assertLicenseAccepted("b"); } - @Test(expected = IllegalStateException.class) + @Test public void testForMissingNames() { - LicenseAcceptance.assertLicenseAccepted("c"); + catchThrowableOfType(IllegalStateException.class, () -> + LicenseAcceptance.assertLicenseAccepted("c") + ); } } diff --git a/core/src/test/java/org/testcontainers/utility/MountableFileTest.java b/core/src/test/java/org/testcontainers/utility/MountableFileTest.java index fbfb537ef87..195a46de016 100644 --- a/core/src/test/java/org/testcontainers/utility/MountableFileTest.java +++ b/core/src/test/java/org/testcontainers/utility/MountableFileTest.java @@ -5,7 +5,7 @@ import org.apache.commons.compress.archivers.tar.TarArchiveInputStream; import org.apache.commons.compress.archivers.tar.TarArchiveOutputStream; import org.jetbrains.annotations.NotNull; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/core/src/test/java/org/testcontainers/utility/PrefixingImageNameSubstitutorTest.java b/core/src/test/java/org/testcontainers/utility/PrefixingImageNameSubstitutorTest.java index 04786119e36..ba4682f18cb 100644 --- a/core/src/test/java/org/testcontainers/utility/PrefixingImageNameSubstitutorTest.java +++ b/core/src/test/java/org/testcontainers/utility/PrefixingImageNameSubstitutorTest.java @@ -1,7 +1,7 @@ package org.testcontainers.utility; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.any; @@ -15,7 +15,7 @@ public class PrefixingImageNameSubstitutorTest { private PrefixingImageNameSubstitutor underTest; - @Before + @BeforeEach public void setUp() { mockConfiguration = mock(TestcontainersConfiguration.class); underTest = new PrefixingImageNameSubstitutor(mockConfiguration); diff --git a/core/src/test/java/org/testcontainers/utility/RegistryAuthLocatorTest.java b/core/src/test/java/org/testcontainers/utility/RegistryAuthLocatorTest.java index ed986b05015..ad3db427f0b 100644 --- a/core/src/test/java/org/testcontainers/utility/RegistryAuthLocatorTest.java +++ b/core/src/test/java/org/testcontainers/utility/RegistryAuthLocatorTest.java @@ -5,7 +5,7 @@ import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.SystemUtils; import org.jetbrains.annotations.NotNull; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.io.File; import java.io.IOException; diff --git a/core/src/test/java/org/testcontainers/utility/ResourceReaperTest.java b/core/src/test/java/org/testcontainers/utility/ResourceReaperTest.java index 77c5d528ba4..618012f60fa 100644 --- a/core/src/test/java/org/testcontainers/utility/ResourceReaperTest.java +++ b/core/src/test/java/org/testcontainers/utility/ResourceReaperTest.java @@ -5,7 +5,7 @@ import lombok.SneakyThrows; import org.awaitility.Awaitility; import org.awaitility.core.ConditionFactory; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.DockerClientFactory; import org.testcontainers.containers.GenericContainer; import org.zeroturnaround.exec.ProcessExecutor; diff --git a/core/src/test/java/org/testcontainers/utility/TestEnvironmentTest.java b/core/src/test/java/org/testcontainers/utility/TestEnvironmentTest.java index 4bd9e1b8edb..65155b43ba5 100644 --- a/core/src/test/java/org/testcontainers/utility/TestEnvironmentTest.java +++ b/core/src/test/java/org/testcontainers/utility/TestEnvironmentTest.java @@ -1,6 +1,6 @@ package org.testcontainers.utility; -import org.junit.Test; +import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; diff --git a/core/src/test/java/org/testcontainers/utility/TestcontainersConfigurationTest.java b/core/src/test/java/org/testcontainers/utility/TestcontainersConfigurationTest.java index fcc0a654ef5..bccb632354a 100644 --- a/core/src/test/java/org/testcontainers/utility/TestcontainersConfigurationTest.java +++ b/core/src/test/java/org/testcontainers/utility/TestcontainersConfigurationTest.java @@ -1,7 +1,7 @@ package org.testcontainers.utility; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import java.util.HashMap; import java.util.Map; @@ -18,7 +18,7 @@ public class TestcontainersConfigurationTest { private Map environment; - @Before + @BeforeEach public void setUp() { userProperties = new Properties(); classpathProperties = new Properties(); diff --git a/docs/examples/junit4/generic/src/test/java/generic/CmdModifierTest.java b/docs/examples/junit4/generic/src/test/java/generic/CmdModifierTest.java index 52c7f621d07..f6f87fefea4 100644 --- a/docs/examples/junit4/generic/src/test/java/generic/CmdModifierTest.java +++ b/docs/examples/junit4/generic/src/test/java/generic/CmdModifierTest.java @@ -2,11 +2,12 @@ import com.github.dockerjava.api.DockerClient; import com.github.dockerjava.api.model.Info; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.DockerClientFactory; -import org.testcontainers.containers.Container; +import org.testcontainers.containers.Container.ExecResult; import org.testcontainers.containers.GenericContainer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.DockerImageName; import java.io.IOException; @@ -14,10 +15,11 @@ import static org.assertj.core.api.Assertions.assertThat; +@Testcontainers public class CmdModifierTest { // hostname { - @Rule + @Container public GenericContainer theCache = new GenericContainer<>(DockerImageName.parse("redis:6-alpine")) .withCreateContainerCmdModifier(cmd -> cmd.withHostName("the-cache")); @@ -29,7 +31,7 @@ public class CmdModifierTest { private long memorySwapInBytes = 64l * 1024l * 1024l; - @Rule + @Container public GenericContainer memoryLimitedRedis = new GenericContainer<>(DockerImageName.parse("redis:6-alpine")) .withCreateContainerCmdModifier(cmd -> { cmd.getHostConfig() @@ -42,13 +44,13 @@ public class CmdModifierTest { @Test public void testHostnameModified() throws IOException, InterruptedException { - final Container.ExecResult execResult = theCache.execInContainer("hostname"); + final ExecResult execResult = theCache.execInContainer("hostname"); assertThat(execResult.getStdout().trim()).isEqualTo("the-cache"); } @Test public void testMemoryLimitModified() throws IOException, InterruptedException { - final Container.ExecResult execResult = memoryLimitedRedis.execInContainer("cat", getMemoryLimitFilePath()); + final ExecResult execResult = memoryLimitedRedis.execInContainer("cat", getMemoryLimitFilePath()); assertThat(execResult.getStdout().trim()).isEqualTo(String.valueOf(memoryInBytes)); } diff --git a/docs/examples/junit4/generic/src/test/java/generic/CommandsTest.java b/docs/examples/junit4/generic/src/test/java/generic/CommandsTest.java index 5b4df0dbb66..662ef826670 100644 --- a/docs/examples/junit4/generic/src/test/java/generic/CommandsTest.java +++ b/docs/examples/junit4/generic/src/test/java/generic/CommandsTest.java @@ -1,16 +1,18 @@ package generic; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.GenericContainer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.DockerImageName; import static org.assertj.core.api.Assertions.assertThat; +@Testcontainers public class CommandsTest { - @Rule // startupCommand { + @Container public GenericContainer redisWithCustomPort = new GenericContainer(DockerImageName.parse("redis:6-alpine")) .withCommand("redis-server --port 7777") // } diff --git a/docs/examples/junit4/generic/src/test/java/generic/ContainerCreationTest.java b/docs/examples/junit4/generic/src/test/java/generic/ContainerCreationTest.java index e202580c247..9923a1e5125 100644 --- a/docs/examples/junit4/generic/src/test/java/generic/ContainerCreationTest.java +++ b/docs/examples/junit4/generic/src/test/java/generic/ContainerCreationTest.java @@ -1,19 +1,21 @@ package generic; -import org.junit.ClassRule; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.GenericContainer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.DockerImageName; import static org.assertj.core.api.Assertions.assertThat; +@Testcontainers public class ContainerCreationTest { // spotless:off // simple { public static final DockerImageName REDIS_IMAGE = DockerImageName.parse("redis:6-alpine"); - @ClassRule + @Container public static GenericContainer redis = new GenericContainer<>(REDIS_IMAGE) .withExposedPorts(6379); @@ -27,7 +29,7 @@ public class ContainerCreationTest { // Set up a plain OS container and customize environment, // command and exposed ports. This just listens on port 80 // and always returns '42' - @ClassRule + @Container public static GenericContainer alpine = new GenericContainer<>(ALPINE_IMAGE) .withExposedPorts(80) .withEnv("MAGIC_NUMBER", "42") diff --git a/docs/examples/junit4/generic/src/test/java/generic/DependsOnTest.java b/docs/examples/junit4/generic/src/test/java/generic/DependsOnTest.java index c48d55899f0..b1ebeb312d4 100644 --- a/docs/examples/junit4/generic/src/test/java/generic/DependsOnTest.java +++ b/docs/examples/junit4/generic/src/test/java/generic/DependsOnTest.java @@ -1,18 +1,20 @@ package generic; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.GenericContainer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import static org.assertj.core.api.Assertions.assertThat; +@Testcontainers public class DependsOnTest { - @Rule // dependsOn { + @Container public GenericContainer redis = new GenericContainer<>("redis:6-alpine").withExposedPorts(6379); - @Rule + @Container public GenericContainer nginx = new GenericContainer<>("nginx:1.27.0-alpine3.19-slim") .dependsOn(redis) .withExposedPorts(80); diff --git a/docs/examples/junit4/generic/src/test/java/generic/ExecTest.java b/docs/examples/junit4/generic/src/test/java/generic/ExecTest.java index 078e177242f..a22659dc59d 100644 --- a/docs/examples/junit4/generic/src/test/java/generic/ExecTest.java +++ b/docs/examples/junit4/generic/src/test/java/generic/ExecTest.java @@ -1,18 +1,20 @@ package generic; -import org.junit.Rule; -import org.junit.Test; -import org.testcontainers.containers.Container; +import org.junit.jupiter.api.Test; +import org.testcontainers.containers.Container.ExecResult; import org.testcontainers.containers.GenericContainer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.DockerImageName; import java.io.IOException; import static org.assertj.core.api.Assertions.assertThat; +@Testcontainers public class ExecTest { - @Rule + @Container public GenericContainer container = new GenericContainer<>(DockerImageName.parse("alpine:3.17")) .withCommand("top"); @@ -23,7 +25,7 @@ public void testSimpleExec() throws IOException, InterruptedException { // } // execReadingStdout { - Container.ExecResult lsResult = container.execInContainer("ls", "-al", "/"); + ExecResult lsResult = container.execInContainer("ls", "-al", "/"); String stdout = lsResult.getStdout(); int exitCode = lsResult.getExitCode(); assertThat(stdout).contains("somefile.txt"); diff --git a/docs/examples/junit4/generic/src/test/java/generic/HostPortExposedTest.java b/docs/examples/junit4/generic/src/test/java/generic/HostPortExposedTest.java index 392fb22c2a9..ac1ac744b36 100644 --- a/docs/examples/junit4/generic/src/test/java/generic/HostPortExposedTest.java +++ b/docs/examples/junit4/generic/src/test/java/generic/HostPortExposedTest.java @@ -1,27 +1,28 @@ package generic; import com.sun.net.httpserver.HttpServer; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import org.openqa.selenium.chrome.ChromeOptions; import org.openqa.selenium.remote.RemoteWebDriver; import org.testcontainers.Testcontainers; import org.testcontainers.containers.BrowserWebDriverContainer; +import org.testcontainers.junit.jupiter.Container; import java.io.OutputStream; import java.net.InetSocketAddress; import static org.assertj.core.api.Assertions.assertThat; +@org.testcontainers.junit.jupiter.Testcontainers public class HostPortExposedTest { private static HttpServer server; private static int localServerPort; - @BeforeClass + @BeforeAll public static void setUp() throws Exception { server = HttpServer.create(new InetSocketAddress(0), 0); server.createContext( @@ -44,12 +45,12 @@ public static void setUp() throws Exception { // } } - @AfterClass + @AfterAll public static void tearDown() throws Exception { server.stop(0); } - @Rule + @Container public BrowserWebDriverContainer browser = new BrowserWebDriverContainer<>() .withCapabilities(new ChromeOptions()); diff --git a/docs/examples/junit4/generic/src/test/java/generic/ImageNameSubstitutionTest.java b/docs/examples/junit4/generic/src/test/java/generic/ImageNameSubstitutionTest.java index ce17637cb83..a74d33fe83e 100644 --- a/docs/examples/junit4/generic/src/test/java/generic/ImageNameSubstitutionTest.java +++ b/docs/examples/junit4/generic/src/test/java/generic/ImageNameSubstitutionTest.java @@ -1,7 +1,7 @@ package generic; import generic.support.TestSpecificImageNameSubstitutor; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.MySQLContainer; import org.testcontainers.utility.DockerImageName; diff --git a/docs/examples/junit4/generic/src/test/java/generic/MultiplePortsExposedTest.java b/docs/examples/junit4/generic/src/test/java/generic/MultiplePortsExposedTest.java index 49e62cff217..b0265d38de9 100644 --- a/docs/examples/junit4/generic/src/test/java/generic/MultiplePortsExposedTest.java +++ b/docs/examples/junit4/generic/src/test/java/generic/MultiplePortsExposedTest.java @@ -1,19 +1,21 @@ package generic; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.testcontainers.containers.GenericContainer; import org.testcontainers.containers.output.Slf4jLogConsumer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.DockerImageName; +@Testcontainers public class MultiplePortsExposedTest { private static final Logger log = LoggerFactory.getLogger(MultiplePortsExposedTest.class); - @Rule // rule { + @Container public GenericContainer container = new GenericContainer<>( DockerImageName.parse("testcontainers/helloworld:1.1.0") ) diff --git a/docs/examples/junit4/generic/src/test/java/generic/WaitStrategiesTest.java b/docs/examples/junit4/generic/src/test/java/generic/WaitStrategiesTest.java index c66fc9443d0..346f9069e7f 100644 --- a/docs/examples/junit4/generic/src/test/java/generic/WaitStrategiesTest.java +++ b/docs/examples/junit4/generic/src/test/java/generic/WaitStrategiesTest.java @@ -1,26 +1,28 @@ package generic; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.GenericContainer; import org.testcontainers.containers.wait.strategy.HttpWaitStrategy; import org.testcontainers.containers.wait.strategy.Wait; import org.testcontainers.containers.wait.strategy.WaitStrategy; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.DockerImageName; import static org.assertj.core.api.Assertions.assertThat; +@Testcontainers public class WaitStrategiesTest { - @Rule // waitForNetworkListening { + @Container public GenericContainer nginx = new GenericContainer(DockerImageName.parse("nginx:1.27.0-alpine3.19-slim")) // .withExposedPorts(80); // } - @Rule // waitForSimpleHttp { + @Container public GenericContainer nginxWithHttpWait = new GenericContainer( DockerImageName.parse("nginx:1.27.0-alpine3.19-slim") ) @@ -29,8 +31,8 @@ public class WaitStrategiesTest { // } - @Rule // logMessageWait { + @Container public GenericContainer containerWithLogWait = new GenericContainer(DockerImageName.parse("redis:6-alpine")) .withExposedPorts(6379) .waitingFor(Wait.forLogMessage(".*Ready to accept connections.*\\n", 1)); diff --git a/docs/examples/junit4/generic/src/test/java/org/testcontainers/containers/startupcheck/StartupCheckStrategyTest.java b/docs/examples/junit4/generic/src/test/java/org/testcontainers/containers/startupcheck/StartupCheckStrategyTest.java index 82e3d83ab24..5003263e8e3 100644 --- a/docs/examples/junit4/generic/src/test/java/org/testcontainers/containers/startupcheck/StartupCheckStrategyTest.java +++ b/docs/examples/junit4/generic/src/test/java/org/testcontainers/containers/startupcheck/StartupCheckStrategyTest.java @@ -1,13 +1,15 @@ package org.testcontainers.containers.startupcheck; import lombok.SneakyThrows; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; import org.junit.runner.RunWith; import org.junit.runners.Suite; import org.testcontainers.containers.GenericContainer; import org.testcontainers.containers.output.OutputFrame; import org.testcontainers.containers.output.WaitingConsumer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.DockerImageName; import java.time.Duration; @@ -24,6 +26,7 @@ StartupCheckStrategyTest.MinimumDurationStrategyTest.class, } ) +@Testcontainers public class StartupCheckStrategyTest { private static final String HELLO_TESTCONTAINERS = "Hello Testcontainers!"; @@ -35,11 +38,12 @@ private static void waitForHello(GenericContainer container) throws TimeoutExcep consumer.waitUntil(frame -> frame.getUtf8String().contains(HELLO_TESTCONTAINERS), 30, TimeUnit.SECONDS); } - public static class OneShotStrategyTest { + @Nested + public class OneShotStrategyTest { - @Rule // spotless:off // withOneShotStrategy { + @Container public GenericContainer bboxWithOneShot = new GenericContainer<>(DockerImageName.parse("busybox:1.31.1")) .withCommand(String.format("echo %s", HELLO_TESTCONTAINERS)) .withStartupCheckStrategy( @@ -58,11 +62,13 @@ public void testCommandIsExecuted() { } } - public static class IndefiniteOneShotStrategyTest { + @Nested + @Testcontainers + public class IndefiniteOneShotStrategyTest { - @Rule // spotless:off // withIndefiniteOneShotStrategy { + @Container public GenericContainer bboxWithIndefiniteOneShot = new GenericContainer<>( DockerImageName.parse("busybox:1.31.1") ) @@ -83,11 +89,13 @@ public void testCommandIsExecuted() { } } - public static class MinimumDurationStrategyTest { + @Nested + @Testcontainers + public class MinimumDurationStrategyTest { - @Rule // spotless:off // withMinimumDurationStrategy { + @Container public GenericContainer bboxWithMinimumDuration = new GenericContainer<>( DockerImageName.parse("busybox:1.31.1") ) diff --git a/docs/examples/junit4/redis/src/test/java/quickstart/RedisBackedCacheIntTest.java b/docs/examples/junit4/redis/src/test/java/quickstart/RedisBackedCacheIntTest.java index e4c4424315b..27fc4381ef9 100644 --- a/docs/examples/junit4/redis/src/test/java/quickstart/RedisBackedCacheIntTest.java +++ b/docs/examples/junit4/redis/src/test/java/quickstart/RedisBackedCacheIntTest.java @@ -1,25 +1,27 @@ package quickstart; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.GenericContainer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.DockerImageName; import static org.assertj.core.api.Assertions.assertThat; +@Testcontainers public class RedisBackedCacheIntTest { private RedisBackedCache underTest; // rule { - @Rule + @Container public GenericContainer redis = new GenericContainer(DockerImageName.parse("redis:6-alpine")) .withExposedPorts(6379); // } - @Before + @BeforeEach public void setUp() { String address = redis.getHost(); Integer port = redis.getFirstMappedPort(); diff --git a/docs/examples/junit4/redis/src/test/java/quickstart/RedisBackedCacheIntTestStep0.java b/docs/examples/junit4/redis/src/test/java/quickstart/RedisBackedCacheIntTestStep0.java index e3f52403c48..e1f3c3efbe8 100644 --- a/docs/examples/junit4/redis/src/test/java/quickstart/RedisBackedCacheIntTestStep0.java +++ b/docs/examples/junit4/redis/src/test/java/quickstart/RedisBackedCacheIntTestStep0.java @@ -1,17 +1,17 @@ package quickstart; -import org.junit.Before; -import org.junit.Ignore; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; -@Ignore("This test class is deliberately invalid, as it relies on a non-existent local Redis") +@Disabled("This test class is deliberately invalid, as it relies on a non-existent local Redis") public class RedisBackedCacheIntTestStep0 { private RedisBackedCache underTest; - @Before + @BeforeEach public void setUp() { // Assume that we have Redis running locally? underTest = new RedisBackedCache("localhost", 6379); diff --git a/docs/examples/junit5/redis/build.gradle b/docs/examples/junit5/redis/build.gradle index 2fc21e92237..66a0fa4361c 100644 --- a/docs/examples/junit5/redis/build.gradle +++ b/docs/examples/junit5/redis/build.gradle @@ -3,9 +3,9 @@ description = "Examples for docs" dependencies { api "io.lettuce:lettuce-core:6.4.0.RELEASE" - testImplementation "org.junit.jupiter:junit-jupiter-api:5.11.0" - testImplementation "org.junit.jupiter:junit-jupiter-params:5.10.3" - testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:5.11.0" + testImplementation "org.junit.jupiter:junit-jupiter-api:5.13.0" + testImplementation "org.junit.jupiter:junit-jupiter-params:5.13.0" + testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:5.13.0" testImplementation project(":testcontainers") testImplementation project(":junit-jupiter") testImplementation 'org.assertj:assertj-core:3.26.3' diff --git a/docs/modules/databases/db2.md b/docs/modules/databases/db2.md index 945536cac05..0a3ff2cd21c 100644 --- a/docs/modules/databases/db2.md +++ b/docs/modules/databases/db2.md @@ -12,7 +12,7 @@ Running DB2 as a stand-in for in a test: ```java public class SomeTest { - @ClassRule + @Сontainer public Db2Container db2 = new Db2Container() .acceptLicense(); diff --git a/docs/quickstart/junit_5_quickstart.md b/docs/quickstart/junit_5_quickstart.md index 3c126196845..10fa268f522 100644 --- a/docs/quickstart/junit_5_quickstart.md +++ b/docs/quickstart/junit_5_quickstart.md @@ -23,7 +23,7 @@ First, add Testcontainers as a dependency as follows: === "Gradle" ```groovy - testImplementation "org.junit.jupiter:junit-jupiter:5.8.1" + testImplementation "org.junit.jupiter:junit-jupiter:5.13.0" testImplementation "org.testcontainers:testcontainers:{{latest_version}}" testImplementation "org.testcontainers:junit-jupiter:{{latest_version}}" ``` diff --git a/examples/hazelcast/build.gradle b/examples/hazelcast/build.gradle index 5b3789480ad..f014550679f 100644 --- a/examples/hazelcast/build.gradle +++ b/examples/hazelcast/build.gradle @@ -11,7 +11,7 @@ dependencies { testImplementation 'com.hazelcast:hazelcast:5.3.8' testImplementation 'ch.qos.logback:logback-classic:1.3.14' testImplementation 'org.assertj:assertj-core:3.26.3' - testImplementation 'org.junit.jupiter:junit-jupiter:5.11.0' + testImplementation 'org.junit.jupiter:junit-jupiter:5.13.0' } test { diff --git a/examples/immudb/build.gradle b/examples/immudb/build.gradle index c99dceac836..76b6d87c90b 100644 --- a/examples/immudb/build.gradle +++ b/examples/immudb/build.gradle @@ -13,7 +13,7 @@ dependencies { testImplementation 'org.assertj:assertj-core:3.26.3' testImplementation 'com.google.guava:guava:23.0' testImplementation 'ch.qos.logback:logback-classic:1.3.14' - testImplementation 'org.junit.jupiter:junit-jupiter:5.11.0' + testImplementation 'org.junit.jupiter:junit-jupiter:5.13.0' } test { diff --git a/examples/kafka-cluster/build.gradle b/examples/kafka-cluster/build.gradle index 623fcd66175..4e6aa3d0760 100644 --- a/examples/kafka-cluster/build.gradle +++ b/examples/kafka-cluster/build.gradle @@ -14,7 +14,7 @@ dependencies { testImplementation 'org.assertj:assertj-core:3.26.3' testImplementation 'com.google.guava:guava:23.0' testImplementation 'ch.qos.logback:logback-classic:1.3.14' - testImplementation 'org.junit.jupiter:junit-jupiter:5.11.0' + testImplementation 'org.junit.jupiter:junit-jupiter:5.13.0' testImplementation 'org.awaitility:awaitility:4.2.2' } diff --git a/examples/kafka-cluster/src/test/java/com/example/kafkacluster/ApacheKafkaContainerCluster.java b/examples/kafka-cluster/src/test/java/com/example/kafkacluster/ApacheKafkaContainerCluster.java index a8616d2d4bb..1a6be18717f 100644 --- a/examples/kafka-cluster/src/test/java/com/example/kafkacluster/ApacheKafkaContainerCluster.java +++ b/examples/kafka-cluster/src/test/java/com/example/kafkacluster/ApacheKafkaContainerCluster.java @@ -100,5 +100,6 @@ public void start() { @Override public void stop() { this.brokers.stream().parallel().forEach(GenericContainer::stop); + this.network.close(); } } diff --git a/examples/kafka-cluster/src/test/java/com/example/kafkacluster/ConfluentKafkaContainerCluster.java b/examples/kafka-cluster/src/test/java/com/example/kafkacluster/ConfluentKafkaContainerCluster.java index 222050c76c0..d6fcfd03a1e 100644 --- a/examples/kafka-cluster/src/test/java/com/example/kafkacluster/ConfluentKafkaContainerCluster.java +++ b/examples/kafka-cluster/src/test/java/com/example/kafkacluster/ConfluentKafkaContainerCluster.java @@ -101,5 +101,6 @@ public void start() { @Override public void stop() { this.brokers.stream().parallel().forEach(GenericContainer::stop); + this.network.close(); } } diff --git a/examples/kafka-cluster/src/test/java/com/example/kafkacluster/KafkaContainerCluster.java b/examples/kafka-cluster/src/test/java/com/example/kafkacluster/KafkaContainerCluster.java index 403d087af3e..36ae6e6a39e 100644 --- a/examples/kafka-cluster/src/test/java/com/example/kafkacluster/KafkaContainerCluster.java +++ b/examples/kafka-cluster/src/test/java/com/example/kafkacluster/KafkaContainerCluster.java @@ -109,5 +109,6 @@ public void start() { @Override public void stop() { allContainers().parallel().forEach(GenericContainer::stop); + network.close(); } } diff --git a/examples/kafka-cluster/src/test/java/com/example/kafkacluster/KafkaContainerKraftCluster.java b/examples/kafka-cluster/src/test/java/com/example/kafkacluster/KafkaContainerKraftCluster.java index f42e3c5b1ba..3955d1421ee 100644 --- a/examples/kafka-cluster/src/test/java/com/example/kafkacluster/KafkaContainerKraftCluster.java +++ b/examples/kafka-cluster/src/test/java/com/example/kafkacluster/KafkaContainerKraftCluster.java @@ -102,5 +102,6 @@ public void start() { @Override public void stop() { this.brokers.stream().parallel().forEach(GenericContainer::stop); + this.network.close(); } } diff --git a/examples/nats/build.gradle b/examples/nats/build.gradle index 5814d592c20..ea0ba1e10cc 100644 --- a/examples/nats/build.gradle +++ b/examples/nats/build.gradle @@ -12,7 +12,7 @@ dependencies { testImplementation 'io.nats:jnats:2.20.2' testImplementation 'ch.qos.logback:logback-classic:1.3.14' testImplementation 'org.apache.httpcomponents:httpclient:4.5.14' - testImplementation 'org.junit.jupiter:junit-jupiter:5.11.0' + testImplementation 'org.junit.jupiter:junit-jupiter:5.13.0' } test { diff --git a/examples/neo4j-container/build.gradle b/examples/neo4j-container/build.gradle index 186a910be2f..17d043232f9 100644 --- a/examples/neo4j-container/build.gradle +++ b/examples/neo4j-container/build.gradle @@ -11,5 +11,5 @@ dependencies { testImplementation 'org.neo4j.driver:neo4j-java-driver:4.4.18' testImplementation 'org.testcontainers:neo4j' testImplementation 'org.testcontainers:junit-jupiter' - testImplementation 'org.junit.jupiter:junit-jupiter:5.11.0' + testImplementation 'org.junit.jupiter:junit-jupiter:5.13.0' } diff --git a/examples/ollama-hugging-face/build.gradle b/examples/ollama-hugging-face/build.gradle index 77fe23ea1c2..a808223488c 100644 --- a/examples/ollama-hugging-face/build.gradle +++ b/examples/ollama-hugging-face/build.gradle @@ -10,7 +10,7 @@ dependencies { testImplementation 'org.testcontainers:ollama' testImplementation 'org.assertj:assertj-core:3.26.3' testImplementation 'ch.qos.logback:logback-classic:1.3.14' - testImplementation 'org.junit.jupiter:junit-jupiter:5.11.0' + testImplementation 'org.junit.jupiter:junit-jupiter:5.13.0' testImplementation 'io.rest-assured:rest-assured:5.5.0' } diff --git a/examples/redis-backed-cache/build.gradle b/examples/redis-backed-cache/build.gradle index 782416a239b..cba60a1ef60 100644 --- a/examples/redis-backed-cache/build.gradle +++ b/examples/redis-backed-cache/build.gradle @@ -13,7 +13,7 @@ dependencies { implementation 'com.google.guava:guava:23.0' testImplementation 'org.testcontainers:testcontainers' testImplementation 'org.testcontainers:junit-jupiter' - testImplementation 'org.junit.jupiter:junit-jupiter:5.11.0' + testImplementation 'org.junit.jupiter:junit-jupiter:5.13.0' testImplementation 'ch.qos.logback:logback-classic:1.3.14' testImplementation 'org.assertj:assertj-core:3.26.3' } diff --git a/examples/selenium-container/build.gradle b/examples/selenium-container/build.gradle index b7528880ca3..9f80d8f3606 100644 --- a/examples/selenium-container/build.gradle +++ b/examples/selenium-container/build.gradle @@ -17,7 +17,7 @@ dependencies { testImplementation 'org.testcontainers:selenium' testImplementation 'org.testcontainers:junit-jupiter' testImplementation 'org.assertj:assertj-core:3.26.3' - testImplementation 'org.junit.jupiter:junit-jupiter:5.11.0' + testImplementation 'org.junit.jupiter:junit-jupiter:5.13.0' } test { diff --git a/examples/sftp/build.gradle b/examples/sftp/build.gradle index d8ed52d255f..73fc97d48ba 100644 --- a/examples/sftp/build.gradle +++ b/examples/sftp/build.gradle @@ -11,7 +11,7 @@ dependencies { testImplementation 'org.testcontainers:testcontainers' testImplementation 'org.assertj:assertj-core:3.26.3' testImplementation 'ch.qos.logback:logback-classic:1.3.14' - testImplementation 'org.junit.jupiter:junit-jupiter:5.11.0' + testImplementation 'org.junit.jupiter:junit-jupiter:5.13.0' } test { diff --git a/examples/singleton-container/build.gradle b/examples/singleton-container/build.gradle index 4b73e1125c6..192d9909611 100644 --- a/examples/singleton-container/build.gradle +++ b/examples/singleton-container/build.gradle @@ -16,7 +16,7 @@ dependencies { testImplementation 'ch.qos.logback:logback-classic:1.3.14' testImplementation 'org.testcontainers:testcontainers' testImplementation 'org.assertj:assertj-core:3.26.3' - testImplementation 'org.junit.jupiter:junit-jupiter:5.11.0' + testImplementation 'org.junit.jupiter:junit-jupiter:5.13.0' } test { diff --git a/examples/solr-container/build.gradle b/examples/solr-container/build.gradle index 3b61202818e..1bd03f7ddce 100644 --- a/examples/solr-container/build.gradle +++ b/examples/solr-container/build.gradle @@ -15,7 +15,7 @@ dependencies { testImplementation 'org.testcontainers:testcontainers' testImplementation 'org.testcontainers:solr' testImplementation 'org.assertj:assertj-core:3.26.3' - testImplementation 'org.junit.jupiter:junit-jupiter:5.11.0' + testImplementation 'org.junit.jupiter:junit-jupiter:5.13.0' } test { diff --git a/examples/spring-boot-kotlin-redis/build.gradle.kts b/examples/spring-boot-kotlin-redis/build.gradle.kts index 7a4aa917f35..b089d392870 100644 --- a/examples/spring-boot-kotlin-redis/build.gradle.kts +++ b/examples/spring-boot-kotlin-redis/build.gradle.kts @@ -21,9 +21,7 @@ dependencies { testImplementation("org.springframework.boot:spring-boot-starter-test") testImplementation("org.testcontainers:testcontainers") - testImplementation("org.junit.jupiter:junit-jupiter:5.10.0") - - + testImplementation("org.junit.jupiter:junit-jupiter:5.13.0") } tasks.withType { diff --git a/examples/spring-boot/build.gradle b/examples/spring-boot/build.gradle index 657b544e119..d6fe0c13b7c 100644 --- a/examples/spring-boot/build.gradle +++ b/examples/spring-boot/build.gradle @@ -17,7 +17,7 @@ dependencies { runtimeOnly 'org.postgresql:postgresql' testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'org.testcontainers:postgresql' - testImplementation 'org.junit.jupiter:junit-jupiter:5.11.0' + testImplementation 'org.junit.jupiter:junit-jupiter:5.13.0' } test { diff --git a/examples/zookeeper/build.gradle b/examples/zookeeper/build.gradle index 50555fe8f85..8a01286d865 100644 --- a/examples/zookeeper/build.gradle +++ b/examples/zookeeper/build.gradle @@ -11,7 +11,7 @@ dependencies { testImplementation 'org.testcontainers:testcontainers' testImplementation 'org.assertj:assertj-core:3.26.3' testImplementation 'ch.qos.logback:logback-classic:1.3.14' - testImplementation 'org.junit.jupiter:junit-jupiter:5.11.0' + testImplementation 'org.junit.jupiter:junit-jupiter:5.13.0' } test { diff --git a/modules/activemq/src/test/java/org/testcontainers/activemq/ActiveMQContainerTest.java b/modules/activemq/src/test/java/org/testcontainers/activemq/ActiveMQContainerTest.java index 842701fa376..9e328804d47 100644 --- a/modules/activemq/src/test/java/org/testcontainers/activemq/ActiveMQContainerTest.java +++ b/modules/activemq/src/test/java/org/testcontainers/activemq/ActiveMQContainerTest.java @@ -9,7 +9,7 @@ import jakarta.jms.TextMessage; import lombok.SneakyThrows; import org.apache.activemq.ActiveMQConnectionFactory; -import org.junit.Test; +import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; diff --git a/modules/activemq/src/test/java/org/testcontainers/activemq/ArtemisContainerTest.java b/modules/activemq/src/test/java/org/testcontainers/activemq/ArtemisContainerTest.java index cce4b319afd..52cc642a885 100644 --- a/modules/activemq/src/test/java/org/testcontainers/activemq/ArtemisContainerTest.java +++ b/modules/activemq/src/test/java/org/testcontainers/activemq/ArtemisContainerTest.java @@ -8,7 +8,7 @@ import jakarta.jms.TextMessage; import lombok.SneakyThrows; import org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory; -import org.junit.Test; +import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; diff --git a/modules/azure/src/test/java/org/testcontainers/azure/AzuriteContainerTest.java b/modules/azure/src/test/java/org/testcontainers/azure/AzuriteContainerTest.java index 2bf0ad856d3..00e2d68256d 100644 --- a/modules/azure/src/test/java/org/testcontainers/azure/AzuriteContainerTest.java +++ b/modules/azure/src/test/java/org/testcontainers/azure/AzuriteContainerTest.java @@ -11,9 +11,9 @@ import com.azure.storage.queue.QueueClient; import com.azure.storage.queue.QueueServiceClient; import com.azure.storage.queue.QueueServiceClientBuilder; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import org.testcontainers.utility.MountableFile; import java.util.Properties; @@ -26,7 +26,7 @@ public class AzuriteContainerTest { private static Properties originalSystemProperties; - @BeforeClass + @BeforeAll public static void captureOriginalSystemProperties() { originalSystemProperties = (Properties) System.getProperties().clone(); System.setProperty( @@ -37,7 +37,7 @@ public static void captureOriginalSystemProperties() { System.setProperty("javax.net.ssl.trustStoreType", "PKCS12"); } - @AfterClass + @AfterAll public static void restoreOriginalSystemProperties() { System.setProperties(originalSystemProperties); } diff --git a/modules/azure/src/test/java/org/testcontainers/azure/EventHubsEmulatorContainerTest.java b/modules/azure/src/test/java/org/testcontainers/azure/EventHubsEmulatorContainerTest.java index 58d1d7ad59c..062ac38eec5 100644 --- a/modules/azure/src/test/java/org/testcontainers/azure/EventHubsEmulatorContainerTest.java +++ b/modules/azure/src/test/java/org/testcontainers/azure/EventHubsEmulatorContainerTest.java @@ -7,9 +7,11 @@ import com.azure.messaging.eventhubs.EventHubProducerClient; import com.azure.messaging.eventhubs.models.EventPosition; import com.azure.messaging.eventhubs.models.PartitionEvent; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.Network; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.ManagedNetwork; +import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.MountableFile; import java.time.Duration; @@ -19,23 +21,24 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.waitAtMost; +@Testcontainers public class EventHubsEmulatorContainerTest { - @Rule // network { + @ManagedNetwork public Network network = Network.newNetwork(); // } - @Rule // azuriteContainer { + @Container public AzuriteContainer azuriteContainer = new AzuriteContainer("mcr.microsoft.com/azure-storage/azurite:3.33.0") .withNetwork(network); // } - @Rule // emulatorContainer { + @Container public EventHubsEmulatorContainer emulator = new EventHubsEmulatorContainer( "mcr.microsoft.com/azure-messaging/eventhubs-emulator:2.0.1" ) diff --git a/modules/azure/src/test/java/org/testcontainers/azure/ServiceBusEmulatorContainerTest.java b/modules/azure/src/test/java/org/testcontainers/azure/ServiceBusEmulatorContainerTest.java index 4676e41784a..53ceb9a5bbd 100644 --- a/modules/azure/src/test/java/org/testcontainers/azure/ServiceBusEmulatorContainerTest.java +++ b/modules/azure/src/test/java/org/testcontainers/azure/ServiceBusEmulatorContainerTest.java @@ -9,10 +9,12 @@ import com.azure.messaging.servicebus.ServiceBusSenderClient; import com.github.dockerjava.api.model.Capability; import org.assertj.core.api.Assertions; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.MSSQLServerContainer; import org.testcontainers.containers.Network; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.ManagedNetwork; +import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.MountableFile; import java.util.List; @@ -23,16 +25,17 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +@Testcontainers public class ServiceBusEmulatorContainerTest { - @Rule // network { + @ManagedNetwork public Network network = Network.newNetwork(); // } - @Rule // sqlContainer { + @Container public MSSQLServerContainer mssqlServerContainer = new MSSQLServerContainer<>( "mcr.microsoft.com/mssql/server:2022-CU14-ubuntu-22.04" ) @@ -45,8 +48,8 @@ public class ServiceBusEmulatorContainerTest { // } - @Rule // emulatorContainer { + @Container public ServiceBusEmulatorContainer emulator = new ServiceBusEmulatorContainer( "mcr.microsoft.com/azure-messaging/servicebus-emulator:1.1.2" ) diff --git a/modules/azure/src/test/java/org/testcontainers/containers/CosmosDBEmulatorContainerTest.java b/modules/azure/src/test/java/org/testcontainers/containers/CosmosDBEmulatorContainerTest.java index 140bd64c39a..bc1609ccbaf 100644 --- a/modules/azure/src/test/java/org/testcontainers/containers/CosmosDBEmulatorContainerTest.java +++ b/modules/azure/src/test/java/org/testcontainers/containers/CosmosDBEmulatorContainerTest.java @@ -4,11 +4,12 @@ import com.azure.cosmos.CosmosClientBuilder; import com.azure.cosmos.models.CosmosContainerResponse; import com.azure.cosmos.models.CosmosDatabaseResponse; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.DockerImageName; import java.io.FileOutputStream; @@ -18,25 +19,26 @@ import static org.assertj.core.api.Assertions.assertThat; +@Testcontainers public class CosmosDBEmulatorContainerTest { private static Properties originalSystemProperties; - @BeforeClass + @BeforeAll public static void captureOriginalSystemProperties() { originalSystemProperties = (Properties) System.getProperties().clone(); } - @AfterClass + @AfterAll public static void restoreOriginalSystemProperties() { System.setProperties(originalSystemProperties); } - @Rule - public TemporaryFolder tempFolder = TemporaryFolder.builder().assureDeletion().build(); + @TempDir + public Path tempFolder; - @Rule // emulatorContainer { + @Container public CosmosDBEmulatorContainer emulator = new CosmosDBEmulatorContainer( DockerImageName.parse("mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:latest") ); @@ -46,7 +48,7 @@ public static void restoreOriginalSystemProperties() { @Test public void testWithCosmosClient() throws Exception { // buildAndSaveNewKeyStore { - Path keyStoreFile = tempFolder.newFile("azure-cosmos-emulator.keystore").toPath(); + Path keyStoreFile = tempFolder.resolve("azure-cosmos-emulator.keystore"); KeyStore keyStore = emulator.buildNewKeyStore(); keyStore.store(new FileOutputStream(keyStoreFile.toFile()), emulator.getEmulatorKey().toCharArray()); // } diff --git a/modules/cassandra/src/test/java/org/testcontainers/cassandra/CassandraContainerTest.java b/modules/cassandra/src/test/java/org/testcontainers/cassandra/CassandraContainerTest.java index d156a28ef0c..0bd83417af3 100644 --- a/modules/cassandra/src/test/java/org/testcontainers/cassandra/CassandraContainerTest.java +++ b/modules/cassandra/src/test/java/org/testcontainers/cassandra/CassandraContainerTest.java @@ -3,12 +3,13 @@ import com.datastax.oss.driver.api.core.CqlSession; import com.datastax.oss.driver.api.core.cql.ResultSet; import com.datastax.oss.driver.api.core.cql.Row; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.ContainerLaunchException; import org.testcontainers.utility.DockerImageName; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.catchThrowable; +import static org.assertj.core.api.Assertions.catchThrowableOfType; public class CassandraContainerTest { @@ -61,13 +62,15 @@ public void testConfigurationOverride() { } } - @Test(expected = ContainerLaunchException.class) + @Test public void testEmptyConfigurationOverride() { try ( CassandraContainer cassandraContainer = new CassandraContainer(CASSANDRA_IMAGE) .withConfigurationOverride("cassandra-empty-configuration") ) { - cassandraContainer.start(); + catchThrowableOfType(ContainerLaunchException.class, () -> + cassandraContainer.start() + ); } } @@ -106,13 +109,15 @@ public void testInitScriptWithRequiredAuthentication() { } } - @Test(expected = ContainerLaunchException.class) + @Test public void testInitScriptWithError() { try ( CassandraContainer cassandraContainer = new CassandraContainer(CASSANDRA_IMAGE) .withInitScript("initial-with-error.cql") ) { - cassandraContainer.start(); + catchThrowableOfType(ContainerLaunchException.class, () -> + cassandraContainer.start() + ); } } diff --git a/modules/cassandra/src/test/java/org/testcontainers/cassandra/CompatibleCassandraImageTest.java b/modules/cassandra/src/test/java/org/testcontainers/cassandra/CompatibleCassandraImageTest.java index 868e11c881e..9309dd9766a 100644 --- a/modules/cassandra/src/test/java/org/testcontainers/cassandra/CompatibleCassandraImageTest.java +++ b/modules/cassandra/src/test/java/org/testcontainers/cassandra/CompatibleCassandraImageTest.java @@ -3,21 +3,22 @@ import com.datastax.oss.driver.api.core.CqlIdentifier; import com.datastax.oss.driver.api.core.CqlSession; import com.datastax.oss.driver.api.core.metadata.schema.KeyspaceMetadata; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.Parameter; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import static org.assertj.core.api.Assertions.assertThat; -@RunWith(Parameterized.class) +@ParameterizedClass +@MethodSource("params") public class CompatibleCassandraImageTest { - @Parameterized.Parameters(name = "{0}") public static String[] params() { return new String[] { "cassandra:3.11.2", "cassandra:4.1.1", "cassandra:5" }; } - @Parameterized.Parameter + @Parameter(0) public String imageName; @Test diff --git a/modules/cassandra/src/test/java/org/testcontainers/containers/CassandraContainerTest.java b/modules/cassandra/src/test/java/org/testcontainers/containers/CassandraContainerTest.java index eb3a8b068ea..eb8afcbe4b5 100644 --- a/modules/cassandra/src/test/java/org/testcontainers/containers/CassandraContainerTest.java +++ b/modules/cassandra/src/test/java/org/testcontainers/containers/CassandraContainerTest.java @@ -5,11 +5,12 @@ import com.datastax.driver.core.Row; import com.datastax.driver.core.Session; import lombok.extern.slf4j.Slf4j; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.wait.CassandraQueryWaitStrategy; import org.testcontainers.utility.DockerImageName; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.catchThrowableOfType; @Slf4j public class CassandraContainerTest { @@ -60,13 +61,15 @@ public void testConfigurationOverride() { } } - @Test(expected = ContainerLaunchException.class) + @Test public void testEmptyConfigurationOverride() { try ( CassandraContainer cassandraContainer = new CassandraContainer<>(CASSANDRA_IMAGE) .withConfigurationOverride("cassandra-empty-configuration") ) { - cassandraContainer.start(); + catchThrowableOfType(ContainerLaunchException.class, () -> + cassandraContainer.start() + ); } } diff --git a/modules/cassandra/src/test/java/org/testcontainers/containers/CompatibleCassandraImageTest.java b/modules/cassandra/src/test/java/org/testcontainers/containers/CompatibleCassandraImageTest.java index dc5e830f79a..c9895dc6204 100644 --- a/modules/cassandra/src/test/java/org/testcontainers/containers/CompatibleCassandraImageTest.java +++ b/modules/cassandra/src/test/java/org/testcontainers/containers/CompatibleCassandraImageTest.java @@ -3,21 +3,22 @@ import com.datastax.oss.driver.api.core.CqlIdentifier; import com.datastax.oss.driver.api.core.CqlSession; import com.datastax.oss.driver.api.core.metadata.schema.KeyspaceMetadata; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.Parameter; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import static org.assertj.core.api.Assertions.assertThat; -@RunWith(Parameterized.class) +@ParameterizedClass +@MethodSource("params") public class CompatibleCassandraImageTest { - @Parameterized.Parameters(name = "{0}") public static String[] params() { return new String[] { "cassandra:3.11.2", "cassandra:4.1.1" }; } - @Parameterized.Parameter + @Parameter(0) public String imageName; @Test diff --git a/modules/chromadb/src/test/java/org/testcontainers/chromadb/ChromaDBContainerTest.java b/modules/chromadb/src/test/java/org/testcontainers/chromadb/ChromaDBContainerTest.java index 0ec6b00601c..cc60569b889 100644 --- a/modules/chromadb/src/test/java/org/testcontainers/chromadb/ChromaDBContainerTest.java +++ b/modules/chromadb/src/test/java/org/testcontainers/chromadb/ChromaDBContainerTest.java @@ -1,7 +1,7 @@ package org.testcontainers.chromadb; import io.restassured.http.ContentType; -import org.junit.Test; +import org.junit.jupiter.api.Test; import static io.restassured.RestAssured.given; diff --git a/modules/clickhouse/src/test/java/org/testcontainers/clickhouse/ClickHouseContainerTest.java b/modules/clickhouse/src/test/java/org/testcontainers/clickhouse/ClickHouseContainerTest.java index d5389b610c4..a8de07a0d48 100644 --- a/modules/clickhouse/src/test/java/org/testcontainers/clickhouse/ClickHouseContainerTest.java +++ b/modules/clickhouse/src/test/java/org/testcontainers/clickhouse/ClickHouseContainerTest.java @@ -1,6 +1,6 @@ package org.testcontainers.clickhouse; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.ClickhouseTestImages; import org.testcontainers.db.AbstractContainerDatabaseTest; diff --git a/modules/clickhouse/src/test/java/org/testcontainers/jdbc/clickhouse/ClickhouseJDBCDriverTest.java b/modules/clickhouse/src/test/java/org/testcontainers/jdbc/clickhouse/ClickhouseJDBCDriverTest.java index 056aace7772..140f72ade91 100644 --- a/modules/clickhouse/src/test/java/org/testcontainers/jdbc/clickhouse/ClickhouseJDBCDriverTest.java +++ b/modules/clickhouse/src/test/java/org/testcontainers/jdbc/clickhouse/ClickhouseJDBCDriverTest.java @@ -1,16 +1,16 @@ package org.testcontainers.jdbc.clickhouse; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.testcontainers.jdbc.AbstractJDBCDriverTest; import java.util.Arrays; import java.util.EnumSet; -@RunWith(Parameterized.class) +@ParameterizedClass +@MethodSource("data") public class ClickhouseJDBCDriverTest extends AbstractJDBCDriverTest { - @Parameterized.Parameters(name = "{index} - {0}") public static Iterable data() { return Arrays.asList( new Object[][] { // diff --git a/modules/clickhouse/src/test/java/org/testcontainers/junit/clickhouse/SimpleClickhouseTest.java b/modules/clickhouse/src/test/java/org/testcontainers/junit/clickhouse/SimpleClickhouseTest.java index eb33274ce6b..058e64305cb 100644 --- a/modules/clickhouse/src/test/java/org/testcontainers/junit/clickhouse/SimpleClickhouseTest.java +++ b/modules/clickhouse/src/test/java/org/testcontainers/junit/clickhouse/SimpleClickhouseTest.java @@ -1,8 +1,8 @@ package org.testcontainers.junit.clickhouse; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.testcontainers.ClickhouseTestImages; import org.testcontainers.containers.ClickHouseContainer; import org.testcontainers.db.AbstractContainerDatabaseTest; @@ -13,7 +13,8 @@ import static org.assertj.core.api.Assertions.assertThat; -@RunWith(Parameterized.class) +@ParameterizedClass +@MethodSource("data") public class SimpleClickhouseTest extends AbstractContainerDatabaseTest { private final DockerImageName imageName; @@ -22,7 +23,6 @@ public SimpleClickhouseTest(DockerImageName imageName) { this.imageName = imageName; } - @Parameterized.Parameters(name = "{0}") public static Object[][] data() { return new Object[][] { // { ClickhouseTestImages.CLICKHOUSE_IMAGE }, diff --git a/modules/cockroachdb/src/test/java/org/testcontainers/jdbc/cockroachdb/CockroachDBJDBCDriverTest.java b/modules/cockroachdb/src/test/java/org/testcontainers/jdbc/cockroachdb/CockroachDBJDBCDriverTest.java index b5e147ce553..651479ac9b5 100644 --- a/modules/cockroachdb/src/test/java/org/testcontainers/jdbc/cockroachdb/CockroachDBJDBCDriverTest.java +++ b/modules/cockroachdb/src/test/java/org/testcontainers/jdbc/cockroachdb/CockroachDBJDBCDriverTest.java @@ -1,16 +1,16 @@ package org.testcontainers.jdbc.cockroachdb; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.testcontainers.jdbc.AbstractJDBCDriverTest; import java.util.Arrays; import java.util.EnumSet; -@RunWith(Parameterized.class) +@ParameterizedClass +@MethodSource("data") public class CockroachDBJDBCDriverTest extends AbstractJDBCDriverTest { - @Parameterized.Parameters(name = "{index} - {0}") public static Iterable data() { return Arrays.asList( new Object[][] { // diff --git a/modules/cockroachdb/src/test/java/org/testcontainers/junit/cockroachdb/SimpleCockroachDBTest.java b/modules/cockroachdb/src/test/java/org/testcontainers/junit/cockroachdb/SimpleCockroachDBTest.java index 9ea8dd6c770..76de2dfe96c 100644 --- a/modules/cockroachdb/src/test/java/org/testcontainers/junit/cockroachdb/SimpleCockroachDBTest.java +++ b/modules/cockroachdb/src/test/java/org/testcontainers/junit/cockroachdb/SimpleCockroachDBTest.java @@ -1,6 +1,6 @@ package org.testcontainers.junit.cockroachdb; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.CockroachDBTestImages; import org.testcontainers.containers.CockroachContainer; import org.testcontainers.db.AbstractContainerDatabaseTest; diff --git a/modules/consul/src/test/java/org/testcontainers/consul/ConsulContainerTest.java b/modules/consul/src/test/java/org/testcontainers/consul/ConsulContainerTest.java index 7f1c6d1c207..0d568d09739 100644 --- a/modules/consul/src/test/java/org/testcontainers/consul/ConsulContainerTest.java +++ b/modules/consul/src/test/java/org/testcontainers/consul/ConsulContainerTest.java @@ -4,9 +4,10 @@ import com.ecwid.consul.v1.Response; import com.ecwid.consul.v1.kv.model.GetValue; import io.restassured.RestAssured; -import org.junit.ClassRule; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.GenericContainer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import java.io.IOException; import java.nio.charset.StandardCharsets; @@ -17,12 +18,13 @@ import static org.assertj.core.api.Assertions.assertThat; /** - * This test shows the pattern to use the ConsulContainer @ClassRule for a junit test. It also has tests that ensure + * This test shows the pattern to use the {@link ConsulContainer} for a junit test. It also has tests that ensure * the properties were added correctly by reading from Consul with the CLI and over HTTP. */ +@Testcontainers public class ConsulContainerTest { - @ClassRule + @Container public static ConsulContainer consulContainer = new ConsulContainer("hashicorp/consul:1.15") .withConsulCommand("kv put config/testing1 value123"); diff --git a/modules/couchbase/src/test/java/org/testcontainers/couchbase/CouchbaseContainerTest.java b/modules/couchbase/src/test/java/org/testcontainers/couchbase/CouchbaseContainerTest.java index b78e3666f31..9b7465d564e 100644 --- a/modules/couchbase/src/test/java/org/testcontainers/couchbase/CouchbaseContainerTest.java +++ b/modules/couchbase/src/test/java/org/testcontainers/couchbase/CouchbaseContainerTest.java @@ -20,7 +20,7 @@ import com.couchbase.client.java.Cluster; import com.couchbase.client.java.Collection; import com.couchbase.client.java.json.JsonObject; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.ContainerLaunchException; import java.time.Duration; diff --git a/modules/cratedb/src/test/java/org/testcontainers/jdbc/cratedb/CrateDBJDBCDriverTest.java b/modules/cratedb/src/test/java/org/testcontainers/jdbc/cratedb/CrateDBJDBCDriverTest.java index 54ef9704ac5..b7c24cf65f4 100644 --- a/modules/cratedb/src/test/java/org/testcontainers/jdbc/cratedb/CrateDBJDBCDriverTest.java +++ b/modules/cratedb/src/test/java/org/testcontainers/jdbc/cratedb/CrateDBJDBCDriverTest.java @@ -1,16 +1,16 @@ package org.testcontainers.jdbc.cratedb; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.testcontainers.jdbc.AbstractJDBCDriverTest; import java.util.Arrays; import java.util.EnumSet; -@RunWith(Parameterized.class) +@ParameterizedClass +@MethodSource("data") public class CrateDBJDBCDriverTest extends AbstractJDBCDriverTest { - @Parameterized.Parameters(name = "{index} - {0}") public static Iterable data() { return Arrays.asList( new Object[][] { diff --git a/modules/cratedb/src/test/java/org/testcontainers/junit/cratedb/SimpleCrateDBTest.java b/modules/cratedb/src/test/java/org/testcontainers/junit/cratedb/SimpleCrateDBTest.java index c36b1432100..8baf4d0bb31 100644 --- a/modules/cratedb/src/test/java/org/testcontainers/junit/cratedb/SimpleCrateDBTest.java +++ b/modules/cratedb/src/test/java/org/testcontainers/junit/cratedb/SimpleCrateDBTest.java @@ -1,6 +1,6 @@ package org.testcontainers.junit.cratedb; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.CrateDBTestImages; import org.testcontainers.cratedb.CrateDBContainer; import org.testcontainers.db.AbstractContainerDatabaseTest; diff --git a/modules/database-commons/src/test/java/org/testcontainers/ext/ScriptScannerTest.java b/modules/database-commons/src/test/java/org/testcontainers/ext/ScriptScannerTest.java index 7e24026c4ec..8fe594bd346 100644 --- a/modules/database-commons/src/test/java/org/testcontainers/ext/ScriptScannerTest.java +++ b/modules/database-commons/src/test/java/org/testcontainers/ext/ScriptScannerTest.java @@ -1,7 +1,7 @@ package org.testcontainers.ext; import org.apache.commons.lang3.StringUtils; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.regex.Pattern; diff --git a/modules/database-commons/src/test/java/org/testcontainers/ext/ScriptSplittingTest.java b/modules/database-commons/src/test/java/org/testcontainers/ext/ScriptSplittingTest.java index 3f78e5c51db..9b3861d73b4 100644 --- a/modules/database-commons/src/test/java/org/testcontainers/ext/ScriptSplittingTest.java +++ b/modules/database-commons/src/test/java/org/testcontainers/ext/ScriptSplittingTest.java @@ -1,6 +1,6 @@ package org.testcontainers.ext; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.ArrayList; import java.util.Arrays; diff --git a/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java b/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java index 92f4842d119..5c616e5d2a1 100644 --- a/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java +++ b/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java @@ -1,6 +1,6 @@ package org.testcontainers.databend; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.db.AbstractContainerDatabaseTest; import java.sql.ResultSet; diff --git a/modules/databend/src/test/java/org/testcontainers/databend/DatabendJDBCDriverTest.java b/modules/databend/src/test/java/org/testcontainers/databend/DatabendJDBCDriverTest.java index a36039dc8d1..b6833831690 100644 --- a/modules/databend/src/test/java/org/testcontainers/databend/DatabendJDBCDriverTest.java +++ b/modules/databend/src/test/java/org/testcontainers/databend/DatabendJDBCDriverTest.java @@ -1,16 +1,17 @@ package org.testcontainers.databend; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; import org.testcontainers.jdbc.AbstractJDBCDriverTest; import java.util.Arrays; import java.util.EnumSet; -@RunWith(Parameterized.class) +@ParameterizedClass +@MethodSource("data") public class DatabendJDBCDriverTest extends AbstractJDBCDriverTest { - @Parameterized.Parameters(name = "{index} - {0}") public static Iterable data() { return Arrays.asList( new Object[][] { // diff --git a/modules/db2/src/test/java/org/testcontainers/jdbc/db2/DB2JDBCDriverTest.java b/modules/db2/src/test/java/org/testcontainers/jdbc/db2/DB2JDBCDriverTest.java index 4a03f824a28..63ebce07b32 100644 --- a/modules/db2/src/test/java/org/testcontainers/jdbc/db2/DB2JDBCDriverTest.java +++ b/modules/db2/src/test/java/org/testcontainers/jdbc/db2/DB2JDBCDriverTest.java @@ -1,16 +1,17 @@ package org.testcontainers.jdbc.db2; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; import org.testcontainers.jdbc.AbstractJDBCDriverTest; import java.util.Arrays; import java.util.EnumSet; -@RunWith(Parameterized.class) +@ParameterizedClass +@MethodSource("data") public class DB2JDBCDriverTest extends AbstractJDBCDriverTest { - @Parameterized.Parameters(name = "{index} - {0}") public static Iterable data() { return Arrays.asList( new Object[][] { // diff --git a/modules/db2/src/test/java/org/testcontainers/junit/db2/SimpleDb2Test.java b/modules/db2/src/test/java/org/testcontainers/junit/db2/SimpleDb2Test.java index 2cffbdb117a..98686d33f1a 100644 --- a/modules/db2/src/test/java/org/testcontainers/junit/db2/SimpleDb2Test.java +++ b/modules/db2/src/test/java/org/testcontainers/junit/db2/SimpleDb2Test.java @@ -1,6 +1,6 @@ package org.testcontainers.junit.db2; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.Db2TestImages; import org.testcontainers.containers.Db2Container; import org.testcontainers.db.AbstractContainerDatabaseTest; diff --git a/modules/dynalite/src/test/java/org/testcontainers/dynamodb/DynaliteContainerTest.java b/modules/dynalite/src/test/java/org/testcontainers/dynamodb/DynaliteContainerTest.java index 2a4e94e9516..68d5a8173cd 100644 --- a/modules/dynalite/src/test/java/org/testcontainers/dynamodb/DynaliteContainerTest.java +++ b/modules/dynalite/src/test/java/org/testcontainers/dynamodb/DynaliteContainerTest.java @@ -9,21 +9,23 @@ import com.amazonaws.services.dynamodbv2.model.ProvisionedThroughput; import com.amazonaws.services.dynamodbv2.model.ScalarAttributeType; import com.amazonaws.services.dynamodbv2.model.TableDescription; -import org.junit.Ignore; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.DockerImageName; import static org.assertj.core.api.Assertions.assertThat; -@Ignore("Image is not compatible with the latest Docker version provided by GH Actions") +@Testcontainers +@Disabled("Image is not compatible with the latest Docker version provided by GH Actions") public class DynaliteContainerTest { private static final DockerImageName DYNALITE_IMAGE = DockerImageName.parse( "quay.io/testcontainers/dynalite:v1.2.1-1" ); - @Rule + @Container public DynaliteContainer dynamoDB = new DynaliteContainer(DYNALITE_IMAGE); @Test diff --git a/modules/elasticsearch/src/test/java/org/testcontainers/elasticsearch/ElasticsearchContainerTest.java b/modules/elasticsearch/src/test/java/org/testcontainers/elasticsearch/ElasticsearchContainerTest.java index 18fc0fc9fde..45f591733ec 100644 --- a/modules/elasticsearch/src/test/java/org/testcontainers/elasticsearch/ElasticsearchContainerTest.java +++ b/modules/elasticsearch/src/test/java/org/testcontainers/elasticsearch/ElasticsearchContainerTest.java @@ -16,8 +16,8 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.transport.TransportAddress; import org.elasticsearch.transport.client.PreBuiltTransportClient; -import org.junit.After; -import org.junit.Test; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Test; import org.testcontainers.DockerClientFactory; import org.testcontainers.containers.BindMode; import org.testcontainers.containers.wait.strategy.HttpWaitStrategy; @@ -59,7 +59,7 @@ public class ElasticsearchContainerTest { private RestClient anonymousClient = null; - @After + @AfterEach public void stopRestClient() throws IOException { if (client != null) { client.close(); diff --git a/modules/gcloud/src/test/java/org/testcontainers/containers/BigQueryEmulatorContainerTest.java b/modules/gcloud/src/test/java/org/testcontainers/containers/BigQueryEmulatorContainerTest.java index 01fcbe137a6..9884b46fbd4 100644 --- a/modules/gcloud/src/test/java/org/testcontainers/containers/BigQueryEmulatorContainerTest.java +++ b/modules/gcloud/src/test/java/org/testcontainers/containers/BigQueryEmulatorContainerTest.java @@ -5,7 +5,7 @@ import com.google.cloud.bigquery.BigQueryOptions; import com.google.cloud.bigquery.QueryJobConfiguration; import com.google.cloud.bigquery.TableResult; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.math.BigDecimal; import java.util.List; diff --git a/modules/gcloud/src/test/java/org/testcontainers/containers/BigtableEmulatorContainerTest.java b/modules/gcloud/src/test/java/org/testcontainers/containers/BigtableEmulatorContainerTest.java index 8a100855b3c..fbac7341a9e 100644 --- a/modules/gcloud/src/test/java/org/testcontainers/containers/BigtableEmulatorContainerTest.java +++ b/modules/gcloud/src/test/java/org/testcontainers/containers/BigtableEmulatorContainerTest.java @@ -18,8 +18,9 @@ import com.google.cloud.bigtable.data.v2.models.TableId; import io.grpc.ManagedChannel; import io.grpc.ManagedChannelBuilder; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.Test; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.DockerImageName; import java.io.IOException; @@ -27,14 +28,15 @@ import static org.assertj.core.api.Assertions.assertThat; +@Testcontainers public class BigtableEmulatorContainerTest { public static final String PROJECT_ID = "test-project"; public static final String INSTANCE_ID = "test-instance"; - @Rule // emulatorContainer { + @Container public BigtableEmulatorContainer emulator = new BigtableEmulatorContainer( DockerImageName.parse("gcr.io/google.com/cloudsdktool/google-cloud-cli:441.0.0-emulators") ); diff --git a/modules/gcloud/src/test/java/org/testcontainers/containers/DatastoreEmulatorContainerTest.java b/modules/gcloud/src/test/java/org/testcontainers/containers/DatastoreEmulatorContainerTest.java index 7ea0ceb9a49..c5211609a08 100644 --- a/modules/gcloud/src/test/java/org/testcontainers/containers/DatastoreEmulatorContainerTest.java +++ b/modules/gcloud/src/test/java/org/testcontainers/containers/DatastoreEmulatorContainerTest.java @@ -6,18 +6,20 @@ import com.google.cloud.datastore.DatastoreOptions; import com.google.cloud.datastore.Entity; import com.google.cloud.datastore.Key; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.Test; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.DockerImageName; import java.io.IOException; import static org.assertj.core.api.Assertions.assertThat; +@Testcontainers public class DatastoreEmulatorContainerTest { - @Rule // creatingDatastoreEmulatorContainer { + @Container public DatastoreEmulatorContainer emulator = new DatastoreEmulatorContainer( DockerImageName.parse("gcr.io/google.com/cloudsdktool/google-cloud-cli:441.0.0-emulators") ); diff --git a/modules/gcloud/src/test/java/org/testcontainers/containers/FirestoreEmulatorContainerTest.java b/modules/gcloud/src/test/java/org/testcontainers/containers/FirestoreEmulatorContainerTest.java index 0d9773ce87a..178f3982bbf 100644 --- a/modules/gcloud/src/test/java/org/testcontainers/containers/FirestoreEmulatorContainerTest.java +++ b/modules/gcloud/src/test/java/org/testcontainers/containers/FirestoreEmulatorContainerTest.java @@ -8,8 +8,9 @@ import com.google.cloud.firestore.FirestoreOptions; import com.google.cloud.firestore.QuerySnapshot; import com.google.cloud.firestore.WriteResult; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.Test; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.DockerImageName; import java.util.HashMap; @@ -18,10 +19,11 @@ import static org.assertj.core.api.Assertions.assertThat; +@Testcontainers public class FirestoreEmulatorContainerTest { - @Rule // emulatorContainer { + @Container public FirestoreEmulatorContainer emulator = new FirestoreEmulatorContainer( DockerImageName.parse("gcr.io/google.com/cloudsdktool/google-cloud-cli:441.0.0-emulators") ); diff --git a/modules/gcloud/src/test/java/org/testcontainers/containers/PubSubEmulatorContainerTest.java b/modules/gcloud/src/test/java/org/testcontainers/containers/PubSubEmulatorContainerTest.java index b2f75f0f36a..c50558ee129 100644 --- a/modules/gcloud/src/test/java/org/testcontainers/containers/PubSubEmulatorContainerTest.java +++ b/modules/gcloud/src/test/java/org/testcontainers/containers/PubSubEmulatorContainerTest.java @@ -22,20 +22,22 @@ import com.google.pubsub.v1.TopicName; import io.grpc.ManagedChannel; import io.grpc.ManagedChannelBuilder; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.Test; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.DockerImageName; import java.io.IOException; import static org.assertj.core.api.Assertions.assertThat; +@Testcontainers public class PubSubEmulatorContainerTest { public static final String PROJECT_ID = "my-project-id"; - @Rule // emulatorContainer { + @Container public PubSubEmulatorContainer emulator = new PubSubEmulatorContainer( DockerImageName.parse("gcr.io/google.com/cloudsdktool/google-cloud-cli:441.0.0-emulators") ); diff --git a/modules/gcloud/src/test/java/org/testcontainers/containers/SpannerEmulatorContainerTest.java b/modules/gcloud/src/test/java/org/testcontainers/containers/SpannerEmulatorContainerTest.java index b246e7e1f0d..e09263b4b85 100644 --- a/modules/gcloud/src/test/java/org/testcontainers/containers/SpannerEmulatorContainerTest.java +++ b/modules/gcloud/src/test/java/org/testcontainers/containers/SpannerEmulatorContainerTest.java @@ -14,8 +14,9 @@ import com.google.cloud.spanner.Spanner; import com.google.cloud.spanner.SpannerOptions; import com.google.cloud.spanner.Statement; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.Test; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.DockerImageName; import java.util.Arrays; @@ -23,10 +24,11 @@ import static org.assertj.core.api.Assertions.assertThat; +@Testcontainers public class SpannerEmulatorContainerTest { - @Rule // emulatorContainer { + @Container public SpannerEmulatorContainer emulator = new SpannerEmulatorContainer( DockerImageName.parse("gcr.io/cloud-spanner-emulator/emulator:1.4.0") ); diff --git a/modules/grafana/src/test/java/org/testcontainers/grafana/LgtmStackContainerTest.java b/modules/grafana/src/test/java/org/testcontainers/grafana/LgtmStackContainerTest.java index ba4fb94856c..87424cc6dc1 100644 --- a/modules/grafana/src/test/java/org/testcontainers/grafana/LgtmStackContainerTest.java +++ b/modules/grafana/src/test/java/org/testcontainers/grafana/LgtmStackContainerTest.java @@ -21,7 +21,7 @@ import io.restassured.RestAssured; import io.restassured.response.Response; import org.awaitility.Awaitility; -import org.junit.Test; +import org.junit.jupiter.api.Test; import uk.org.webcompere.systemstubs.SystemStubs; import java.time.Duration; diff --git a/modules/hivemq/build.gradle b/modules/hivemq/build.gradle index 1c748a8d2e3..798bb2692dc 100644 --- a/modules/hivemq/build.gradle +++ b/modules/hivemq/build.gradle @@ -11,7 +11,7 @@ dependencies { shaded("org.jboss.shrinkwrap:shrinkwrap-impl-base:1.2.6") shaded("net.lingala.zip4j:zip4j:2.11.5") - testImplementation("org.junit.jupiter:junit-jupiter:5.10.3") + testImplementation("org.junit.jupiter:junit-jupiter:5.13.0") testImplementation(project(":junit-jupiter")) testImplementation("com.hivemq:hivemq-extension-sdk:4.32.0") testImplementation("com.hivemq:hivemq-mqtt-client:1.3.3") diff --git a/modules/influxdb/src/test/java/org/testcontainers/containers/InfluxDBContainerTest.java b/modules/influxdb/src/test/java/org/testcontainers/containers/InfluxDBContainerTest.java index a3862fb7242..64acbbf29e9 100644 --- a/modules/influxdb/src/test/java/org/testcontainers/containers/InfluxDBContainerTest.java +++ b/modules/influxdb/src/test/java/org/testcontainers/containers/InfluxDBContainerTest.java @@ -11,7 +11,7 @@ import com.influxdb.client.write.Point; import com.influxdb.query.FluxRecord; import com.influxdb.query.FluxTable; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.utility.DockerImageName; import java.time.Instant; diff --git a/modules/influxdb/src/test/java/org/testcontainers/containers/InfluxDBContainerV1Test.java b/modules/influxdb/src/test/java/org/testcontainers/containers/InfluxDBContainerV1Test.java index c9e292c5675..c154963a044 100644 --- a/modules/influxdb/src/test/java/org/testcontainers/containers/InfluxDBContainerV1Test.java +++ b/modules/influxdb/src/test/java/org/testcontainers/containers/InfluxDBContainerV1Test.java @@ -5,7 +5,7 @@ import org.influxdb.dto.Point; import org.influxdb.dto.Query; import org.influxdb.dto.QueryResult; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.utility.DockerImageName; import java.util.concurrent.TimeUnit; diff --git a/modules/jdbc-test/build.gradle b/modules/jdbc-test/build.gradle index a4c42db38ce..b9b5d640d76 100644 --- a/modules/jdbc-test/build.gradle +++ b/modules/jdbc-test/build.gradle @@ -1,6 +1,9 @@ dependencies { api project(':jdbc') + api platform("org.junit:junit-bom:5.13.0") + api 'org.junit.jupiter:junit-jupiter' + api 'com.google.guava:guava:33.3.1-jre' api 'org.apache.commons:commons-lang3:3.17.0' api 'com.zaxxer:HikariCP-java6:2.3.13' diff --git a/modules/jdbc-test/src/main/java/org/testcontainers/jdbc/AbstractJDBCDriverTest.java b/modules/jdbc-test/src/main/java/org/testcontainers/jdbc/AbstractJDBCDriverTest.java index 5a22e37ecfc..557777cbc77 100644 --- a/modules/jdbc-test/src/main/java/org/testcontainers/jdbc/AbstractJDBCDriverTest.java +++ b/modules/jdbc-test/src/main/java/org/testcontainers/jdbc/AbstractJDBCDriverTest.java @@ -4,9 +4,9 @@ import com.zaxxer.hikari.HikariDataSource; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.lang3.SystemUtils; -import org.junit.AfterClass; -import org.junit.Test; -import org.junit.runners.Parameterized.Parameter; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.Parameter; import java.sql.Connection; import java.sql.ResultSet; @@ -27,7 +27,7 @@ protected enum Options { PmdKnownBroken, } - @Parameter + @Parameter(0) public String jdbcUrl; @Parameter(1) @@ -39,7 +39,7 @@ public static void sampleInitFunction(Connection connection) throws SQLException connection.createStatement().execute("CREATE TABLE my_counter (\n" + " n INT\n" + ");"); } - @AfterClass + @AfterAll public static void testCleanup() { ContainerDatabaseDriver.killContainers(); } diff --git a/modules/jdbc/src/test/java/org/testcontainers/containers/JdbcDatabaseContainerTest.java b/modules/jdbc/src/test/java/org/testcontainers/containers/JdbcDatabaseContainerTest.java index 1dc6646bd17..48f946c5cab 100644 --- a/modules/jdbc/src/test/java/org/testcontainers/containers/JdbcDatabaseContainerTest.java +++ b/modules/jdbc/src/test/java/org/testcontainers/containers/JdbcDatabaseContainerTest.java @@ -1,7 +1,7 @@ package org.testcontainers.containers; import lombok.NonNull; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.slf4j.Logger; import java.sql.Connection; diff --git a/modules/jdbc/src/test/java/org/testcontainers/jdbc/ConnectionUrlDriversTests.java b/modules/jdbc/src/test/java/org/testcontainers/jdbc/ConnectionUrlDriversTests.java index 394451bc6a9..ad5ffb49d1e 100644 --- a/modules/jdbc/src/test/java/org/testcontainers/jdbc/ConnectionUrlDriversTests.java +++ b/modules/jdbc/src/test/java/org/testcontainers/jdbc/ConnectionUrlDriversTests.java @@ -1,9 +1,9 @@ package org.testcontainers.jdbc; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; -import org.junit.runners.Parameterized.Parameter; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; +import org.junit.jupiter.params.Parameter; import java.util.Arrays; import java.util.Optional; @@ -13,10 +13,11 @@ /** * This Test class validates that all supported JDBC URL's can be parsed by ConnectionUrl class. */ -@RunWith(Parameterized.class) +@ParameterizedClass +@MethodSource("data") public class ConnectionUrlDriversTests { - @Parameter + @Parameter(0) public String jdbcUrl; @Parameter(1) @@ -31,7 +32,6 @@ public class ConnectionUrlDriversTests { @Parameter(4) public String databaseName; - @Parameterized.Parameters(name = "{index} - {0}") public static Iterable data() { return Arrays.asList( new Object[][] { diff --git a/modules/jdbc/src/test/java/org/testcontainers/jdbc/ConnectionUrlTest.java b/modules/jdbc/src/test/java/org/testcontainers/jdbc/ConnectionUrlTest.java index 123690d95f6..060327f49e5 100644 --- a/modules/jdbc/src/test/java/org/testcontainers/jdbc/ConnectionUrlTest.java +++ b/modules/jdbc/src/test/java/org/testcontainers/jdbc/ConnectionUrlTest.java @@ -1,16 +1,14 @@ package org.testcontainers.jdbc; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; +import org.junit.jupiter.api.Test; + +import java.util.Map; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.catchThrowableOfType; public class ConnectionUrlTest { - @Rule - public ExpectedException thrown = ExpectedException.none(); - @Test public void testConnectionUrl1() { String urlString = "jdbc:tc:mysql:8.0.36://somehostname:3306/databasename?a=b&c=d"; @@ -83,9 +81,10 @@ public void testInitScriptPathCapture() { .containsEntry("TC_INITSCRIPT", "somepath/init_mysql.sql"); //Parameter sets are unmodifiable - thrown.expect(UnsupportedOperationException.class); - url.getContainerParameters().remove("TC_INITSCRIPT"); - url.getQueryParameters().remove("a"); + Map containerParameters = url.getContainerParameters(); + catchThrowableOfType(UnsupportedOperationException.class, () -> containerParameters.remove("TC_INITSCRIPT")); + Map queryParameters = url.getQueryParameters(); + catchThrowableOfType(UnsupportedOperationException.class, () -> queryParameters.remove("a")); } @Test diff --git a/modules/jdbc/src/test/java/org/testcontainers/jdbc/ContainerDatabaseDriverTest.java b/modules/jdbc/src/test/java/org/testcontainers/jdbc/ContainerDatabaseDriverTest.java index 4edd5d449ba..7e5b3a9b3a4 100644 --- a/modules/jdbc/src/test/java/org/testcontainers/jdbc/ContainerDatabaseDriverTest.java +++ b/modules/jdbc/src/test/java/org/testcontainers/jdbc/ContainerDatabaseDriverTest.java @@ -1,9 +1,6 @@ package org.testcontainers.jdbc; -import org.hamcrest.CoreMatchers; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; +import org.junit.jupiter.api.Test; import java.sql.Connection; import java.sql.DriverManager; @@ -11,14 +8,12 @@ import java.util.Properties; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.catchThrowableOfType; public class ContainerDatabaseDriverTest { private static final String PLAIN_POSTGRESQL_JDBC_URL = "jdbc:postgresql://localhost:5432/test"; - @Rule - public ExpectedException thrown = ExpectedException.none(); - @Test public void shouldNotTryToConnectToNonMatchingJdbcUrlDirectly() throws SQLException { ContainerDatabaseDriver driver = new ContainerDatabaseDriver(); @@ -28,8 +23,10 @@ public void shouldNotTryToConnectToNonMatchingJdbcUrlDirectly() throws SQLExcept @Test public void shouldNotTryToConnectToNonMatchingJdbcUrlViaDriverManager() throws SQLException { - thrown.expect(SQLException.class); - thrown.expectMessage(CoreMatchers.startsWith("No suitable driver found for ")); - DriverManager.getConnection(PLAIN_POSTGRESQL_JDBC_URL); + SQLException e = catchThrowableOfType(SQLException.class, () -> + DriverManager.getConnection(PLAIN_POSTGRESQL_JDBC_URL) + ); + assertThat((Throwable) e) + .hasMessageStartingWith("No suitable driver found for "); } } diff --git a/modules/jdbc/src/test/java/org/testcontainers/jdbc/JdbcDatabaseDelegateTest.java b/modules/jdbc/src/test/java/org/testcontainers/jdbc/JdbcDatabaseDelegateTest.java index f3cf2d01d40..72edfdc386e 100644 --- a/modules/jdbc/src/test/java/org/testcontainers/jdbc/JdbcDatabaseDelegateTest.java +++ b/modules/jdbc/src/test/java/org/testcontainers/jdbc/JdbcDatabaseDelegateTest.java @@ -1,8 +1,8 @@ package org.testcontainers.jdbc; import lombok.NonNull; -import org.junit.Assert; -import org.junit.Test; +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.Test; import org.mockito.Mockito; import org.slf4j.Logger; import org.testcontainers.containers.JdbcDatabaseContainer; @@ -14,6 +14,7 @@ import java.util.ArrayList; import java.util.List; +import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -25,7 +26,9 @@ public void testLeakedConnections() { try (JdbcDatabaseDelegate delegate = new JdbcDatabaseDelegate(stub, "")) { delegate.execute("foo", null, 0, false, false); } - Assert.assertEquals(0, stub.openConnectionsList.size()); + assertThat(stub.openConnectionsList) + .as("stub.openConnectionsList") + .isEmpty(); } static class JdbcDatabaseContainerStub extends JdbcDatabaseContainer { diff --git a/modules/jdbc/src/test/java/org/testcontainers/jdbc/MissingJdbcDriverTest.java b/modules/jdbc/src/test/java/org/testcontainers/jdbc/MissingJdbcDriverTest.java index 9f6b354818d..936ac79a21b 100644 --- a/modules/jdbc/src/test/java/org/testcontainers/jdbc/MissingJdbcDriverTest.java +++ b/modules/jdbc/src/test/java/org/testcontainers/jdbc/MissingJdbcDriverTest.java @@ -1,7 +1,7 @@ package org.testcontainers.jdbc; import com.google.common.base.Throwables; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.JdbcDatabaseContainer; import org.testcontainers.utility.DockerImageName; diff --git a/modules/junit-jupiter/build.gradle b/modules/junit-jupiter/build.gradle index 0351a065c34..3edde489350 100644 --- a/modules/junit-jupiter/build.gradle +++ b/modules/junit-jupiter/build.gradle @@ -2,8 +2,8 @@ description = "Testcontainers :: JUnit Jupiter Extension" dependencies { api project(':testcontainers') - implementation platform('org.junit:junit-bom:5.10.3') - implementation 'org.junit.jupiter:junit-jupiter-api' + api platform('org.junit:junit-bom:5.13.0') + api 'org.junit.jupiter:junit-jupiter' testImplementation project(':mysql') testImplementation project(':postgresql') @@ -18,6 +18,8 @@ dependencies { testRuntimeOnly 'org.postgresql:postgresql:42.7.4' testRuntimeOnly 'mysql:mysql-connector-java:8.0.33' + testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine" + testRuntimeOnly "org.junit.platform:junit-platform-launcher" } test { diff --git a/modules/junit-jupiter/src/main/java/org/testcontainers/junit/jupiter/ManagedNetwork.java b/modules/junit-jupiter/src/main/java/org/testcontainers/junit/jupiter/ManagedNetwork.java new file mode 100644 index 00000000000..6c33e196730 --- /dev/null +++ b/modules/junit-jupiter/src/main/java/org/testcontainers/junit/jupiter/ManagedNetwork.java @@ -0,0 +1,20 @@ +package org.testcontainers.junit.jupiter; + +import org.junit.jupiter.api.AutoClose; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * The {@code @Network} annotation is used in conjunction with the {@link Testcontainers} annotation + * to mark networks that should be managed by the Testcontainers extension. + * + * @see Testcontainers + */ +@Target({ ElementType.FIELD, ElementType.ANNOTATION_TYPE }) +@Retention(RetentionPolicy.RUNTIME) +@AutoClose +public @interface ManagedNetwork { +} diff --git a/modules/junit-jupiter/src/test/java/org/testcontainers/junit/jupiter/TestLifecycleAwareExceptionCapturingTest.java b/modules/junit-jupiter/src/test/java/org/testcontainers/junit/jupiter/TestLifecycleAwareExceptionCapturingTest.java index b64f2f3c328..c10b48a25dd 100644 --- a/modules/junit-jupiter/src/test/java/org/testcontainers/junit/jupiter/TestLifecycleAwareExceptionCapturingTest.java +++ b/modules/junit-jupiter/src/test/java/org/testcontainers/junit/jupiter/TestLifecycleAwareExceptionCapturingTest.java @@ -1,13 +1,13 @@ package org.testcontainers.junit.jupiter; -import org.junit.AssumptionViolatedException; +import org.assertj.core.api.Assumptions; import org.junit.jupiter.api.MethodOrderer.OrderAnnotation; import org.junit.jupiter.api.Order; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestMethodOrder; +import org.opentest4j.TestAbortedException; import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.Assume.assumeTrue; // The order of @ExtendsWith and @Testcontainers is crucial in order for the tests @Testcontainers @@ -24,14 +24,14 @@ class TestLifecycleAwareExceptionCapturingTest { void failing_test_should_pass_throwable_to_testContainer() { startedTestContainer = testContainer; // Force an exception that is captured by the test container without failing the test itself - assumeTrue(false); + Assumptions.assumeThat(true).isFalse(); } @Test @Order(2) void should_have_captured_thrownException() { Throwable capturedThrowable = startedTestContainer.getCapturedThrowable(); - assertThat(capturedThrowable).isInstanceOf(AssumptionViolatedException.class); + assertThat(capturedThrowable).isInstanceOf(TestAbortedException.class); assertThat(capturedThrowable.getMessage()).isEqualTo("got: , expected: is "); } } diff --git a/modules/k3s/src/test/java/org/testcontainers/k3s/Fabric8K3sContainerTest.java b/modules/k3s/src/test/java/org/testcontainers/k3s/Fabric8K3sContainerTest.java index 42b08444555..203e9556f14 100644 --- a/modules/k3s/src/test/java/org/testcontainers/k3s/Fabric8K3sContainerTest.java +++ b/modules/k3s/src/test/java/org/testcontainers/k3s/Fabric8K3sContainerTest.java @@ -12,7 +12,7 @@ import io.fabric8.kubernetes.client.DefaultKubernetesClient; import io.fabric8.kubernetes.client.dsl.Resource; import lombok.extern.slf4j.Slf4j; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.output.Slf4jLogConsumer; import org.testcontainers.utility.DockerImageName; diff --git a/modules/k3s/src/test/java/org/testcontainers/k3s/KubectlContainerTest.java b/modules/k3s/src/test/java/org/testcontainers/k3s/KubectlContainerTest.java index 5c0d44ff0f1..9b302863c4c 100644 --- a/modules/k3s/src/test/java/org/testcontainers/k3s/KubectlContainerTest.java +++ b/modules/k3s/src/test/java/org/testcontainers/k3s/KubectlContainerTest.java @@ -1,22 +1,27 @@ package org.testcontainers.k3s; -import org.junit.ClassRule; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.GenericContainer; import org.testcontainers.containers.Network; import org.testcontainers.containers.startupcheck.OneShotStartupCheckStrategy; import org.testcontainers.images.builder.Transferable; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.ManagedNetwork; +import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.DockerImageName; import java.time.Duration; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.catchThrowableOfType; +@Testcontainers public class KubectlContainerTest { + @ManagedNetwork public static Network network = Network.SHARED; - @ClassRule + @Container public static K3sContainer k3s = new K3sContainer(DockerImageName.parse("rancher/k3s:v1.21.3-k3s1")) .withNetwork(network) .withNetworkAliases("k3s"); @@ -38,8 +43,10 @@ public void shouldExposeKubeConfigForNetworkAlias() throws Exception { } } - @Test(expected = IllegalArgumentException.class) + @Test public void shouldThrowAnExceptionForUnknownNetworkAlias() { - k3s.generateInternalKubeConfigYaml("not-set-network-alias"); + catchThrowableOfType(IllegalArgumentException.class, () -> + k3s.generateInternalKubeConfigYaml("not-set-network-alias") + ); } } diff --git a/modules/k3s/src/test/java/org/testcontainers/k3s/OfficialClientK3sContainerTest.java b/modules/k3s/src/test/java/org/testcontainers/k3s/OfficialClientK3sContainerTest.java index 1c40e56fc2d..c079137d687 100644 --- a/modules/k3s/src/test/java/org/testcontainers/k3s/OfficialClientK3sContainerTest.java +++ b/modules/k3s/src/test/java/org/testcontainers/k3s/OfficialClientK3sContainerTest.java @@ -6,7 +6,7 @@ import io.kubernetes.client.openapi.models.V1NodeList; import io.kubernetes.client.util.Config; import lombok.extern.slf4j.Slf4j; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.output.Slf4jLogConsumer; import org.testcontainers.utility.DockerImageName; diff --git a/modules/k6/src/test/java/org/testcontainers/k6/K6ContainerTests.java b/modules/k6/src/test/java/org/testcontainers/k6/K6ContainerTests.java index f912fcd7dcf..8ca77926ba3 100644 --- a/modules/k6/src/test/java/org/testcontainers/k6/K6ContainerTests.java +++ b/modules/k6/src/test/java/org/testcontainers/k6/K6ContainerTests.java @@ -1,6 +1,6 @@ package org.testcontainers.k6; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.output.WaitingConsumer; import org.testcontainers.utility.MountableFile; diff --git a/modules/kafka/src/test/java/org/testcontainers/containers/KafkaContainerTest.java b/modules/kafka/src/test/java/org/testcontainers/containers/KafkaContainerTest.java index 49b21108da8..6820c550f00 100644 --- a/modules/kafka/src/test/java/org/testcontainers/containers/KafkaContainerTest.java +++ b/modules/kafka/src/test/java/org/testcontainers/containers/KafkaContainerTest.java @@ -9,7 +9,7 @@ import org.apache.kafka.common.errors.SaslAuthenticationException; import org.apache.kafka.common.errors.TopicAuthorizationException; import org.awaitility.Awaitility; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.AbstractKafka; import org.testcontainers.Testcontainers; import org.testcontainers.images.builder.Transferable; diff --git a/modules/kafka/src/test/java/org/testcontainers/kafka/CompatibleApacheKafkaImageTest.java b/modules/kafka/src/test/java/org/testcontainers/kafka/CompatibleApacheKafkaImageTest.java index b2bb31ae502..87a5eaf6b9e 100644 --- a/modules/kafka/src/test/java/org/testcontainers/kafka/CompatibleApacheKafkaImageTest.java +++ b/modules/kafka/src/test/java/org/testcontainers/kafka/CompatibleApacheKafkaImageTest.java @@ -1,19 +1,20 @@ package org.testcontainers.kafka; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.Parameter; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.testcontainers.AbstractKafka; -@RunWith(Parameterized.class) +@ParameterizedClass +@MethodSource("params") public class CompatibleApacheKafkaImageTest extends AbstractKafka { - @Parameterized.Parameters(name = "{0}") public static String[] params() { return new String[] { "apache/kafka:3.8.0", "apache/kafka-native:3.8.0" }; } - @Parameterized.Parameter + @Parameter(0) public String imageName; @Test diff --git a/modules/kafka/src/test/java/org/testcontainers/kafka/ConfluentKafkaContainerTest.java b/modules/kafka/src/test/java/org/testcontainers/kafka/ConfluentKafkaContainerTest.java index 725dc2d2a62..055eccd19ff 100644 --- a/modules/kafka/src/test/java/org/testcontainers/kafka/ConfluentKafkaContainerTest.java +++ b/modules/kafka/src/test/java/org/testcontainers/kafka/ConfluentKafkaContainerTest.java @@ -2,7 +2,7 @@ import com.github.dockerjava.api.command.InspectContainerResponse; import lombok.SneakyThrows; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.AbstractKafka; import org.testcontainers.KCatContainer; import org.testcontainers.containers.Network; diff --git a/modules/kafka/src/test/java/org/testcontainers/kafka/KafkaContainerTest.java b/modules/kafka/src/test/java/org/testcontainers/kafka/KafkaContainerTest.java index e81b52574ef..c20b81052b1 100644 --- a/modules/kafka/src/test/java/org/testcontainers/kafka/KafkaContainerTest.java +++ b/modules/kafka/src/test/java/org/testcontainers/kafka/KafkaContainerTest.java @@ -1,6 +1,6 @@ package org.testcontainers.kafka; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.AbstractKafka; import org.testcontainers.KCatContainer; import org.testcontainers.containers.Network; diff --git a/modules/ldap/src/test/java/org/testcontainers/ldap/LLdapContainerTest.java b/modules/ldap/src/test/java/org/testcontainers/ldap/LLdapContainerTest.java index d8914c793c2..ec0112c5dca 100644 --- a/modules/ldap/src/test/java/org/testcontainers/ldap/LLdapContainerTest.java +++ b/modules/ldap/src/test/java/org/testcontainers/ldap/LLdapContainerTest.java @@ -4,7 +4,7 @@ import com.unboundid.ldap.sdk.LDAPConnection; import com.unboundid.ldap.sdk.LDAPException; import com.unboundid.ldap.sdk.LDAPURL; -import org.junit.Test; +import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; diff --git a/modules/localstack/src/test/java/org/testcontainers/containers/localstack/LegacyModeTest.java b/modules/localstack/src/test/java/org/testcontainers/containers/localstack/LegacyModeTest.java index e66bd8c3e62..58893456b05 100644 --- a/modules/localstack/src/test/java/org/testcontainers/containers/localstack/LegacyModeTest.java +++ b/modules/localstack/src/test/java/org/testcontainers/containers/localstack/LegacyModeTest.java @@ -3,11 +3,11 @@ import com.amazonaws.client.builder.AwsClientBuilder; import com.github.dockerjava.api.DockerClient; import lombok.AllArgsConstructor; -import org.junit.BeforeClass; -import org.junit.Test; -import org.junit.experimental.runners.Enclosed; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.testcontainers.DockerClientFactory; import org.testcontainers.containers.localstack.LocalStackContainer.Service; import org.testcontainers.images.RemoteDockerImage; @@ -17,12 +17,14 @@ import static org.assertj.core.api.Assertions.assertThat; -@RunWith(Enclosed.class) +// TODO: junit5 public class LegacyModeTest { private static DockerImageName LOCALSTACK_CUSTOM_TAG = LocalstackTestImages.LOCALSTACK_IMAGE.withTag("custom"); - @RunWith(Parameterized.class) + @Nested + @ParameterizedClass + @MethodSource("constructors") @AllArgsConstructor public static class Off { @@ -30,7 +32,6 @@ public static class Off { private final LocalStackContainer localstack; - @Parameterized.Parameters(name = "{0}") public static Iterable constructors() { return Arrays.asList( new Object[][] { @@ -75,7 +76,9 @@ public void samePortIsExposedForAllServices() { } } - @RunWith(Parameterized.class) + @Nested + @ParameterizedClass + @MethodSource("constructors") @AllArgsConstructor public static class On { @@ -83,7 +86,7 @@ public static class On { private final LocalStackContainer localstack; - @BeforeClass + @BeforeAll public static void createCustomTag() { DockerClient dockerClient = DockerClientFactory.instance().client(); dockerClient @@ -95,7 +98,6 @@ public static void createCustomTag() { .exec(); } - @Parameterized.Parameters(name = "{0}") public static Iterable constructors() { return Arrays.asList( new Object[][] { @@ -140,7 +142,8 @@ public void differentPortsAreExposed() { } } - @RunWith(Parameterized.class) + @ParameterizedClass + @MethodSource("constructors") @AllArgsConstructor public static class LegacyModeUnitTest { @@ -148,7 +151,6 @@ public static class LegacyModeUnitTest { private final boolean shouldUseLegacyMode; - @Parameterized.Parameters(name = "{0} - {1}") public static Iterable constructors() { return Arrays.asList( new Object[][] { diff --git a/modules/localstack/src/test/java/org/testcontainers/containers/localstack/LocalstackContainerTest.java b/modules/localstack/src/test/java/org/testcontainers/containers/localstack/LocalstackContainerTest.java index a1c36078840..b3192d35fee 100644 --- a/modules/localstack/src/test/java/org/testcontainers/containers/localstack/LocalstackContainerTest.java +++ b/modules/localstack/src/test/java/org/testcontainers/containers/localstack/LocalstackContainerTest.java @@ -33,15 +33,15 @@ import com.github.dockerjava.api.DockerClient; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.IOUtils; -import org.junit.ClassRule; -import org.junit.Test; -import org.junit.experimental.runners.Enclosed; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; import org.testcontainers.DockerClientFactory; import org.testcontainers.containers.Container; import org.testcontainers.containers.GenericContainer; import org.testcontainers.containers.Network; import org.testcontainers.containers.localstack.LocalStackContainer.Service; +import org.testcontainers.junit.jupiter.ManagedNetwork; +import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.DockerImageName; import software.amazon.awssdk.auth.credentials.AwsBasicCredentials; import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider; @@ -74,13 +74,14 @@ * Localstack from within a Docker network. */ @Slf4j -@RunWith(Enclosed.class) +@Testcontainers public class LocalstackContainerTest { + @Nested public static class WithoutNetwork { // without_network { - @ClassRule + @org.testcontainers.junit.jupiter.Container public static LocalStackContainer localstack = new LocalStackContainer(LocalstackTestImages.LOCALSTACK_IMAGE) .withServices( Service.S3, @@ -263,12 +264,14 @@ public void samePortIsExposedForAllServices() { } } + @Nested public static class WithNetwork { // with_network { + @ManagedNetwork private static Network network = Network.newNetwork(); - @ClassRule + @org.testcontainers.junit.jupiter.Container public static LocalStackContainer localstackInDockerNetwork = new LocalStackContainer( LocalstackTestImages.LOCALSTACK_IMAGE ) @@ -278,7 +281,7 @@ public static class WithNetwork { // } - @ClassRule + @org.testcontainers.junit.jupiter.Container public static GenericContainer awsCliInDockerNetwork = new GenericContainer<>( LocalstackTestImages.AWS_CLI_IMAGE ) @@ -353,12 +356,13 @@ private String runAwsCliAgainstDockerNetworkContainer(String command) throws Exc } } + @Nested public static class WithRegion { // with_region { private static String region = "eu-west-1"; - @ClassRule + @org.testcontainers.junit.jupiter.Container public static LocalStackContainer localstack = new LocalStackContainer(LocalstackTestImages.LOCALSTACK_IMAGE) .withEnv("DEFAULT_REGION", region) .withServices(Service.S3); @@ -377,9 +381,10 @@ public void s3EndpointHasProperRegion() { } } + @Nested public static class WithoutServices { - @ClassRule + @org.testcontainers.junit.jupiter.Container public static LocalStackContainer localstack = new LocalStackContainer( LocalstackTestImages.LOCALSTACK_0_13_IMAGE ); @@ -403,18 +408,20 @@ public void s3ServiceStartLazily() { } } + @Nested public static class WithVersion2 { + @ManagedNetwork private static Network network = Network.newNetwork(); - @ClassRule + @org.testcontainers.junit.jupiter.Container public static LocalStackContainer localstack = new LocalStackContainer( DockerImageName.parse("localstack/localstack:2.0") ) .withNetwork(network) .withNetworkAliases("localstack"); - @ClassRule + @org.testcontainers.junit.jupiter.Container public static GenericContainer awsCliInDockerNetwork = new GenericContainer<>( LocalstackTestImages.AWS_CLI_IMAGE ) @@ -475,9 +482,10 @@ private String runAwsCliAgainstDockerNetworkContainer(String command) throws Exc } } + @Nested public static class S3SkipSignatureValidation { - @ClassRule + @org.testcontainers.junit.jupiter.Container public static LocalStackContainer localstack = new LocalStackContainer( LocalstackTestImages.LOCALSTACK_2_3_IMAGE ) @@ -525,9 +533,10 @@ public void shouldBeAccessibleWithCredentials() throws IOException { } } + @Nested public static class LambdaContainerLabels { - @ClassRule + @org.testcontainers.junit.jupiter.Container public static LocalStackContainer localstack = new LocalStackContainer( LocalstackTestImages.LOCALSTACK_2_3_IMAGE ); diff --git a/modules/mariadb/src/test/java/org/testcontainers/jdbc/mariadb/MariaDBJDBCDriverTest.java b/modules/mariadb/src/test/java/org/testcontainers/jdbc/mariadb/MariaDBJDBCDriverTest.java index 9d903ab3965..b6667d6c878 100644 --- a/modules/mariadb/src/test/java/org/testcontainers/jdbc/mariadb/MariaDBJDBCDriverTest.java +++ b/modules/mariadb/src/test/java/org/testcontainers/jdbc/mariadb/MariaDBJDBCDriverTest.java @@ -1,16 +1,16 @@ package org.testcontainers.jdbc.mariadb; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.testcontainers.jdbc.AbstractJDBCDriverTest; import java.util.Arrays; import java.util.EnumSet; -@RunWith(Parameterized.class) +@ParameterizedClass +@MethodSource("data") public class MariaDBJDBCDriverTest extends AbstractJDBCDriverTest { - @Parameterized.Parameters(name = "{index} - {0}") public static Iterable data() { return Arrays.asList( new Object[][] { diff --git a/modules/mariadb/src/test/java/org/testcontainers/junit/mariadb/SimpleMariaDBTest.java b/modules/mariadb/src/test/java/org/testcontainers/junit/mariadb/SimpleMariaDBTest.java index d4bcc529cbc..d9b2b9e08db 100644 --- a/modules/mariadb/src/test/java/org/testcontainers/junit/mariadb/SimpleMariaDBTest.java +++ b/modules/mariadb/src/test/java/org/testcontainers/junit/mariadb/SimpleMariaDBTest.java @@ -1,7 +1,7 @@ package org.testcontainers.junit.mariadb; import org.apache.commons.lang3.SystemUtils; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.MariaDBTestImages; import org.testcontainers.containers.MariaDBContainer; import org.testcontainers.db.AbstractContainerDatabaseTest; diff --git a/modules/milvus/src/test/java/org/testcontainers/milvus/MilvusContainerTest.java b/modules/milvus/src/test/java/org/testcontainers/milvus/MilvusContainerTest.java index 3a6d6275ec2..1b282f3ee12 100644 --- a/modules/milvus/src/test/java/org/testcontainers/milvus/MilvusContainerTest.java +++ b/modules/milvus/src/test/java/org/testcontainers/milvus/MilvusContainerTest.java @@ -2,7 +2,7 @@ import io.milvus.client.MilvusServiceClient; import io.milvus.param.ConnectParam; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.GenericContainer; import org.testcontainers.containers.Network; import org.testcontainers.containers.wait.strategy.Wait; diff --git a/modules/minio/src/test/java/org/testcontainers/containers/MinIOContainerTest.java b/modules/minio/src/test/java/org/testcontainers/containers/MinIOContainerTest.java index 563a77852c5..d2030aa8a5b 100644 --- a/modules/minio/src/test/java/org/testcontainers/containers/MinIOContainerTest.java +++ b/modules/minio/src/test/java/org/testcontainers/containers/MinIOContainerTest.java @@ -6,7 +6,7 @@ import io.minio.StatObjectArgs; import io.minio.StatObjectResponse; import io.minio.UploadObjectArgs; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.net.URL; diff --git a/modules/mockserver/src/test/java/org/testcontainers/containers/MockServerContainerRuleTest.java b/modules/mockserver/src/test/java/org/testcontainers/containers/MockServerContainerRuleTest.java index eaf240f0fe2..7c815aa6481 100644 --- a/modules/mockserver/src/test/java/org/testcontainers/containers/MockServerContainerRuleTest.java +++ b/modules/mockserver/src/test/java/org/testcontainers/containers/MockServerContainerRuleTest.java @@ -1,14 +1,16 @@ package org.testcontainers.containers; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.mockserver.client.MockServerClient; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.DockerImageName; import static org.assertj.core.api.Assertions.assertThat; import static org.mockserver.model.HttpRequest.request; import static org.mockserver.model.HttpResponse.response; +@Testcontainers public class MockServerContainerRuleTest { // creatingProxy { @@ -16,7 +18,7 @@ public class MockServerContainerRuleTest { .parse("mockserver/mockserver") .withTag("mockserver-" + MockServerClient.class.getPackage().getImplementationVersion()); - @Rule + @Container public MockServerContainer mockServer = new MockServerContainer(MOCKSERVER_IMAGE); // } diff --git a/modules/mockserver/src/test/java/org/testcontainers/containers/MockServerContainerTest.java b/modules/mockserver/src/test/java/org/testcontainers/containers/MockServerContainerTest.java index 3f4a8fef293..67ede468b6d 100644 --- a/modules/mockserver/src/test/java/org/testcontainers/containers/MockServerContainerTest.java +++ b/modules/mockserver/src/test/java/org/testcontainers/containers/MockServerContainerTest.java @@ -1,6 +1,6 @@ package org.testcontainers.containers; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.mockserver.client.MockServerClient; import org.testcontainers.utility.DockerImageName; diff --git a/modules/mongodb/src/test/java/org/testcontainers/containers/CompatibleImageTest.java b/modules/mongodb/src/test/java/org/testcontainers/containers/CompatibleImageTest.java index 8113e508aee..49138564c11 100644 --- a/modules/mongodb/src/test/java/org/testcontainers/containers/CompatibleImageTest.java +++ b/modules/mongodb/src/test/java/org/testcontainers/containers/CompatibleImageTest.java @@ -3,13 +3,14 @@ import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; import org.bson.Document; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import static org.assertj.core.api.Assertions.assertThat; -@RunWith(Parameterized.class) +@ParameterizedClass +@MethodSource("parameters") public class CompatibleImageTest extends AbstractMongo { private final String image; @@ -18,7 +19,6 @@ public CompatibleImageTest(String image) { this.image = image; } - @Parameterized.Parameters(name = "{0}") public static String[] image() { return new String[] { "mongo:7", diff --git a/modules/mongodb/src/test/java/org/testcontainers/containers/MongoDBContainerTest.java b/modules/mongodb/src/test/java/org/testcontainers/containers/MongoDBContainerTest.java index 8952c6802e6..fa4be028511 100644 --- a/modules/mongodb/src/test/java/org/testcontainers/containers/MongoDBContainerTest.java +++ b/modules/mongodb/src/test/java/org/testcontainers/containers/MongoDBContainerTest.java @@ -1,6 +1,6 @@ package org.testcontainers.containers; -import org.junit.Test; +import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; diff --git a/modules/mongodb/src/test/java/org/testcontainers/mongodb/MongoDBAtlasLocalContainerTest.java b/modules/mongodb/src/test/java/org/testcontainers/mongodb/MongoDBAtlasLocalContainerTest.java index 720629d214c..0abc7da8812 100644 --- a/modules/mongodb/src/test/java/org/testcontainers/mongodb/MongoDBAtlasLocalContainerTest.java +++ b/modules/mongodb/src/test/java/org/testcontainers/mongodb/MongoDBAtlasLocalContainerTest.java @@ -1,6 +1,6 @@ package org.testcontainers.mongodb; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/modules/mssqlserver/src/test/java/org/testcontainers/jdbc/mssqlserver/MSSQLServerJDBCDriverTest.java b/modules/mssqlserver/src/test/java/org/testcontainers/jdbc/mssqlserver/MSSQLServerJDBCDriverTest.java index 4ed4db9e8ab..8453319e7f2 100644 --- a/modules/mssqlserver/src/test/java/org/testcontainers/jdbc/mssqlserver/MSSQLServerJDBCDriverTest.java +++ b/modules/mssqlserver/src/test/java/org/testcontainers/jdbc/mssqlserver/MSSQLServerJDBCDriverTest.java @@ -1,16 +1,16 @@ package org.testcontainers.jdbc.mssqlserver; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.testcontainers.jdbc.AbstractJDBCDriverTest; import java.util.Arrays; import java.util.EnumSet; -@RunWith(Parameterized.class) +@ParameterizedClass +@MethodSource("data") public class MSSQLServerJDBCDriverTest extends AbstractJDBCDriverTest { - @Parameterized.Parameters(name = "{index} - {0}") public static Iterable data() { return Arrays.asList( new Object[][] { diff --git a/modules/mssqlserver/src/test/java/org/testcontainers/junit/mssqlserver/CustomPasswordMSSQLServerTest.java b/modules/mssqlserver/src/test/java/org/testcontainers/junit/mssqlserver/CustomPasswordMSSQLServerTest.java index 27075d6a3fe..081ab027cdb 100644 --- a/modules/mssqlserver/src/test/java/org/testcontainers/junit/mssqlserver/CustomPasswordMSSQLServerTest.java +++ b/modules/mssqlserver/src/test/java/org/testcontainers/junit/mssqlserver/CustomPasswordMSSQLServerTest.java @@ -1,9 +1,9 @@ package org.testcontainers.junit.mssqlserver; import org.apache.commons.lang3.RandomStringUtils; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.testcontainers.MSSQLServerTestImages; import org.testcontainers.containers.MSSQLServerContainer; @@ -16,7 +16,8 @@ * Tests if the password passed to the container satisfied the password policy described at * https://docs.microsoft.com/en-us/sql/relational-databases/security/password-policy?view=sql-server-2017 */ -@RunWith(Parameterized.class) +@ParameterizedClass +@MethodSource("data") public class CustomPasswordMSSQLServerTest { private static String UPPER_CASE_LETTERS = "ABCDE"; @@ -36,7 +37,6 @@ public CustomPasswordMSSQLServerTest(String password, Boolean valid) { this.valid = valid; } - @Parameterized.Parameters public static Collection data() { return Arrays.asList( new Object[][] { diff --git a/modules/mssqlserver/src/test/java/org/testcontainers/junit/mssqlserver/CustomizableMSSQLServerTest.java b/modules/mssqlserver/src/test/java/org/testcontainers/junit/mssqlserver/CustomizableMSSQLServerTest.java index 03e0affa00c..9a19aeb09ca 100644 --- a/modules/mssqlserver/src/test/java/org/testcontainers/junit/mssqlserver/CustomizableMSSQLServerTest.java +++ b/modules/mssqlserver/src/test/java/org/testcontainers/junit/mssqlserver/CustomizableMSSQLServerTest.java @@ -1,6 +1,6 @@ package org.testcontainers.junit.mssqlserver; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.MSSQLServerContainer; import org.testcontainers.db.AbstractContainerDatabaseTest; import org.testcontainers.utility.DockerImageName; diff --git a/modules/mssqlserver/src/test/java/org/testcontainers/junit/mssqlserver/SimpleMSSQLServerTest.java b/modules/mssqlserver/src/test/java/org/testcontainers/junit/mssqlserver/SimpleMSSQLServerTest.java index 2827544cade..2b7da5c7b98 100644 --- a/modules/mssqlserver/src/test/java/org/testcontainers/junit/mssqlserver/SimpleMSSQLServerTest.java +++ b/modules/mssqlserver/src/test/java/org/testcontainers/junit/mssqlserver/SimpleMSSQLServerTest.java @@ -1,6 +1,6 @@ package org.testcontainers.junit.mssqlserver; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.MSSQLServerTestImages; import org.testcontainers.containers.MSSQLServerContainer; import org.testcontainers.db.AbstractContainerDatabaseTest; diff --git a/modules/mysql/src/test/java/org/testcontainers/containers/MySQLRootAccountTest.java b/modules/mysql/src/test/java/org/testcontainers/containers/MySQLRootAccountTest.java index 51ba5257fa3..862506042d4 100644 --- a/modules/mysql/src/test/java/org/testcontainers/containers/MySQLRootAccountTest.java +++ b/modules/mysql/src/test/java/org/testcontainers/containers/MySQLRootAccountTest.java @@ -1,9 +1,10 @@ package org.testcontainers.containers; import lombok.extern.slf4j.Slf4j; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.Parameter; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.testcontainers.MySQLTestImages; import org.testcontainers.containers.output.Slf4jLogConsumer; import org.testcontainers.utility.DockerImageName; @@ -13,10 +14,10 @@ import java.sql.SQLException; @Slf4j -@RunWith(Parameterized.class) +@ParameterizedClass +@MethodSource("params") public class MySQLRootAccountTest { - @Parameterized.Parameters(name = "{0}") public static DockerImageName[] params() { return new DockerImageName[] { MySQLTestImages.MYSQL_57_IMAGE, @@ -25,7 +26,7 @@ public static DockerImageName[] params() { }; } - @Parameterized.Parameter + @Parameter(0) public DockerImageName image; @Test diff --git a/modules/mysql/src/test/java/org/testcontainers/jdbc/mysql/JDBCDriverWithPoolTest.java b/modules/mysql/src/test/java/org/testcontainers/jdbc/mysql/JDBCDriverWithPoolTest.java index be48f623183..c0d6a34049f 100644 --- a/modules/mysql/src/test/java/org/testcontainers/jdbc/mysql/JDBCDriverWithPoolTest.java +++ b/modules/mysql/src/test/java/org/testcontainers/jdbc/mysql/JDBCDriverWithPoolTest.java @@ -5,9 +5,9 @@ import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.ResultSetHandler; import org.apache.tomcat.jdbc.pool.PoolProperties; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.testcontainers.jdbc.ContainerDatabaseDriver; import org.vibur.dbcp.ViburDBCPDataSource; @@ -29,7 +29,8 @@ * the mysql module, to avoid circular dependencies. * TODO: Move to the jdbc module and either (a) implement a barebones {@link org.testcontainers.containers.JdbcDatabaseContainerProvider} for testing, or (b) refactor into a unit test. */ -@RunWith(Parameterized.class) +@ParameterizedClass +@MethodSource("parameters") public class JDBCDriverWithPoolTest { public static final String URL = @@ -37,7 +38,6 @@ public class JDBCDriverWithPoolTest { private final DataSource dataSource; - @Parameterized.Parameters public static Iterable> dataSourceSuppliers() { return Arrays.asList( JDBCDriverWithPoolTest::getTomcatDataSourceWithDriverClassName, diff --git a/modules/mysql/src/test/java/org/testcontainers/jdbc/mysql/MySQLDatabaseContainerDriverTest.java b/modules/mysql/src/test/java/org/testcontainers/jdbc/mysql/MySQLDatabaseContainerDriverTest.java index 7f5cf5eae1d..17494da7905 100644 --- a/modules/mysql/src/test/java/org/testcontainers/jdbc/mysql/MySQLDatabaseContainerDriverTest.java +++ b/modules/mysql/src/test/java/org/testcontainers/jdbc/mysql/MySQLDatabaseContainerDriverTest.java @@ -1,6 +1,6 @@ package org.testcontainers.jdbc.mysql; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.jdbc.ContainerDatabaseDriver; import java.sql.Connection; diff --git a/modules/mysql/src/test/java/org/testcontainers/jdbc/mysql/MySQLJDBCDriverTest.java b/modules/mysql/src/test/java/org/testcontainers/jdbc/mysql/MySQLJDBCDriverTest.java index 526c2ab522c..ddd26f19991 100644 --- a/modules/mysql/src/test/java/org/testcontainers/jdbc/mysql/MySQLJDBCDriverTest.java +++ b/modules/mysql/src/test/java/org/testcontainers/jdbc/mysql/MySQLJDBCDriverTest.java @@ -1,16 +1,16 @@ package org.testcontainers.jdbc.mysql; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.testcontainers.jdbc.AbstractJDBCDriverTest; import java.util.Arrays; import java.util.EnumSet; -@RunWith(Parameterized.class) +@ParameterizedClass +@MethodSource("data") public class MySQLJDBCDriverTest extends AbstractJDBCDriverTest { - @Parameterized.Parameters(name = "{index} - {0}") public static Iterable data() { return Arrays.asList( new Object[][] { diff --git a/modules/mysql/src/test/java/org/testcontainers/junit/mysql/CustomizableMysqlTest.java b/modules/mysql/src/test/java/org/testcontainers/junit/mysql/CustomizableMysqlTest.java index e756631d8e1..7de2384cc48 100644 --- a/modules/mysql/src/test/java/org/testcontainers/junit/mysql/CustomizableMysqlTest.java +++ b/modules/mysql/src/test/java/org/testcontainers/junit/mysql/CustomizableMysqlTest.java @@ -1,6 +1,6 @@ package org.testcontainers.junit.mysql; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.MySQLTestImages; import org.testcontainers.containers.MySQLContainer; import org.testcontainers.db.AbstractContainerDatabaseTest; diff --git a/modules/mysql/src/test/java/org/testcontainers/junit/mysql/MultiVersionMySQLTest.java b/modules/mysql/src/test/java/org/testcontainers/junit/mysql/MultiVersionMySQLTest.java index 4c8516cc5cc..9148b68ce10 100644 --- a/modules/mysql/src/test/java/org/testcontainers/junit/mysql/MultiVersionMySQLTest.java +++ b/modules/mysql/src/test/java/org/testcontainers/junit/mysql/MultiVersionMySQLTest.java @@ -1,8 +1,9 @@ package org.testcontainers.junit.mysql; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.Parameter; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.testcontainers.MySQLTestImages; import org.testcontainers.containers.MySQLContainer; import org.testcontainers.db.AbstractContainerDatabaseTest; @@ -13,10 +14,10 @@ import static org.assertj.core.api.Assertions.assertThat; -@RunWith(Parameterized.class) +@ParameterizedClass +@MethodSource("params") public class MultiVersionMySQLTest extends AbstractContainerDatabaseTest { - @Parameterized.Parameters(name = "{0}") public static DockerImageName[] params() { return new DockerImageName[] { MySQLTestImages.MYSQL_57_IMAGE, @@ -25,7 +26,7 @@ public static DockerImageName[] params() { }; } - @Parameterized.Parameter + @Parameter(0) public DockerImageName dockerImageName; @Test diff --git a/modules/mysql/src/test/java/org/testcontainers/junit/mysql/SimpleMySQLTest.java b/modules/mysql/src/test/java/org/testcontainers/junit/mysql/SimpleMySQLTest.java index 5de23504584..c31f04886b0 100644 --- a/modules/mysql/src/test/java/org/testcontainers/junit/mysql/SimpleMySQLTest.java +++ b/modules/mysql/src/test/java/org/testcontainers/junit/mysql/SimpleMySQLTest.java @@ -1,6 +1,6 @@ package org.testcontainers.junit.mysql; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.testcontainers.MySQLTestImages; @@ -27,7 +27,7 @@ import java.util.Set; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.fail; +import static org.assertj.core.api.Assertions.catchThrowableOfType; import static org.assertj.core.api.Assumptions.assumeThat; public class SimpleMySQLTest extends AbstractContainerDatabaseTest { @@ -111,7 +111,7 @@ public void testExplicitInitScript() throws SQLException { } } - @Test(expected = ContainerLaunchException.class) + @Test public void testEmptyPasswordWithNonRootUser() { try ( MySQLContainer container = new MySQLContainer<>(MySQLTestImages.MYSQL_80_IMAGE) @@ -120,8 +120,9 @@ public void testEmptyPasswordWithNonRootUser() { .withPassword("") .withEnv("MYSQL_ROOT_HOST", "%") ) { - container.start(); - fail("ContainerLaunchException expected to be thrown"); + catchThrowableOfType(ContainerLaunchException.class, () -> + container.start() + ); } } diff --git a/modules/neo4j/src/test/java/org/testcontainers/containers/Neo4jContainerJUnitIntegrationTest.java b/modules/neo4j/src/test/java/org/testcontainers/containers/Neo4jContainerJUnitIntegrationTest.java index b5f9c2ad867..3debb156752 100644 --- a/modules/neo4j/src/test/java/org/testcontainers/containers/Neo4jContainerJUnitIntegrationTest.java +++ b/modules/neo4j/src/test/java/org/testcontainers/containers/Neo4jContainerJUnitIntegrationTest.java @@ -1,23 +1,22 @@ package org.testcontainers.containers; -import org.junit.ClassRule; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.neo4j.driver.AuthTokens; import org.neo4j.driver.Driver; import org.neo4j.driver.GraphDatabase; import org.neo4j.driver.Session; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import java.util.Collections; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.fail; -/** - * Test for basic functionality when used as a @ClassRule. - */ +@Testcontainers public class Neo4jContainerJUnitIntegrationTest { - @ClassRule + @Container public static Neo4jContainer neo4jContainer = new Neo4jContainer<>("neo4j:4.4"); @Test diff --git a/modules/neo4j/src/test/java/org/testcontainers/containers/Neo4jContainerTest.java b/modules/neo4j/src/test/java/org/testcontainers/containers/Neo4jContainerTest.java index d2497cd900b..accd5dad867 100644 --- a/modules/neo4j/src/test/java/org/testcontainers/containers/Neo4jContainerTest.java +++ b/modules/neo4j/src/test/java/org/testcontainers/containers/Neo4jContainerTest.java @@ -4,7 +4,7 @@ import ch.qos.logback.classic.Logger; import ch.qos.logback.classic.spi.ILoggingEvent; import ch.qos.logback.core.AppenderBase; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.neo4j.driver.AuthToken; import org.neo4j.driver.AuthTokens; import org.neo4j.driver.Driver; diff --git a/modules/nginx/src/test/java/org/testcontainers/junit/SimpleNginxTest.java b/modules/nginx/src/test/java/org/testcontainers/junit/SimpleNginxTest.java index d520419b902..4946ef6aa49 100644 --- a/modules/nginx/src/test/java/org/testcontainers/junit/SimpleNginxTest.java +++ b/modules/nginx/src/test/java/org/testcontainers/junit/SimpleNginxTest.java @@ -1,11 +1,12 @@ package org.testcontainers.junit; import lombok.Cleanup; -import org.junit.BeforeClass; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.NginxContainer; import org.testcontainers.containers.wait.strategy.HttpWaitStrategy; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.DockerImageName; import org.testcontainers.utility.MountableFile; @@ -20,6 +21,7 @@ import static org.assertj.core.api.Assertions.assertThat; +@Testcontainers public class SimpleNginxTest { private static final DockerImageName NGINX_IMAGE = DockerImageName.parse("nginx:1.27.0-alpine3.19-slim"); @@ -27,7 +29,7 @@ public class SimpleNginxTest { private static String tmpDirectory = System.getProperty("user.home") + "/.tmp-test-container"; // creatingContainer { - @Rule + @Container public NginxContainer nginx = new NginxContainer<>(NGINX_IMAGE) .withCopyFileToContainer(MountableFile.forHostPath(tmpDirectory), "/usr/share/nginx/html") .waitingFor(new HttpWaitStrategy()); @@ -35,7 +37,7 @@ public class SimpleNginxTest { // } @SuppressWarnings({ "Duplicates", "ResultOfMethodCallIgnored" }) - @BeforeClass + @BeforeAll public static void setupContent() throws Exception { // addCustomContent { // Create a temporary dir diff --git a/modules/oceanbase/src/test/java/org/testcontainers/oceanbase/OceanBaseJdbcDriverTest.java b/modules/oceanbase/src/test/java/org/testcontainers/oceanbase/OceanBaseJdbcDriverTest.java index a4f63b1eb90..da93b66316c 100644 --- a/modules/oceanbase/src/test/java/org/testcontainers/oceanbase/OceanBaseJdbcDriverTest.java +++ b/modules/oceanbase/src/test/java/org/testcontainers/oceanbase/OceanBaseJdbcDriverTest.java @@ -1,16 +1,16 @@ package org.testcontainers.oceanbase; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.testcontainers.jdbc.AbstractJDBCDriverTest; import java.util.Arrays; import java.util.EnumSet; -@RunWith(Parameterized.class) +@ParameterizedClass +@MethodSource("data") public class OceanBaseJdbcDriverTest extends AbstractJDBCDriverTest { - @Parameterized.Parameters(name = "{index} - {0}") public static Iterable data() { return Arrays.asList( new Object[][] { { "jdbc:tc:oceanbasece://hostname/databasename", EnumSet.noneOf(Options.class) } } diff --git a/modules/oceanbase/src/test/java/org/testcontainers/oceanbase/SimpleOceanBaseCETest.java b/modules/oceanbase/src/test/java/org/testcontainers/oceanbase/SimpleOceanBaseCETest.java index efe7ead90bd..a5c1a522ab1 100644 --- a/modules/oceanbase/src/test/java/org/testcontainers/oceanbase/SimpleOceanBaseCETest.java +++ b/modules/oceanbase/src/test/java/org/testcontainers/oceanbase/SimpleOceanBaseCETest.java @@ -1,6 +1,6 @@ package org.testcontainers.oceanbase; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.testcontainers.containers.output.Slf4jLogConsumer; diff --git a/modules/ollama/src/test/java/org/testcontainers/ollama/OllamaContainerTest.java b/modules/ollama/src/test/java/org/testcontainers/ollama/OllamaContainerTest.java index e4a1d61b790..5b14a26df18 100644 --- a/modules/ollama/src/test/java/org/testcontainers/ollama/OllamaContainerTest.java +++ b/modules/ollama/src/test/java/org/testcontainers/ollama/OllamaContainerTest.java @@ -1,6 +1,6 @@ package org.testcontainers.ollama; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.utility.Base58; import org.testcontainers.utility.DockerImageName; diff --git a/modules/openfga/src/test/java/org/testcontainers/openfga/OpenFGAContainerTest.java b/modules/openfga/src/test/java/org/testcontainers/openfga/OpenFGAContainerTest.java index 6f444b697f0..5c11f1f9243 100644 --- a/modules/openfga/src/test/java/org/testcontainers/openfga/OpenFGAContainerTest.java +++ b/modules/openfga/src/test/java/org/testcontainers/openfga/OpenFGAContainerTest.java @@ -5,7 +5,7 @@ import dev.openfga.sdk.api.configuration.ClientConfiguration; import dev.openfga.sdk.api.model.CreateStoreRequest; import dev.openfga.sdk.errors.FgaInvalidParameterException; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.concurrent.ExecutionException; diff --git a/modules/oracle-free/src/test/java/org/testcontainers/junit/oracle/SimpleOracleTest.java b/modules/oracle-free/src/test/java/org/testcontainers/junit/oracle/SimpleOracleTest.java index 45ed72cb622..00c09bc3d5f 100644 --- a/modules/oracle-free/src/test/java/org/testcontainers/junit/oracle/SimpleOracleTest.java +++ b/modules/oracle-free/src/test/java/org/testcontainers/junit/oracle/SimpleOracleTest.java @@ -1,6 +1,6 @@ package org.testcontainers.junit.oracle; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.db.AbstractContainerDatabaseTest; import org.testcontainers.oracle.OracleContainer; import org.testcontainers.utility.DockerImageName; diff --git a/modules/oracle-free/src/test/java/org/testcontainers/oracle/jdbc/OracleJDBCDriverTest.java b/modules/oracle-free/src/test/java/org/testcontainers/oracle/jdbc/OracleJDBCDriverTest.java index 6f6157c61c8..188cc15e64b 100644 --- a/modules/oracle-free/src/test/java/org/testcontainers/oracle/jdbc/OracleJDBCDriverTest.java +++ b/modules/oracle-free/src/test/java/org/testcontainers/oracle/jdbc/OracleJDBCDriverTest.java @@ -4,7 +4,7 @@ import com.zaxxer.hikari.HikariDataSource; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.ResultSetHandler; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.sql.ResultSet; import java.sql.SQLException; diff --git a/modules/oracle-xe/src/test/java/org/testcontainers/containers/jdbc/OracleJDBCDriverTest.java b/modules/oracle-xe/src/test/java/org/testcontainers/containers/jdbc/OracleJDBCDriverTest.java index 5e44f0d368c..13d330ce890 100644 --- a/modules/oracle-xe/src/test/java/org/testcontainers/containers/jdbc/OracleJDBCDriverTest.java +++ b/modules/oracle-xe/src/test/java/org/testcontainers/containers/jdbc/OracleJDBCDriverTest.java @@ -4,7 +4,7 @@ import com.zaxxer.hikari.HikariDataSource; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.ResultSetHandler; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.sql.ResultSet; import java.sql.SQLException; diff --git a/modules/oracle-xe/src/test/java/org/testcontainers/junit/oracle/SimpleOracleTest.java b/modules/oracle-xe/src/test/java/org/testcontainers/junit/oracle/SimpleOracleTest.java index 82ef9846ab2..b6e7db1fba3 100644 --- a/modules/oracle-xe/src/test/java/org/testcontainers/junit/oracle/SimpleOracleTest.java +++ b/modules/oracle-xe/src/test/java/org/testcontainers/junit/oracle/SimpleOracleTest.java @@ -1,6 +1,6 @@ package org.testcontainers.junit.oracle; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.OracleContainer; import org.testcontainers.db.AbstractContainerDatabaseTest; import org.testcontainers.utility.DockerImageName; diff --git a/modules/orientdb/src/test/java/org/testcontainers/containers/OrientDBContainerTest.java b/modules/orientdb/src/test/java/org/testcontainers/containers/OrientDBContainerTest.java index d370dc71472..12dcbf585bb 100644 --- a/modules/orientdb/src/test/java/org/testcontainers/containers/OrientDBContainerTest.java +++ b/modules/orientdb/src/test/java/org/testcontainers/containers/OrientDBContainerTest.java @@ -1,7 +1,7 @@ package org.testcontainers.containers; import com.orientechnologies.orient.core.db.ODatabaseSession; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.utility.DockerImageName; import org.testcontainers.utility.MountableFile; diff --git a/modules/pinecone/src/test/java/org/testcontainers/pinecone/PineconeLocalContainerTest.java b/modules/pinecone/src/test/java/org/testcontainers/pinecone/PineconeLocalContainerTest.java index 5843dfef81c..c2aa523dcc1 100644 --- a/modules/pinecone/src/test/java/org/testcontainers/pinecone/PineconeLocalContainerTest.java +++ b/modules/pinecone/src/test/java/org/testcontainers/pinecone/PineconeLocalContainerTest.java @@ -1,7 +1,7 @@ package org.testcontainers.pinecone; import io.pinecone.clients.Pinecone; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.openapitools.db_control.client.model.DeletionProtection; import org.openapitools.db_control.client.model.IndexModel; diff --git a/modules/postgresql/src/test/java/org/testcontainers/containers/CompatibleImageTest.java b/modules/postgresql/src/test/java/org/testcontainers/containers/CompatibleImageTest.java index 76b4a8c1bda..dbc54f5017c 100644 --- a/modules/postgresql/src/test/java/org/testcontainers/containers/CompatibleImageTest.java +++ b/modules/postgresql/src/test/java/org/testcontainers/containers/CompatibleImageTest.java @@ -1,6 +1,6 @@ package org.testcontainers.containers; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.db.AbstractContainerDatabaseTest; import org.testcontainers.utility.DockerImageName; diff --git a/modules/postgresql/src/test/java/org/testcontainers/containers/PostgreSQLConnectionURLTest.java b/modules/postgresql/src/test/java/org/testcontainers/containers/PostgreSQLConnectionURLTest.java index 275517250b6..a9284a55f30 100644 --- a/modules/postgresql/src/test/java/org/testcontainers/containers/PostgreSQLConnectionURLTest.java +++ b/modules/postgresql/src/test/java/org/testcontainers/containers/PostgreSQLConnectionURLTest.java @@ -1,6 +1,6 @@ package org.testcontainers.containers; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.PostgreSQLTestImages; import static org.assertj.core.api.Assertions.assertThat; diff --git a/modules/postgresql/src/test/java/org/testcontainers/containers/TimescaleDBContainerTest.java b/modules/postgresql/src/test/java/org/testcontainers/containers/TimescaleDBContainerTest.java index 90f3113c7c0..7683304ef59 100644 --- a/modules/postgresql/src/test/java/org/testcontainers/containers/TimescaleDBContainerTest.java +++ b/modules/postgresql/src/test/java/org/testcontainers/containers/TimescaleDBContainerTest.java @@ -1,6 +1,6 @@ package org.testcontainers.containers; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.db.AbstractContainerDatabaseTest; import java.sql.ResultSet; diff --git a/modules/postgresql/src/test/java/org/testcontainers/jdbc/DatabaseDriverShutdownTest.java b/modules/postgresql/src/test/java/org/testcontainers/jdbc/DatabaseDriverShutdownTest.java index ed519ed2e4b..93992c0c354 100644 --- a/modules/postgresql/src/test/java/org/testcontainers/jdbc/DatabaseDriverShutdownTest.java +++ b/modules/postgresql/src/test/java/org/testcontainers/jdbc/DatabaseDriverShutdownTest.java @@ -1,7 +1,7 @@ package org.testcontainers.jdbc; -import org.junit.AfterClass; -import org.junit.Test; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.JdbcDatabaseContainer; import java.sql.Connection; @@ -18,7 +18,7 @@ */ public class DatabaseDriverShutdownTest { - @AfterClass + @AfterAll public static void testCleanup() { ContainerDatabaseDriver.killContainers(); } diff --git a/modules/postgresql/src/test/java/org/testcontainers/jdbc/DatabaseDriverTmpfsTest.java b/modules/postgresql/src/test/java/org/testcontainers/jdbc/DatabaseDriverTmpfsTest.java index 463981d2d59..374d46ce516 100644 --- a/modules/postgresql/src/test/java/org/testcontainers/jdbc/DatabaseDriverTmpfsTest.java +++ b/modules/postgresql/src/test/java/org/testcontainers/jdbc/DatabaseDriverTmpfsTest.java @@ -1,6 +1,6 @@ package org.testcontainers.jdbc; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.Container; import org.testcontainers.containers.JdbcDatabaseContainer; diff --git a/modules/postgresql/src/test/java/org/testcontainers/jdbc/pgvector/PgVectorJDBCDriverTest.java b/modules/postgresql/src/test/java/org/testcontainers/jdbc/pgvector/PgVectorJDBCDriverTest.java index 2d7e67f4923..29d657ad535 100644 --- a/modules/postgresql/src/test/java/org/testcontainers/jdbc/pgvector/PgVectorJDBCDriverTest.java +++ b/modules/postgresql/src/test/java/org/testcontainers/jdbc/pgvector/PgVectorJDBCDriverTest.java @@ -1,16 +1,16 @@ package org.testcontainers.jdbc.pgvector; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.testcontainers.jdbc.AbstractJDBCDriverTest; import java.util.Arrays; import java.util.EnumSet; -@RunWith(Parameterized.class) +@ParameterizedClass +@MethodSource("data") public class PgVectorJDBCDriverTest extends AbstractJDBCDriverTest { - @Parameterized.Parameters(name = "{index} - {0}") public static Iterable data() { return Arrays.asList( new Object[][] { diff --git a/modules/postgresql/src/test/java/org/testcontainers/jdbc/postgis/PostgisJDBCDriverTest.java b/modules/postgresql/src/test/java/org/testcontainers/jdbc/postgis/PostgisJDBCDriverTest.java index abc0a3b76bc..4d280308a08 100644 --- a/modules/postgresql/src/test/java/org/testcontainers/jdbc/postgis/PostgisJDBCDriverTest.java +++ b/modules/postgresql/src/test/java/org/testcontainers/jdbc/postgis/PostgisJDBCDriverTest.java @@ -1,16 +1,16 @@ package org.testcontainers.jdbc.postgis; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.testcontainers.jdbc.AbstractJDBCDriverTest; import java.util.Arrays; import java.util.EnumSet; -@RunWith(Parameterized.class) +@ParameterizedClass +@MethodSource("data") public class PostgisJDBCDriverTest extends AbstractJDBCDriverTest { - @Parameterized.Parameters(name = "{index} - {0}") public static Iterable data() { return Arrays.asList( new Object[][] { diff --git a/modules/postgresql/src/test/java/org/testcontainers/jdbc/postgresql/PostgreSQLJDBCDriverTest.java b/modules/postgresql/src/test/java/org/testcontainers/jdbc/postgresql/PostgreSQLJDBCDriverTest.java index d42f17f3ec2..39083800ea7 100644 --- a/modules/postgresql/src/test/java/org/testcontainers/jdbc/postgresql/PostgreSQLJDBCDriverTest.java +++ b/modules/postgresql/src/test/java/org/testcontainers/jdbc/postgresql/PostgreSQLJDBCDriverTest.java @@ -1,16 +1,16 @@ package org.testcontainers.jdbc.postgresql; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.testcontainers.jdbc.AbstractJDBCDriverTest; import java.util.Arrays; import java.util.EnumSet; -@RunWith(Parameterized.class) +@ParameterizedClass +@MethodSource("data") public class PostgreSQLJDBCDriverTest extends AbstractJDBCDriverTest { - @Parameterized.Parameters(name = "{index} - {0}") public static Iterable data() { return Arrays.asList( new Object[][] { diff --git a/modules/postgresql/src/test/java/org/testcontainers/jdbc/timescaledb/TimescaleDBJDBCDriverTest.java b/modules/postgresql/src/test/java/org/testcontainers/jdbc/timescaledb/TimescaleDBJDBCDriverTest.java index 2a50b46c901..8ad724558f1 100644 --- a/modules/postgresql/src/test/java/org/testcontainers/jdbc/timescaledb/TimescaleDBJDBCDriverTest.java +++ b/modules/postgresql/src/test/java/org/testcontainers/jdbc/timescaledb/TimescaleDBJDBCDriverTest.java @@ -1,16 +1,16 @@ package org.testcontainers.jdbc.timescaledb; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.testcontainers.jdbc.AbstractJDBCDriverTest; import java.util.Arrays; import java.util.EnumSet; -@RunWith(Parameterized.class) +@ParameterizedClass +@MethodSource("data") public class TimescaleDBJDBCDriverTest extends AbstractJDBCDriverTest { - @Parameterized.Parameters(name = "{index} - {0}") public static Iterable data() { return Arrays.asList( new Object[][] { diff --git a/modules/postgresql/src/test/java/org/testcontainers/junit/postgresql/CustomizablePostgreSQLTest.java b/modules/postgresql/src/test/java/org/testcontainers/junit/postgresql/CustomizablePostgreSQLTest.java index 0e9904a5f61..28ebcac6ca4 100644 --- a/modules/postgresql/src/test/java/org/testcontainers/junit/postgresql/CustomizablePostgreSQLTest.java +++ b/modules/postgresql/src/test/java/org/testcontainers/junit/postgresql/CustomizablePostgreSQLTest.java @@ -1,6 +1,6 @@ package org.testcontainers.junit.postgresql; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.PostgreSQLTestImages; import org.testcontainers.containers.PostgreSQLContainer; import org.testcontainers.db.AbstractContainerDatabaseTest; diff --git a/modules/postgresql/src/test/java/org/testcontainers/junit/postgresql/SimplePostgreSQLTest.java b/modules/postgresql/src/test/java/org/testcontainers/junit/postgresql/SimplePostgreSQLTest.java index 250f19d87a0..9af685f25f8 100644 --- a/modules/postgresql/src/test/java/org/testcontainers/junit/postgresql/SimplePostgreSQLTest.java +++ b/modules/postgresql/src/test/java/org/testcontainers/junit/postgresql/SimplePostgreSQLTest.java @@ -1,6 +1,6 @@ package org.testcontainers.junit.postgresql; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.PostgreSQLTestImages; import org.testcontainers.containers.PostgreSQLContainer; import org.testcontainers.db.AbstractContainerDatabaseTest; diff --git a/modules/presto/src/test/java/org/testcontainers/containers/PrestoContainerTest.java b/modules/presto/src/test/java/org/testcontainers/containers/PrestoContainerTest.java index 8f2aa15f21c..b093253d7ef 100644 --- a/modules/presto/src/test/java/org/testcontainers/containers/PrestoContainerTest.java +++ b/modules/presto/src/test/java/org/testcontainers/containers/PrestoContainerTest.java @@ -1,6 +1,6 @@ package org.testcontainers.containers; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.PrestoTestImages; import java.sql.Connection; diff --git a/modules/presto/src/test/java/org/testcontainers/jdbc/presto/PrestoJDBCDriverTest.java b/modules/presto/src/test/java/org/testcontainers/jdbc/presto/PrestoJDBCDriverTest.java index 9c5dd712104..ff861e2cc76 100644 --- a/modules/presto/src/test/java/org/testcontainers/jdbc/presto/PrestoJDBCDriverTest.java +++ b/modules/presto/src/test/java/org/testcontainers/jdbc/presto/PrestoJDBCDriverTest.java @@ -1,16 +1,16 @@ package org.testcontainers.jdbc.presto; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.testcontainers.jdbc.AbstractJDBCDriverTest; import java.util.Arrays; import java.util.EnumSet; -@RunWith(Parameterized.class) +@ParameterizedClass +@MethodSource("data") public class PrestoJDBCDriverTest extends AbstractJDBCDriverTest { - @Parameterized.Parameters(name = "{index} - {0}") public static Iterable data() { return Arrays.asList( new Object[][] { // diff --git a/modules/pulsar/src/test/java/org/testcontainers/containers/CompatibleApachePulsarImageTest.java b/modules/pulsar/src/test/java/org/testcontainers/containers/CompatibleApachePulsarImageTest.java index b7a9cd3ff4c..d98b56109ed 100644 --- a/modules/pulsar/src/test/java/org/testcontainers/containers/CompatibleApachePulsarImageTest.java +++ b/modules/pulsar/src/test/java/org/testcontainers/containers/CompatibleApachePulsarImageTest.java @@ -1,20 +1,21 @@ package org.testcontainers.containers; import org.apache.pulsar.client.admin.PulsarAdmin; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.Parameter; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.testcontainers.utility.DockerImageName; -@RunWith(Parameterized.class) +@ParameterizedClass +@MethodSource("params") public class CompatibleApachePulsarImageTest extends AbstractPulsar { - @Parameterized.Parameters(name = "{0}") public static String[] params() { return new String[] { "apachepulsar/pulsar:3.0.0", "apachepulsar/pulsar-all:3.0.0" }; } - @Parameterized.Parameter + @Parameter(0) public String imageName; @Test diff --git a/modules/pulsar/src/test/java/org/testcontainers/containers/PulsarContainerTest.java b/modules/pulsar/src/test/java/org/testcontainers/containers/PulsarContainerTest.java index 779a3a6114a..920b864c953 100644 --- a/modules/pulsar/src/test/java/org/testcontainers/containers/PulsarContainerTest.java +++ b/modules/pulsar/src/test/java/org/testcontainers/containers/PulsarContainerTest.java @@ -2,7 +2,7 @@ import org.apache.pulsar.client.admin.PulsarAdmin; import org.apache.pulsar.client.admin.PulsarAdminException; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.utility.DockerImageName; import java.time.Duration; diff --git a/modules/qdrant/src/test/java/org/testcontainers/qdrant/QdrantContainerTest.java b/modules/qdrant/src/test/java/org/testcontainers/qdrant/QdrantContainerTest.java index d313a873d26..d80be127919 100644 --- a/modules/qdrant/src/test/java/org/testcontainers/qdrant/QdrantContainerTest.java +++ b/modules/qdrant/src/test/java/org/testcontainers/qdrant/QdrantContainerTest.java @@ -3,7 +3,7 @@ import io.qdrant.client.QdrantClient; import io.qdrant.client.QdrantGrpcClient; import io.qdrant.client.grpc.QdrantOuterClass; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.images.builder.Transferable; import java.util.UUID; diff --git a/modules/questdb/src/test/java/org/testcontainers/jdbc/questdb/QuestDBJDBCDriverTest.java b/modules/questdb/src/test/java/org/testcontainers/jdbc/questdb/QuestDBJDBCDriverTest.java index 3144f8bfad3..813244d6f4c 100644 --- a/modules/questdb/src/test/java/org/testcontainers/jdbc/questdb/QuestDBJDBCDriverTest.java +++ b/modules/questdb/src/test/java/org/testcontainers/jdbc/questdb/QuestDBJDBCDriverTest.java @@ -1,16 +1,16 @@ package org.testcontainers.jdbc.questdb; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.testcontainers.jdbc.AbstractJDBCDriverTest; import java.util.Arrays; import java.util.EnumSet; -@RunWith(Parameterized.class) +@ParameterizedClass +@MethodSource("data") public class QuestDBJDBCDriverTest extends AbstractJDBCDriverTest { - @Parameterized.Parameters(name = "{index} - {0}") public static Iterable data() { return Arrays.asList( new Object[][] { diff --git a/modules/questdb/src/test/java/org/testcontainers/junit/questdb/SimpleQuestDBTest.java b/modules/questdb/src/test/java/org/testcontainers/junit/questdb/SimpleQuestDBTest.java index c38524018c3..eb7105b6af5 100644 --- a/modules/questdb/src/test/java/org/testcontainers/junit/questdb/SimpleQuestDBTest.java +++ b/modules/questdb/src/test/java/org/testcontainers/junit/questdb/SimpleQuestDBTest.java @@ -6,7 +6,7 @@ import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.util.EntityUtils; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.QuestDBTestImages; import org.testcontainers.containers.QuestDBContainer; import org.testcontainers.db.AbstractContainerDatabaseTest; diff --git a/modules/r2dbc/build.gradle b/modules/r2dbc/build.gradle index 1415df161fa..b5161140104 100644 --- a/modules/r2dbc/build.gradle +++ b/modules/r2dbc/build.gradle @@ -14,4 +14,6 @@ dependencies { testFixturesImplementation 'io.projectreactor:reactor-core:3.6.10' testFixturesImplementation 'org.assertj:assertj-core:3.26.3' + testFixturesImplementation platform("org.junit:junit-bom:5.13.0") + testFixturesImplementation 'org.junit.jupiter:junit-jupiter' } diff --git a/modules/r2dbc/src/test/java/org/testcontainers/r2dbc/TestcontainersR2DBCConnectionFactoryTest.java b/modules/r2dbc/src/test/java/org/testcontainers/r2dbc/TestcontainersR2DBCConnectionFactoryTest.java index 9ae49b00bd1..fa9db0a0338 100644 --- a/modules/r2dbc/src/test/java/org/testcontainers/r2dbc/TestcontainersR2DBCConnectionFactoryTest.java +++ b/modules/r2dbc/src/test/java/org/testcontainers/r2dbc/TestcontainersR2DBCConnectionFactoryTest.java @@ -6,7 +6,7 @@ import io.r2dbc.spi.ConnectionFactories; import io.r2dbc.spi.ConnectionFactory; import io.r2dbc.spi.Result; -import org.junit.Test; +import org.junit.jupiter.api.Test; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; diff --git a/modules/r2dbc/src/testFixtures/java/org/testcontainers/r2dbc/AbstractR2DBCDatabaseContainerTest.java b/modules/r2dbc/src/testFixtures/java/org/testcontainers/r2dbc/AbstractR2DBCDatabaseContainerTest.java index ca06e22d631..e266fd68e97 100644 --- a/modules/r2dbc/src/testFixtures/java/org/testcontainers/r2dbc/AbstractR2DBCDatabaseContainerTest.java +++ b/modules/r2dbc/src/testFixtures/java/org/testcontainers/r2dbc/AbstractR2DBCDatabaseContainerTest.java @@ -6,7 +6,7 @@ import io.r2dbc.spi.ConnectionFactory; import io.r2dbc.spi.ConnectionFactoryMetadata; import io.r2dbc.spi.ConnectionFactoryOptions; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.GenericContainer; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; diff --git a/modules/rabbitmq/src/test/java/org/testcontainers/containers/RabbitMQContainerJUnitIntegrationTest.java b/modules/rabbitmq/src/test/java/org/testcontainers/containers/RabbitMQContainerJUnitIntegrationTest.java index e04ab616e66..5c10fd99abc 100644 --- a/modules/rabbitmq/src/test/java/org/testcontainers/containers/RabbitMQContainerJUnitIntegrationTest.java +++ b/modules/rabbitmq/src/test/java/org/testcontainers/containers/RabbitMQContainerJUnitIntegrationTest.java @@ -1,16 +1,15 @@ package org.testcontainers.containers; -import org.junit.ClassRule; -import org.junit.Test; +import org.junit.jupiter.api.Test; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import static org.assertj.core.api.Assertions.assertThat; -/** - * Test for basic functionality when used as a @ClassRule. - */ +@Testcontainers public class RabbitMQContainerJUnitIntegrationTest { - @ClassRule + @Container public static RabbitMQContainer rabbitMQContainer = new RabbitMQContainer(RabbitMQTestImages.RABBITMQ_IMAGE); @Test diff --git a/modules/rabbitmq/src/test/java/org/testcontainers/containers/RabbitMQContainerTest.java b/modules/rabbitmq/src/test/java/org/testcontainers/containers/RabbitMQContainerTest.java index 728b2622b17..c633568ccfd 100644 --- a/modules/rabbitmq/src/test/java/org/testcontainers/containers/RabbitMQContainerTest.java +++ b/modules/rabbitmq/src/test/java/org/testcontainers/containers/RabbitMQContainerTest.java @@ -6,7 +6,7 @@ import com.rabbitmq.client.Connection; import com.rabbitmq.client.ConnectionFactory; import com.rabbitmq.client.DeliverCallback; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.RabbitMQContainer.SslVerification; import org.testcontainers.utility.MountableFile; diff --git a/modules/redpanda/src/test/java/org/testcontainers/redpanda/CompatibleImageTest.java b/modules/redpanda/src/test/java/org/testcontainers/redpanda/CompatibleImageTest.java index 478d6e7efbc..d6ef05f480f 100644 --- a/modules/redpanda/src/test/java/org/testcontainers/redpanda/CompatibleImageTest.java +++ b/modules/redpanda/src/test/java/org/testcontainers/redpanda/CompatibleImageTest.java @@ -1,10 +1,11 @@ package org.testcontainers.redpanda; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; -@RunWith(Parameterized.class) +@ParameterizedClass +@MethodSource("image") public class CompatibleImageTest extends AbstractRedpanda { private final String image; @@ -13,7 +14,6 @@ public CompatibleImageTest(String image) { this.image = image; } - @Parameterized.Parameters(name = "{0}") public static String[] image() { return new String[] { "docker.redpanda.com/redpandadata/redpanda:v22.2.1", "redpandadata/redpanda:v22.2.1" }; } diff --git a/modules/redpanda/src/test/java/org/testcontainers/redpanda/RedpandaContainerTest.java b/modules/redpanda/src/test/java/org/testcontainers/redpanda/RedpandaContainerTest.java index d07f33d8b00..564efd8fab7 100644 --- a/modules/redpanda/src/test/java/org/testcontainers/redpanda/RedpandaContainerTest.java +++ b/modules/redpanda/src/test/java/org/testcontainers/redpanda/RedpandaContainerTest.java @@ -12,7 +12,7 @@ import org.apache.kafka.common.errors.SaslAuthenticationException; import org.apache.kafka.common.errors.TopicAuthorizationException; import org.awaitility.Awaitility; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.GenericContainer; import org.testcontainers.containers.Network; import org.testcontainers.containers.SocatContainer; diff --git a/modules/scylladb/src/test/java/org/testcontainers/scylladb/ScyllaDBContainerTest.java b/modules/scylladb/src/test/java/org/testcontainers/scylladb/ScyllaDBContainerTest.java index d151424fd20..4ee27b03659 100644 --- a/modules/scylladb/src/test/java/org/testcontainers/scylladb/ScyllaDBContainerTest.java +++ b/modules/scylladb/src/test/java/org/testcontainers/scylladb/ScyllaDBContainerTest.java @@ -2,7 +2,7 @@ import com.datastax.oss.driver.api.core.CqlSession; import com.datastax.oss.driver.api.core.cql.ResultSet; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.Container; import org.testcontainers.utility.DockerImageName; import org.testcontainers.utility.MountableFile; diff --git a/modules/selenium/src/main/java/org/testcontainers/containers/BrowserWebDriverContainer.java b/modules/selenium/src/main/java/org/testcontainers/containers/BrowserWebDriverContainer.java index 8cdb6ca611c..933a96ab5c1 100644 --- a/modules/selenium/src/main/java/org/testcontainers/containers/BrowserWebDriverContainer.java +++ b/modules/selenium/src/main/java/org/testcontainers/containers/BrowserWebDriverContainer.java @@ -307,8 +307,8 @@ protected void containerIsStarted(InspectContainerResponse containerInfo) { /** * Obtain a RemoteWebDriver instance that is bound to an instance of the browser running inside a new container. *

- * All containers and drivers will be automatically shut down after the test method finishes (if used as a @Rule) or the test - * class (if used as a @ClassRule) + * All containers and drivers will be automatically shut down after the test method finishes (if used as a instance + * field) or the test class (if used as a static field) * * @return a new Remote Web Driver instance * @deprecated use {@link #getSeleniumAddress()} instead diff --git a/modules/selenium/src/main/java/org/testcontainers/containers/RecordingFileFactory.java b/modules/selenium/src/main/java/org/testcontainers/containers/RecordingFileFactory.java index 31946dac59e..9f3795f7cb8 100644 --- a/modules/selenium/src/main/java/org/testcontainers/containers/RecordingFileFactory.java +++ b/modules/selenium/src/main/java/org/testcontainers/containers/RecordingFileFactory.java @@ -1,20 +1,10 @@ package org.testcontainers.containers; -import org.junit.runner.Description; import org.testcontainers.containers.VncRecordingContainer.VncRecordingFormat; import java.io.File; public interface RecordingFileFactory { - @Deprecated - default File recordingFileForTest(File vncRecordingDirectory, Description description, boolean succeeded) { - return recordingFileForTest( - vncRecordingDirectory, - description.getTestClass().getSimpleName() + "-" + description.getMethodName(), - succeeded - ); - } - default File recordingFileForTest( File vncRecordingDirectory, String prefix, diff --git a/modules/selenium/src/test/java/org/testcontainers/containers/DefaultRecordingFileFactoryTest.java b/modules/selenium/src/test/java/org/testcontainers/containers/DefaultRecordingFileFactoryTest.java index aa894810930..556c4b8ae13 100644 --- a/modules/selenium/src/test/java/org/testcontainers/containers/DefaultRecordingFileFactoryTest.java +++ b/modules/selenium/src/test/java/org/testcontainers/containers/DefaultRecordingFileFactoryTest.java @@ -1,10 +1,9 @@ package org.testcontainers.containers; import lombok.Value; -import org.junit.Test; -import org.junit.runner.Description; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import java.io.File; import java.nio.file.Files; @@ -17,7 +16,8 @@ import static org.assertj.core.api.Assertions.assertThat; -@RunWith(Parameterized.class) +@ParameterizedClass +@MethodSource("data") @Value public class DefaultRecordingFileFactoryTest { @@ -31,7 +31,6 @@ public class DefaultRecordingFileFactoryTest { private final boolean success; - @Parameterized.Parameters public static Collection data() { Collection args = new ArrayList<>(); args.add(new Object[] { "testMethod1", "FAILED", Boolean.FALSE }); @@ -42,11 +41,7 @@ public static Collection data() { @Test public void recordingFileThatShouldDescribeTheTestResultAtThePresentTime() throws Exception { File vncRecordingDirectory = Files.createTempDirectory("recording").toFile(); - Description description = Description.createTestDescription( - getClass().getCanonicalName(), - methodName, - Test.class - ); + String description = getClass().getSimpleName() + "-" + methodName; File recordingFile = factory.recordingFileForTest(vncRecordingDirectory, description, success); diff --git a/modules/selenium/src/test/java/org/testcontainers/junit/BaseWebDriverContainerTest.java b/modules/selenium/src/test/java/org/testcontainers/junit/BaseWebDriverContainerTest.java index 97124802de1..6f5dae3bd84 100644 --- a/modules/selenium/src/test/java/org/testcontainers/junit/BaseWebDriverContainerTest.java +++ b/modules/selenium/src/test/java/org/testcontainers/junit/BaseWebDriverContainerTest.java @@ -1,6 +1,5 @@ package org.testcontainers.junit; -import org.junit.ClassRule; import org.openqa.selenium.By; import org.openqa.selenium.Capabilities; import org.openqa.selenium.WebElement; @@ -9,21 +8,22 @@ import org.testcontainers.containers.GenericContainer; import org.testcontainers.containers.Network; import org.testcontainers.containers.wait.strategy.HttpWaitStrategy; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.ManagedNetwork; +import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.DockerImageName; import java.time.Duration; import static org.assertj.core.api.Assertions.assertThat; -/** - * - */ +@Testcontainers public class BaseWebDriverContainerTest { - @ClassRule + @ManagedNetwork public static Network NETWORK = Network.newNetwork(); - @ClassRule + @Container public static GenericContainer HELLO_WORLD = new GenericContainer<>( DockerImageName.parse("testcontainers/helloworld:1.1.0") ) diff --git a/modules/selenium/src/test/java/org/testcontainers/junit/BrowserWebDriverContainerTest.java b/modules/selenium/src/test/java/org/testcontainers/junit/BrowserWebDriverContainerTest.java index 370d9cffedb..e28b8e16850 100644 --- a/modules/selenium/src/test/java/org/testcontainers/junit/BrowserWebDriverContainerTest.java +++ b/modules/selenium/src/test/java/org/testcontainers/junit/BrowserWebDriverContainerTest.java @@ -3,8 +3,7 @@ import com.github.dockerjava.api.command.InspectContainerResponse; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.SystemUtils; -import org.junit.Assume; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.openqa.selenium.chrome.ChromeOptions; import org.openqa.selenium.firefox.FirefoxOptions; import org.testcontainers.containers.BrowserWebDriverContainer; @@ -14,6 +13,7 @@ import java.util.stream.Collectors; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assumptions.assumeThat; public class BrowserWebDriverContainerTest { @@ -50,7 +50,9 @@ public void provideDefaultNoProxyEnvironmentIfNotSet() { @Test public void createContainerWithShmVolume() { - Assume.assumeFalse("SHM isn't mounted on Windows", SystemUtils.IS_OS_WINDOWS); + assumeThat(SystemUtils.IS_OS_WINDOWS) + .as("SHM isn't mounted on Windows") + .isFalse(); try ( BrowserWebDriverContainer webDriverContainer = new BrowserWebDriverContainer() .withCapabilities(new FirefoxOptions()) diff --git a/modules/selenium/src/test/java/org/testcontainers/junit/ChromeRecordingWebDriverContainerTest.java b/modules/selenium/src/test/java/org/testcontainers/junit/ChromeRecordingWebDriverContainerTest.java index 8723d951d3e..823dcf32dcb 100644 --- a/modules/selenium/src/test/java/org/testcontainers/junit/ChromeRecordingWebDriverContainerTest.java +++ b/modules/selenium/src/test/java/org/testcontainers/junit/ChromeRecordingWebDriverContainerTest.java @@ -1,11 +1,9 @@ package org.testcontainers.junit; import com.google.common.io.PatternFilenameFilter; -import org.junit.Rule; -import org.junit.Test; -import org.junit.experimental.runners.Enclosed; -import org.junit.rules.TemporaryFolder; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; import org.openqa.selenium.chrome.ChromeOptions; import org.testcontainers.containers.BrowserWebDriverContainer; import org.testcontainers.containers.BrowserWebDriverContainer.VncRecordingMode; @@ -27,7 +25,6 @@ import static org.assertj.core.api.Assertions.assertThat; -@RunWith(Enclosed.class) public class ChromeRecordingWebDriverContainerTest extends BaseWebDriverContainerTest { /** @@ -36,14 +33,15 @@ public class ChromeRecordingWebDriverContainerTest extends BaseWebDriverContaine */ private static final int MINIMUM_VIDEO_DURATION_MILLISECONDS = 200; - public static class ChromeThatRecordsAllTests { + @Nested + public class ChromeThatRecordsAllTests { - @Rule - public TemporaryFolder vncRecordingDirectory = new TemporaryFolder(); + @TempDir + public File vncRecordingDirectory; @Test public void recordingTestThatShouldBeRecordedAndRetainedInFlvFormatAsDefault() throws InterruptedException { - File target = vncRecordingDirectory.getRoot(); + File target = vncRecordingDirectory; try ( // recordAll { // To do this, simply add extra parameters to the rule constructor, so video will default to FLV format: @@ -80,12 +78,12 @@ public String getFilesystemFriendlyName() { Optional.empty() ); - return vncRecordingDirectory.getRoot().listFiles(new PatternFilenameFilter(fileNamePattern)); + return vncRecordingDirectory.listFiles(new PatternFilenameFilter(fileNamePattern)); } @Test public void recordingTestShouldHaveFlvExtension() throws InterruptedException { - File target = vncRecordingDirectory.getRoot(); + File target = vncRecordingDirectory; try ( // recordFlv { // Set (explicitly) FLV format for recorded video: @@ -103,7 +101,7 @@ public void recordingTestShouldHaveFlvExtension() throws InterruptedException { @Test public void recordingTestShouldHaveMp4Extension() throws InterruptedException { - File target = vncRecordingDirectory.getRoot(); + File target = vncRecordingDirectory; try ( // recordMp4 { // Set MP4 format for recorded video: @@ -125,7 +123,7 @@ public void recordingTestThatShouldHaveCorrectDuration() throws IOException, Int try ( BrowserWebDriverContainer chrome = new BrowserWebDriverContainer<>() .withCapabilities(new ChromeOptions()) - .withRecordingMode(VncRecordingMode.RECORD_ALL, vncRecordingDirectory.getRoot()) + .withRecordingMode(VncRecordingMode.RECORD_ALL, vncRecordingDirectory) .withRecordingFileFactory(new DefaultRecordingFileFactory()) .withNetwork(NETWORK) ) { @@ -159,10 +157,11 @@ public void recordingTestThatShouldHaveCorrectDuration() throws IOException, Int } } - public static class ChromeThatRecordsFailingTests { + @Nested + public class ChromeThatRecordsFailingTests { - @Rule - public TemporaryFolder vncRecordingDirectory = new TemporaryFolder(); + @TempDir + public File vncRecordingDirectory; @Test public void recordingTestThatShouldBeRecordedButNotPersisted() { @@ -184,7 +183,7 @@ public void recordingTestThatShouldBeRecordedButNotPersisted() { @Test public void recordingTestThatShouldBeRecordedAndRetained() throws InterruptedException { - File target = vncRecordingDirectory.getRoot(); + File target = vncRecordingDirectory; try ( // recordFailing { // or if you only want videos for test failures: @@ -214,11 +213,11 @@ public String getFilesystemFriendlyName() { Optional.of(new RuntimeException("Force writing of video file.")) ); - String[] files = vncRecordingDirectory.getRoot().list(new PatternFilenameFilter("FAILED-.*\\.flv")); + String[] files = vncRecordingDirectory.list(new PatternFilenameFilter("FAILED-.*\\.flv")); assertThat(files).as("recorded file count").hasSize(1); } } - - private static class CustomRecordingFileFactory extends DefaultRecordingFileFactory {} } + + private static class CustomRecordingFileFactory extends DefaultRecordingFileFactory {} } diff --git a/modules/selenium/src/test/java/org/testcontainers/junit/ChromeWebDriverContainerTest.java b/modules/selenium/src/test/java/org/testcontainers/junit/ChromeWebDriverContainerTest.java index 2f0bfc27b0d..06a6ab2dd22 100644 --- a/modules/selenium/src/test/java/org/testcontainers/junit/ChromeWebDriverContainerTest.java +++ b/modules/selenium/src/test/java/org/testcontainers/junit/ChromeWebDriverContainerTest.java @@ -1,24 +1,23 @@ package org.testcontainers.junit; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.openqa.selenium.chrome.ChromeOptions; import org.testcontainers.containers.BrowserWebDriverContainer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; -/** - * - */ +@Testcontainers public class ChromeWebDriverContainerTest extends BaseWebDriverContainerTest { // junitRule { - @Rule + @Container public BrowserWebDriverContainer chrome = new BrowserWebDriverContainer<>() .withCapabilities(new ChromeOptions()) // } .withNetwork(NETWORK); - @Before + @BeforeEach public void checkBrowserIsIndeedChrome() { assertBrowserNameIs(chrome, "chrome", new ChromeOptions()); } diff --git a/modules/selenium/src/test/java/org/testcontainers/junit/ContainerWithoutCapabilitiesTest.java b/modules/selenium/src/test/java/org/testcontainers/junit/ContainerWithoutCapabilitiesTest.java index f5c03fb32d1..9a9e2aca4b1 100644 --- a/modules/selenium/src/test/java/org/testcontainers/junit/ContainerWithoutCapabilitiesTest.java +++ b/modules/selenium/src/test/java/org/testcontainers/junit/ContainerWithoutCapabilitiesTest.java @@ -1,13 +1,15 @@ package org.testcontainers.junit; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.openqa.selenium.chrome.ChromeOptions; import org.testcontainers.containers.BrowserWebDriverContainer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; +@Testcontainers public class ContainerWithoutCapabilitiesTest extends BaseWebDriverContainerTest { - @Rule + @Container public BrowserWebDriverContainer chrome = new BrowserWebDriverContainer<>().withNetwork(NETWORK); @Test diff --git a/modules/selenium/src/test/java/org/testcontainers/junit/CustomWaitTimeoutWebDriverContainerTest.java b/modules/selenium/src/test/java/org/testcontainers/junit/CustomWaitTimeoutWebDriverContainerTest.java index 43639010e59..4af368b507a 100644 --- a/modules/selenium/src/test/java/org/testcontainers/junit/CustomWaitTimeoutWebDriverContainerTest.java +++ b/modules/selenium/src/test/java/org/testcontainers/junit/CustomWaitTimeoutWebDriverContainerTest.java @@ -1,19 +1,18 @@ package org.testcontainers.junit; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.openqa.selenium.chrome.ChromeOptions; import org.testcontainers.containers.BrowserWebDriverContainer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import java.time.Duration; import java.time.temporal.ChronoUnit; -/** - * - */ +@Testcontainers public class CustomWaitTimeoutWebDriverContainerTest extends BaseWebDriverContainerTest { - @Rule + @Container public BrowserWebDriverContainer chromeWithCustomTimeout = new BrowserWebDriverContainer<>() .withCapabilities(new ChromeOptions()) .withStartupTimeout(Duration.of(30, ChronoUnit.SECONDS)) diff --git a/modules/selenium/src/test/java/org/testcontainers/junit/EdgeWebDriverContainerTest.java b/modules/selenium/src/test/java/org/testcontainers/junit/EdgeWebDriverContainerTest.java index f1935fa84ee..cdcb4617453 100644 --- a/modules/selenium/src/test/java/org/testcontainers/junit/EdgeWebDriverContainerTest.java +++ b/modules/selenium/src/test/java/org/testcontainers/junit/EdgeWebDriverContainerTest.java @@ -1,21 +1,23 @@ package org.testcontainers.junit; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.openqa.selenium.edge.EdgeOptions; import org.testcontainers.containers.BrowserWebDriverContainer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; +@Testcontainers public class EdgeWebDriverContainerTest extends BaseWebDriverContainerTest { // junitRule { - @Rule + @Container public BrowserWebDriverContainer edge = new BrowserWebDriverContainer<>() .withCapabilities(new EdgeOptions()) // } .withNetwork(NETWORK); - @Before + @BeforeEach public void checkBrowserIsIndeedMSEdge() { assertBrowserNameIs(edge, "msedge", new EdgeOptions()); } diff --git a/modules/selenium/src/test/java/org/testcontainers/junit/FirefoxWebDriverContainerTest.java b/modules/selenium/src/test/java/org/testcontainers/junit/FirefoxWebDriverContainerTest.java index 211800b8fad..2ac547e0449 100644 --- a/modules/selenium/src/test/java/org/testcontainers/junit/FirefoxWebDriverContainerTest.java +++ b/modules/selenium/src/test/java/org/testcontainers/junit/FirefoxWebDriverContainerTest.java @@ -1,24 +1,23 @@ package org.testcontainers.junit; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.openqa.selenium.firefox.FirefoxOptions; import org.testcontainers.containers.BrowserWebDriverContainer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; -/** - * - */ +@Testcontainers public class FirefoxWebDriverContainerTest extends BaseWebDriverContainerTest { // junitRule { - @Rule + @Container public BrowserWebDriverContainer firefox = new BrowserWebDriverContainer<>() .withCapabilities(new FirefoxOptions()) // } .withNetwork(NETWORK); - @Before + @BeforeEach public void checkBrowserIsIndeedFirefox() { assertBrowserNameIs(firefox, "firefox", new FirefoxOptions()); } diff --git a/modules/selenium/src/test/java/org/testcontainers/junit/LocalServerWebDriverContainerTest.java b/modules/selenium/src/test/java/org/testcontainers/junit/LocalServerWebDriverContainerTest.java index 8d29cb57310..17d9b6efb4b 100644 --- a/modules/selenium/src/test/java/org/testcontainers/junit/LocalServerWebDriverContainerTest.java +++ b/modules/selenium/src/test/java/org/testcontainers/junit/LocalServerWebDriverContainerTest.java @@ -1,8 +1,7 @@ package org.testcontainers.junit; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.mortbay.jetty.Server; import org.mortbay.jetty.bio.SocketConnector; import org.mortbay.jetty.handler.ResourceHandler; @@ -11,6 +10,7 @@ import org.openqa.selenium.remote.RemoteWebDriver; import org.testcontainers.Testcontainers; import org.testcontainers.containers.BrowserWebDriverContainer; +import org.testcontainers.junit.jupiter.Container; import static org.assertj.core.api.Assertions.assertThat; @@ -18,16 +18,17 @@ * Test that a browser running in a container can access a web server hosted on the host machine (i.e. the one running * the tests) */ +@org.testcontainers.junit.jupiter.Testcontainers public class LocalServerWebDriverContainerTest { - @Rule + @Container public BrowserWebDriverContainer chrome = new BrowserWebDriverContainer<>() .withAccessToHost(true) .withCapabilities(new ChromeOptions()); private int localPort; - @Before + @BeforeEach public void setupLocalServer() throws Exception { // Set up a local Jetty HTTP server Server server = new Server(); diff --git a/modules/selenium/src/test/java/org/testcontainers/junit/SeleniumStartTest.java b/modules/selenium/src/test/java/org/testcontainers/junit/SeleniumStartTest.java index b399cabf9ed..5364ec7bea0 100644 --- a/modules/selenium/src/test/java/org/testcontainers/junit/SeleniumStartTest.java +++ b/modules/selenium/src/test/java/org/testcontainers/junit/SeleniumStartTest.java @@ -1,8 +1,9 @@ package org.testcontainers.junit; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.Parameter; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.openqa.selenium.chrome.ChromeOptions; import org.testcontainers.containers.BrowserWebDriverContainer; import org.testcontainers.utility.DockerImageName; @@ -10,15 +11,15 @@ /** * Simple test to check that readiness detection works correctly across major versions of the containers. */ -@RunWith(Parameterized.class) +@ParameterizedClass(name = "tag: {0}") +@MethodSource("data") public class SeleniumStartTest { - @Parameterized.Parameters(name = "tag: {0}") public static String[] data() { return new String[] { "4.0.0", "3.4.0", "2.53.0" }; } - @Parameterized.Parameter + @Parameter(0) public String tag; @Test diff --git a/modules/selenium/src/test/java/org/testcontainers/junit/SeleniumUtilsTest.java b/modules/selenium/src/test/java/org/testcontainers/junit/SeleniumUtilsTest.java index 6208cb3a5bb..50532d5e665 100644 --- a/modules/selenium/src/test/java/org/testcontainers/junit/SeleniumUtilsTest.java +++ b/modules/selenium/src/test/java/org/testcontainers/junit/SeleniumUtilsTest.java @@ -1,6 +1,6 @@ package org.testcontainers.junit; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.SeleniumUtils; import java.io.IOException; diff --git a/modules/selenium/src/test/java/org/testcontainers/junit/SpecificImageNameWebDriverContainerTest.java b/modules/selenium/src/test/java/org/testcontainers/junit/SpecificImageNameWebDriverContainerTest.java index 9f0d9035f44..e1c0a7dfc7f 100644 --- a/modules/selenium/src/test/java/org/testcontainers/junit/SpecificImageNameWebDriverContainerTest.java +++ b/modules/selenium/src/test/java/org/testcontainers/junit/SpecificImageNameWebDriverContainerTest.java @@ -1,16 +1,18 @@ package org.testcontainers.junit; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.openqa.selenium.firefox.FirefoxOptions; import org.testcontainers.containers.BrowserWebDriverContainer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.DockerImageName; +@Testcontainers public class SpecificImageNameWebDriverContainerTest extends BaseWebDriverContainerTest { private static final DockerImageName FIREFOX_IMAGE = DockerImageName.parse("selenium/standalone-firefox:4.10.0"); - @Rule + @Container public BrowserWebDriverContainer firefox = new BrowserWebDriverContainer<>(FIREFOX_IMAGE) .withCapabilities(new FirefoxOptions()) .withNetwork(NETWORK); diff --git a/modules/solace/src/test/java/org/testcontainers/solace/SolaceContainerAMQPTest.java b/modules/solace/src/test/java/org/testcontainers/solace/SolaceContainerAMQPTest.java index 6c68d27d358..5ca4aa38381 100644 --- a/modules/solace/src/test/java/org/testcontainers/solace/SolaceContainerAMQPTest.java +++ b/modules/solace/src/test/java/org/testcontainers/solace/SolaceContainerAMQPTest.java @@ -1,8 +1,7 @@ package org.testcontainers.solace; import org.apache.qpid.jms.JmsConnectionFactory; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -19,6 +18,7 @@ import javax.jms.Topic; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.fail; public class SolaceContainerAMQPTest { @@ -57,7 +57,7 @@ private static Session createSession(String username, String password, String ho connection.start(); return session; } catch (Exception e) { - Assert.fail("Error connecting and setting up session! " + e.getMessage()); + fail("Error connecting and setting up session! " + e.getMessage()); return null; } } diff --git a/modules/solace/src/test/java/org/testcontainers/solace/SolaceContainerMQTTTest.java b/modules/solace/src/test/java/org/testcontainers/solace/SolaceContainerMQTTTest.java index ab7d5ed56bb..a8df9dfcd69 100644 --- a/modules/solace/src/test/java/org/testcontainers/solace/SolaceContainerMQTTTest.java +++ b/modules/solace/src/test/java/org/testcontainers/solace/SolaceContainerMQTTTest.java @@ -6,8 +6,7 @@ import org.eclipse.paho.client.mqttv3.MqttConnectOptions; import org.eclipse.paho.client.mqttv3.MqttException; import org.eclipse.paho.client.mqttv3.MqttMessage; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -15,6 +14,7 @@ import java.util.concurrent.TimeUnit; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.fail; public class SolaceContainerMQTTTest { @@ -52,7 +52,7 @@ private static MqttClient createClient(String username, String password, String mqttClient.connect(connOpts); return mqttClient; } catch (Exception e) { - Assert.fail("Error connecting and setting up session! " + e.getMessage()); + fail("Error connecting and setting up session! " + e.getMessage()); return null; } } diff --git a/modules/solace/src/test/java/org/testcontainers/solace/SolaceContainerRESTTest.java b/modules/solace/src/test/java/org/testcontainers/solace/SolaceContainerRESTTest.java index f2722b986ca..b8a97dee9ec 100644 --- a/modules/solace/src/test/java/org/testcontainers/solace/SolaceContainerRESTTest.java +++ b/modules/solace/src/test/java/org/testcontainers/solace/SolaceContainerRESTTest.java @@ -12,12 +12,12 @@ import org.apache.http.impl.client.BasicCredentialsProvider; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.util.EntityUtils; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.io.IOException; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.fail; public class SolaceContainerRESTTest { @@ -44,7 +44,7 @@ private void testPublishMessageToSolace(SolaceContainer solaceContainer, Service request.addHeader(HttpHeaders.CONTENT_TYPE, "text/plain"); HttpResponse response = client.execute(request); if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) { - Assert.fail("Cannot send message to solace - " + EntityUtils.toString(response.getEntity())); + fail("Cannot send message to solace - " + EntityUtils.toString(response.getEntity())); } assertThat(EntityUtils.toString(response.getEntity())).isEmpty(); } diff --git a/modules/solace/src/test/java/org/testcontainers/solace/SolaceContainerSMFTest.java b/modules/solace/src/test/java/org/testcontainers/solace/SolaceContainerSMFTest.java index d7ccd94998e..31db64ac081 100644 --- a/modules/solace/src/test/java/org/testcontainers/solace/SolaceContainerSMFTest.java +++ b/modules/solace/src/test/java/org/testcontainers/solace/SolaceContainerSMFTest.java @@ -11,8 +11,7 @@ import com.solacesystems.jcsmp.XMLMessageConsumer; import com.solacesystems.jcsmp.XMLMessageListener; import com.solacesystems.jcsmp.XMLMessageProducer; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.testcontainers.utility.MountableFile; @@ -21,6 +20,7 @@ import java.util.concurrent.TimeUnit; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.fail; public class SolaceContainerSMFTest { @@ -107,7 +107,7 @@ private static JCSMPSession createSession(JCSMPProperties properties) { session.connect(); return session; } catch (Exception e) { - Assert.fail("Error connecting and setting up session! " + e.getMessage()); + fail("Error connecting and setting up session! " + e.getMessage()); return null; } } diff --git a/modules/solr/src/test/java/org/testcontainers/containers/SolrContainerTest.java b/modules/solr/src/test/java/org/testcontainers/containers/SolrContainerTest.java index f678155b3c1..c68fe78614b 100644 --- a/modules/solr/src/test/java/org/testcontainers/containers/SolrContainerTest.java +++ b/modules/solr/src/test/java/org/testcontainers/containers/SolrContainerTest.java @@ -4,29 +4,30 @@ import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.impl.Http2SolrClient; import org.apache.solr.client.solrj.response.SolrPingResponse; -import org.junit.After; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.Parameter; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import java.io.IOException; import static org.assertj.core.api.Assertions.assertThat; -@RunWith(Parameterized.class) +@ParameterizedClass +@MethodSource("getVersionsToTest") public class SolrContainerTest { - @Parameterized.Parameters(name = "{0}") public static String[] getVersionsToTest() { return new String[] { "solr:8.11.4", "solr:9.8.0" }; } - @Parameterized.Parameter + @Parameter(0) public String solrImage; private SolrClient client = null; - @After + @AfterEach public void stopRestClient() throws IOException { if (client != null) { client.close(); diff --git a/modules/tidb/src/test/java/org/testcontainers/jdbc/tidb/TiDBJDBCDriverTest.java b/modules/tidb/src/test/java/org/testcontainers/jdbc/tidb/TiDBJDBCDriverTest.java index 566850fa629..183b51a7a58 100644 --- a/modules/tidb/src/test/java/org/testcontainers/jdbc/tidb/TiDBJDBCDriverTest.java +++ b/modules/tidb/src/test/java/org/testcontainers/jdbc/tidb/TiDBJDBCDriverTest.java @@ -1,16 +1,16 @@ package org.testcontainers.jdbc.tidb; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.testcontainers.jdbc.AbstractJDBCDriverTest; import java.util.Arrays; import java.util.EnumSet; -@RunWith(Parameterized.class) +@ParameterizedClass +@MethodSource("data") public class TiDBJDBCDriverTest extends AbstractJDBCDriverTest { - @Parameterized.Parameters(name = "{index} - {0}") public static Iterable data() { return Arrays.asList( new Object[][] { { "jdbc:tc:tidb://hostname/databasename", EnumSet.noneOf(Options.class) } } diff --git a/modules/tidb/src/test/java/org/testcontainers/junit/tidb/SimpleTiDBTest.java b/modules/tidb/src/test/java/org/testcontainers/junit/tidb/SimpleTiDBTest.java index 6b4429afe75..c47639c74b8 100644 --- a/modules/tidb/src/test/java/org/testcontainers/junit/tidb/SimpleTiDBTest.java +++ b/modules/tidb/src/test/java/org/testcontainers/junit/tidb/SimpleTiDBTest.java @@ -1,6 +1,6 @@ package org.testcontainers.junit.tidb; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.TiDBTestImages; import org.testcontainers.db.AbstractContainerDatabaseTest; import org.testcontainers.tidb.TiDBContainer; diff --git a/modules/timeplus/src/test/java/org/testcontainers/junit/timeplus/TimeplusJDBCDriverTest.java b/modules/timeplus/src/test/java/org/testcontainers/junit/timeplus/TimeplusJDBCDriverTest.java index 3f3a7ac8136..47d497fc551 100644 --- a/modules/timeplus/src/test/java/org/testcontainers/junit/timeplus/TimeplusJDBCDriverTest.java +++ b/modules/timeplus/src/test/java/org/testcontainers/junit/timeplus/TimeplusJDBCDriverTest.java @@ -1,16 +1,16 @@ package org.testcontainers.junit.timeplus; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.testcontainers.jdbc.AbstractJDBCDriverTest; import java.util.Arrays; import java.util.EnumSet; -@RunWith(Parameterized.class) +@ParameterizedClass +@MethodSource("data") public class TimeplusJDBCDriverTest extends AbstractJDBCDriverTest { - @Parameterized.Parameters(name = "{index} - {0}") public static Iterable data() { return Arrays.asList( new Object[][] { { "jdbc:tc:timeplus:2.3.21://hostname", EnumSet.noneOf(Options.class) } } diff --git a/modules/timeplus/src/test/java/org/testcontainers/timeplus/TimeplusContainerTest.java b/modules/timeplus/src/test/java/org/testcontainers/timeplus/TimeplusContainerTest.java index 95ecc1c6ef7..6a33f92ea85 100644 --- a/modules/timeplus/src/test/java/org/testcontainers/timeplus/TimeplusContainerTest.java +++ b/modules/timeplus/src/test/java/org/testcontainers/timeplus/TimeplusContainerTest.java @@ -1,6 +1,6 @@ package org.testcontainers.timeplus; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.TimeplusImages; import org.testcontainers.db.AbstractContainerDatabaseTest; diff --git a/modules/toxiproxy/src/test/java/org/testcontainers/containers/ToxiproxyTest.java b/modules/toxiproxy/src/test/java/org/testcontainers/containers/ToxiproxyTest.java index bb941640055..f9ef99b6fc7 100644 --- a/modules/toxiproxy/src/test/java/org/testcontainers/containers/ToxiproxyTest.java +++ b/modules/toxiproxy/src/test/java/org/testcontainers/containers/ToxiproxyTest.java @@ -3,8 +3,8 @@ import eu.rekawek.toxiproxy.Proxy; import eu.rekawek.toxiproxy.ToxiproxyClient; import eu.rekawek.toxiproxy.model.ToxicDirection; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.Test; +import org.testcontainers.junit.jupiter.ManagedNetwork; import redis.clients.jedis.Jedis; import redis.clients.jedis.exceptions.JedisConnectionException; @@ -22,18 +22,18 @@ public class ToxiproxyTest { // spotless:off // creatingProxy { // Create a common docker network so that containers can communicate - @Rule + @ManagedNetwork public Network network = Network.newNetwork(); // The target container - this could be anything - @Rule + @org.testcontainers.junit.jupiter.Container public GenericContainer redis = new GenericContainer<>("redis:6-alpine") .withExposedPorts(6379) .withNetwork(network) .withNetworkAliases("redis"); // Toxiproxy container, which will be used as a TCP proxy - @Rule + @org.testcontainers.junit.jupiter.Container public ToxiproxyContainer toxiproxy = new ToxiproxyContainer("ghcr.io/shopify/toxiproxy:2.5.0") .withNetwork(network); // } diff --git a/modules/trino/src/test/java/org/testcontainers/containers/TrinoContainerTest.java b/modules/trino/src/test/java/org/testcontainers/containers/TrinoContainerTest.java index 6ef733ca972..238cc76853f 100644 --- a/modules/trino/src/test/java/org/testcontainers/containers/TrinoContainerTest.java +++ b/modules/trino/src/test/java/org/testcontainers/containers/TrinoContainerTest.java @@ -1,6 +1,6 @@ package org.testcontainers.containers; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.TrinoTestImages; import java.sql.Connection; diff --git a/modules/trino/src/test/java/org/testcontainers/jdbc/trino/TrinoJDBCDriverTest.java b/modules/trino/src/test/java/org/testcontainers/jdbc/trino/TrinoJDBCDriverTest.java index 9ec98c2e6d7..092ac2c7232 100644 --- a/modules/trino/src/test/java/org/testcontainers/jdbc/trino/TrinoJDBCDriverTest.java +++ b/modules/trino/src/test/java/org/testcontainers/jdbc/trino/TrinoJDBCDriverTest.java @@ -1,16 +1,16 @@ package org.testcontainers.jdbc.trino; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.testcontainers.jdbc.AbstractJDBCDriverTest; import java.util.Arrays; import java.util.EnumSet; -@RunWith(Parameterized.class) +@ParameterizedClass +@MethodSource("data") public class TrinoJDBCDriverTest extends AbstractJDBCDriverTest { - @Parameterized.Parameters(name = "{index} - {0}") public static Iterable data() { return Arrays.asList( new Object[][] { // diff --git a/modules/typesense/src/test/java/org/testcontainers/typesense/TypesenseContainerTest.java b/modules/typesense/src/test/java/org/testcontainers/typesense/TypesenseContainerTest.java index 8f39a05dd33..c046b74623c 100644 --- a/modules/typesense/src/test/java/org/testcontainers/typesense/TypesenseContainerTest.java +++ b/modules/typesense/src/test/java/org/testcontainers/typesense/TypesenseContainerTest.java @@ -1,6 +1,6 @@ package org.testcontainers.typesense; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.typesense.api.Client; import org.typesense.api.Configuration; import org.typesense.resources.Node; diff --git a/modules/vault/src/test/java/org/testcontainers/vault/VaultClientTest.java b/modules/vault/src/test/java/org/testcontainers/vault/VaultClientTest.java index eebf73a5e62..98f3a56d482 100644 --- a/modules/vault/src/test/java/org/testcontainers/vault/VaultClientTest.java +++ b/modules/vault/src/test/java/org/testcontainers/vault/VaultClientTest.java @@ -4,7 +4,7 @@ import com.bettercloud.vault.VaultConfig; import com.bettercloud.vault.VaultException; import com.bettercloud.vault.response.LogicalResponse; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.HashMap; import java.util.Map; diff --git a/modules/vault/src/test/java/org/testcontainers/vault/VaultContainerTest.java b/modules/vault/src/test/java/org/testcontainers/vault/VaultContainerTest.java index fe578bfe83b..56b273fc93a 100644 --- a/modules/vault/src/test/java/org/testcontainers/vault/VaultContainerTest.java +++ b/modules/vault/src/test/java/org/testcontainers/vault/VaultContainerTest.java @@ -4,9 +4,10 @@ import com.bettercloud.vault.VaultConfig; import com.bettercloud.vault.response.LogicalResponse; import io.restassured.response.Response; -import org.junit.ClassRule; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.GenericContainer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import java.util.HashMap; import java.util.Map; @@ -15,15 +16,16 @@ import static org.assertj.core.api.Assertions.assertThat; /** - * This test shows the pattern to use the VaultContainer @ClassRule for a junit test. It also has tests that ensure + * This test shows the pattern to use the {@link VaultContainer} for a junit test. It also has tests that ensure * the secrets were added correctly by reading from Vault with the CLI, over HTTP and over Client Library. */ +@Testcontainers public class VaultContainerTest { private static final String VAULT_TOKEN = "my-root-token"; - @ClassRule // vaultContainer { + @Container public static VaultContainer vaultContainer = new VaultContainer<>("hashicorp/vault:1.13") .withVaultToken(VAULT_TOKEN) .withInitCommand( diff --git a/modules/weaviate/src/test/java/org/testcontainers/weaviate/WeaviateContainerTest.java b/modules/weaviate/src/test/java/org/testcontainers/weaviate/WeaviateContainerTest.java index 53096182839..35503f299e7 100644 --- a/modules/weaviate/src/test/java/org/testcontainers/weaviate/WeaviateContainerTest.java +++ b/modules/weaviate/src/test/java/org/testcontainers/weaviate/WeaviateContainerTest.java @@ -5,7 +5,7 @@ import io.weaviate.client.base.Result; import io.weaviate.client.v1.misc.model.Meta; import org.assertj.core.api.InstanceOfAssertFactories; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.Arrays; import java.util.HashMap; diff --git a/modules/yugabytedb/src/test/java/org/testcontainers/jdbc/yugabytedb/YugabyteDBYSQLJDBCDriverTest.java b/modules/yugabytedb/src/test/java/org/testcontainers/jdbc/yugabytedb/YugabyteDBYSQLJDBCDriverTest.java index a7ecab34aba..e919ad52d3f 100644 --- a/modules/yugabytedb/src/test/java/org/testcontainers/jdbc/yugabytedb/YugabyteDBYSQLJDBCDriverTest.java +++ b/modules/yugabytedb/src/test/java/org/testcontainers/jdbc/yugabytedb/YugabyteDBYSQLJDBCDriverTest.java @@ -1,7 +1,7 @@ package org.testcontainers.jdbc.yugabytedb; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import org.testcontainers.jdbc.AbstractJDBCDriverTest; import java.util.Arrays; @@ -10,10 +10,10 @@ /** * YugabyteDB YSQL API JDBC connectivity driver test class */ -@RunWith(Parameterized.class) +@ParameterizedClass +@MethodSource("data") public class YugabyteDBYSQLJDBCDriverTest extends AbstractJDBCDriverTest { - @Parameterized.Parameters(name = "{index} - {0}") public static Iterable data() { return Arrays.asList( new Object[][] { diff --git a/modules/yugabytedb/src/test/java/org/testcontainers/junit/yugabytedb/YugabyteDBYCQLTest.java b/modules/yugabytedb/src/test/java/org/testcontainers/junit/yugabytedb/YugabyteDBYCQLTest.java index fe4723b409f..6336ae8ecef 100644 --- a/modules/yugabytedb/src/test/java/org/testcontainers/junit/yugabytedb/YugabyteDBYCQLTest.java +++ b/modules/yugabytedb/src/test/java/org/testcontainers/junit/yugabytedb/YugabyteDBYCQLTest.java @@ -2,7 +2,7 @@ import com.datastax.oss.driver.api.core.CqlSession; import com.datastax.oss.driver.api.core.cql.ResultSet; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.YugabyteDBYCQLContainer; import org.testcontainers.utility.DockerImageName; diff --git a/modules/yugabytedb/src/test/java/org/testcontainers/junit/yugabytedb/YugabyteDBYSQLTest.java b/modules/yugabytedb/src/test/java/org/testcontainers/junit/yugabytedb/YugabyteDBYSQLTest.java index 94cfaa7f2e4..ae58bf78786 100644 --- a/modules/yugabytedb/src/test/java/org/testcontainers/junit/yugabytedb/YugabyteDBYSQLTest.java +++ b/modules/yugabytedb/src/test/java/org/testcontainers/junit/yugabytedb/YugabyteDBYSQLTest.java @@ -1,6 +1,6 @@ package org.testcontainers.junit.yugabytedb; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.YugabyteDBYSQLContainer; import org.testcontainers.db.AbstractContainerDatabaseTest; import org.testcontainers.utility.DockerImageName; diff --git a/smoke-test/turbo-mode/build.gradle b/smoke-test/turbo-mode/build.gradle index 8a47c80aeee..322e940a361 100644 --- a/smoke-test/turbo-mode/build.gradle +++ b/smoke-test/turbo-mode/build.gradle @@ -4,7 +4,7 @@ plugins { dependencies { testImplementation 'org.testcontainers:testcontainers' - testImplementation 'org.junit.jupiter:junit-jupiter:5.11.0' + testImplementation 'org.junit.jupiter:junit-jupiter:5.13.0' testImplementation 'ch.qos.logback:logback-classic:1.3.14' testImplementation 'org.assertj:assertj-core:3.26.3' }