diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 31553ebfff1..6137bf623e3 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,6 +1,8 @@ +[Setup the container](../../modules/k6/src/test/java/org/testcontainers/k6/K6ContainerTests.java) inside_block:standard_k6 + + +The test above uses a simple k6 script, `test.js`, with command line options and an injected script variable. + +Once the container is started, you can wait for the test results to be collected: + + +[Wait for test results](../../modules/k6/src/test/java/org/testcontainers/k6/K6ContainerTests.java) inside_block:wait + Create a simple k6 test script to be executed as part of your tests: -[Setup the container](../../modules/k6/src/test/java/org/testcontainers/k6/K6ContainerTests.java) inside_block:standard_k6 [Content of `scripts/test.js`](../../modules/k6/src/test/resources/scripts/test.js) inside_block:access_script_vars diff --git a/modules/activemq/src/main/java/org/testcontainers/activemq/ActiveMQContainer.java b/modules/activemq/src/main/java/org/testcontainers/activemq/ActiveMQContainer.java index 14814d95da9..9313efc55d6 100644 --- a/modules/activemq/src/main/java/org/testcontainers/activemq/ActiveMQContainer.java +++ b/modules/activemq/src/main/java/org/testcontainers/activemq/ActiveMQContainer.java @@ -21,7 +21,11 @@ */ public class ActiveMQContainer extends GenericContainer { - private static final DockerImageName DEFAULT_IMAGE = DockerImageName.parse("apache/activemq-classic"); + private static final DockerImageName APACHE_ACTIVEMQ_CLASSIC_IMAGE = DockerImageName.parse( + "apache/activemq-classic" + ); + + private static final DockerImageName DEFAULT_IMAGE = DockerImageName.parse("apache/activemq"); private static final int WEB_CONSOLE_PORT = 8161; @@ -45,7 +49,7 @@ public ActiveMQContainer(String image) { public ActiveMQContainer(DockerImageName dockerImageName) { super(dockerImageName); - dockerImageName.assertCompatibleWith(DEFAULT_IMAGE); + dockerImageName.assertCompatibleWith(DEFAULT_IMAGE, APACHE_ACTIVEMQ_CLASSIC_IMAGE); withExposedPorts(WEB_CONSOLE_PORT, TCP_PORT, AMQP_PORT, STOMP_PORT, MQTT_PORT, WS_PORT); waitingFor(Wait.forLogMessage(".*Apache ActiveMQ.*started.*", 1).withStartupTimeout(Duration.ofMinutes(1))); 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 564ee5382e7..cb66ebba864 100644 --- a/modules/activemq/src/test/java/org/testcontainers/activemq/ActiveMQContainerTest.java +++ b/modules/activemq/src/test/java/org/testcontainers/activemq/ActiveMQContainerTest.java @@ -10,6 +10,8 @@ import lombok.SneakyThrows; import org.apache.activemq.ActiveMQConnectionFactory; import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; import static org.assertj.core.api.Assertions.assertThat; @@ -18,7 +20,7 @@ class ActiveMQContainerTest { @Test void test() { try ( // container { - ActiveMQContainer activemq = new ActiveMQContainer("apache/activemq-classic:5.18.3") + ActiveMQContainer activemq = new ActiveMQContainer("apache/activemq:5.18.7") // } ) { activemq.start(); @@ -29,11 +31,20 @@ void test() { } } + @ParameterizedTest + @ValueSource(strings = { "apache/activemq-classic:5.18.7", "apache/activemq:5.18.7" }) + void compatibility(String image) { + try (ActiveMQContainer activemq = new ActiveMQContainer(image)) { + activemq.start(); + assertFunctionality(activemq, false); + } + } + @Test void customCredentials() { try ( // settingCredentials { - ActiveMQContainer activemq = new ActiveMQContainer("apache/activemq-classic:5.18.3") + ActiveMQContainer activemq = new ActiveMQContainer("apache/activemq:5.18.7") .withUser("testcontainers") .withPassword("testcontainers") // } diff --git a/modules/azure/build.gradle b/modules/azure/build.gradle index 681a6dc47e6..796f500410b 100644 --- a/modules/azure/build.gradle +++ b/modules/azure/build.gradle @@ -15,3 +15,7 @@ dependencies { testImplementation 'com.azure:azure-messaging-servicebus' testImplementation 'com.microsoft.sqlserver:mssql-jdbc:13.3.0.jre8-preview' } + +tasks.japicmp { + methodExcludes = ["org.testcontainers.azure.ServiceBusEmulatorContainer#withMsSqlServerContainer(org.testcontainers.containers.MSSQLServerContainer)"] +} diff --git a/modules/azure/src/main/java/org/testcontainers/azure/ServiceBusEmulatorContainer.java b/modules/azure/src/main/java/org/testcontainers/azure/ServiceBusEmulatorContainer.java index fd055a0d39b..4557b6acb6a 100644 --- a/modules/azure/src/main/java/org/testcontainers/azure/ServiceBusEmulatorContainer.java +++ b/modules/azure/src/main/java/org/testcontainers/azure/ServiceBusEmulatorContainer.java @@ -1,9 +1,9 @@ package org.testcontainers.azure; import org.testcontainers.containers.GenericContainer; -import org.testcontainers.containers.MSSQLServerContainer; import org.testcontainers.containers.wait.strategy.Wait; import org.testcontainers.images.builder.Transferable; +import org.testcontainers.mssqlserver.MSSQLServerContainer; import org.testcontainers.utility.DockerImageName; import org.testcontainers.utility.LicenseAcceptance; @@ -25,7 +25,7 @@ public class ServiceBusEmulatorContainer extends GenericContainer msSqlServerContainer; + private MSSQLServerContainer msSqlServerContainer; /** * @param dockerImageName The specified docker image name to run @@ -51,7 +51,7 @@ public ServiceBusEmulatorContainer(final DockerImageName dockerImageName) { * @param msSqlServerContainer The MS SQL Server container used by Service Bus as a dependency * @return this */ - public ServiceBusEmulatorContainer withMsSqlServerContainer(final MSSQLServerContainer msSqlServerContainer) { + public ServiceBusEmulatorContainer withMsSqlServerContainer(final MSSQLServerContainer msSqlServerContainer) { dependsOn(msSqlServerContainer); this.msSqlServerContainer = msSqlServerContainer; return this; 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 6bf6ac80fae..83cd633c5a9 100644 --- a/modules/azure/src/test/java/org/testcontainers/azure/ServiceBusEmulatorContainerTest.java +++ b/modules/azure/src/test/java/org/testcontainers/azure/ServiceBusEmulatorContainerTest.java @@ -10,8 +10,8 @@ import com.github.dockerjava.api.model.Capability; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; -import org.testcontainers.containers.MSSQLServerContainer; import org.testcontainers.containers.Network; +import org.testcontainers.mssqlserver.MSSQLServerContainer; import org.testcontainers.utility.MountableFile; import java.util.List; @@ -31,7 +31,7 @@ void testWithClient() { Network network = Network.newNetwork(); // } // sqlContainer { - MSSQLServerContainer mssqlServerContainer = new MSSQLServerContainer<>( + MSSQLServerContainer mssqlServerContainer = new MSSQLServerContainer( "mcr.microsoft.com/mssql/server:2022-CU14-ubuntu-22.04" ) .acceptLicense() diff --git a/modules/cockroachdb/src/test/java/org/testcontainers/CockroachDBTestImages.java b/modules/cockroachdb/src/test/java/org/testcontainers/CockroachDBTestImages.java index a410f77e8c8..0e977cfd065 100644 --- a/modules/cockroachdb/src/test/java/org/testcontainers/CockroachDBTestImages.java +++ b/modules/cockroachdb/src/test/java/org/testcontainers/CockroachDBTestImages.java @@ -4,12 +4,4 @@ public interface CockroachDBTestImages { DockerImageName COCKROACHDB_IMAGE = DockerImageName.parse("cockroachdb/cockroach:v22.2.3"); - - DockerImageName FIRST_COCKROACHDB_IMAGE_WITH_ENV_VARS_SUPPORT = DockerImageName.parse( - "cockroachdb/cockroach:v22.1.0" - ); - - DockerImageName COCKROACHDB_IMAGE_WITH_ENV_VARS_UNSUPPORTED = DockerImageName.parse( - "cockroachdb/cockroach:v21.2.17" - ); } diff --git a/modules/cockroachdb/src/test/java/org/testcontainers/cockroachdb/CockroachContainerTest.java b/modules/cockroachdb/src/test/java/org/testcontainers/cockroachdb/CockroachContainerTest.java index 3aba3d2eefd..2f4710eae35 100644 --- a/modules/cockroachdb/src/test/java/org/testcontainers/cockroachdb/CockroachContainerTest.java +++ b/modules/cockroachdb/src/test/java/org/testcontainers/cockroachdb/CockroachContainerTest.java @@ -11,7 +11,6 @@ import java.util.logging.LogManager; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.assertThatThrownBy; class CockroachContainerTest extends AbstractContainerDatabaseTest { static { @@ -22,7 +21,7 @@ class CockroachContainerTest extends AbstractContainerDatabaseTest { @Test void testSimple() throws SQLException { try ( // container { - CockroachContainer cockroach = new CockroachContainer("cockroachdb/cockroach:v22.2.3") + CockroachContainer cockroach = new CockroachContainer("cockroachdb/cockroach:v26.1.1") // } ) { cockroach.start(); @@ -71,9 +70,7 @@ void testWithAdditionalUrlParamInJdbcUrl() { @Test void testWithUsernamePasswordDatabase() throws SQLException { try ( - CockroachContainer cockroach = new CockroachContainer( - CockroachDBTestImages.FIRST_COCKROACHDB_IMAGE_WITH_ENV_VARS_SUPPORT - ) + CockroachContainer cockroach = new CockroachContainer(CockroachDBTestImages.COCKROACHDB_IMAGE) .withUsername("test_user") .withPassword("test_password") .withDatabaseName("test_database") @@ -90,25 +87,6 @@ void testWithUsernamePasswordDatabase() throws SQLException { } } - @Test - void testAnExceptionIsThrownWhenImageDoesNotSupportEnvVars() { - CockroachContainer cockroachContainer = new CockroachContainer( - CockroachDBTestImages.COCKROACHDB_IMAGE_WITH_ENV_VARS_UNSUPPORTED - ); - - assertThatThrownBy(() -> cockroachContainer.withUsername("test_user")) - .isInstanceOf(UnsupportedOperationException.class) - .withFailMessage("Setting a username in not supported in the versions below 22.1.0"); - - assertThatThrownBy(() -> cockroachContainer.withPassword("test_password")) - .isInstanceOf(UnsupportedOperationException.class) - .withFailMessage("Setting a password in not supported in the versions below 22.1.0"); - - assertThatThrownBy(() -> cockroachContainer.withDatabaseName("test_database")) - .isInstanceOf(UnsupportedOperationException.class) - .withFailMessage("Setting a databaseName in not supported in the versions below 22.1.0"); - } - @Test void testInitializationScript() throws SQLException { String sql = 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 dc4915aac3e..097aeef005b 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 @@ -10,7 +10,7 @@ class CockroachDBJDBCDriverTest extends AbstractJDBCDriverTest { public static Iterable data() { return Arrays.asList( new Object[][] { // - { "jdbc:tc:cockroach:v21.2.17://hostname/databasename", EnumSet.noneOf(Options.class) }, + { "jdbc:tc:cockroach:v22.2.3://hostname/databasename", EnumSet.noneOf(Options.class) }, } ); } 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 255cb376b4f..43b390c4db4 100644 --- a/modules/k6/src/test/java/org/testcontainers/k6/K6ContainerTests.java +++ b/modules/k6/src/test/java/org/testcontainers/k6/K6ContainerTests.java @@ -23,6 +23,7 @@ void k6StandardTest() throws Exception { ) { container.start(); + // wait { WaitingConsumer consumer = new WaitingConsumer(); container.followOutput(consumer); @@ -34,6 +35,7 @@ void k6StandardTest() throws Exception { 3, TimeUnit.SECONDS ); + // } assertThat(container.getLogs()).contains("k6 tests are cool!"); }