diff --git a/docs/modules/databases/clickhouse.md b/docs/modules/databases/clickhouse.md index b3494867edf..204e8434b90 100644 --- a/docs/modules/databases/clickhouse.md +++ b/docs/modules/databases/clickhouse.md @@ -1,5 +1,15 @@ # Clickhouse Module +Testcontainers module for [ClickHouse](https://hub.docker.com/r/clickhouse/clickhouse-server) + +## Usage example + +You can start a ClickHouse container instance from any Java application by using: + + +[Container definition](../../../modules/clickhouse/src/test/java/org/testcontainers/clickhouse/ClickHouseContainerTest.java) inside_block:container + + ## Adding this module to your project dependencies Add the following dependency to your `pom.xml`/`build.gradle` file: diff --git a/docs/modules/databases/cockroachdb.md b/docs/modules/databases/cockroachdb.md index 45e3f75b86c..ce25ab016d5 100644 --- a/docs/modules/databases/cockroachdb.md +++ b/docs/modules/databases/cockroachdb.md @@ -1,5 +1,15 @@ # CockroachDB Module +Testcontainers module for [CockroachDB](https://hub.docker.com/r/cockroachdb/cockroach) + +## Usage example + +You can start a CockroachDB container instance from any Java application by using: + + +[Container definition](../../../modules/cockroachdb/src/test/java/org/testcontainers/junit/cockroachdb/SimpleCockroachDBTest.java) inside_block:container + + See [Database containers](./index.md) for documentation and usage that is common to all relational database container types. ## Adding this module to your project dependencies diff --git a/docs/modules/databases/cratedb.md b/docs/modules/databases/cratedb.md index 74ec23dda00..520f476c178 100644 --- a/docs/modules/databases/cratedb.md +++ b/docs/modules/databases/cratedb.md @@ -1,5 +1,15 @@ # CrateDB Module +Testcontainers module for [CrateDB](https://hub.docker.com/_/crate) + +## Usage example + +You can start a CrateDB container instance from any Java application by using: + + +[Container definition](../../../modules/cratedb/src/test/java/org/testcontainers/junit/cratedb/SimpleCrateDBTest.java) inside_block:container + + See [Database containers](./index.md) for documentation and usage that is common to all relational database container types. ## Adding this module to your project dependencies diff --git a/docs/modules/databases/databend.md b/docs/modules/databases/databend.md index c399dc2bb51..3dae2740796 100644 --- a/docs/modules/databases/databend.md +++ b/docs/modules/databases/databend.md @@ -1,5 +1,15 @@ # Databend Module +Testcontainers module for [Databend](https://hub.docker.com/r/datafuselabs/databend) + +## Usage example + +You can start a Databend container instance from any Java application by using: + + +[Container definition](../../../modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java) inside_block:container + + ## Adding this module to your project dependencies Add the following dependency to your `pom.xml`/`build.gradle` file: diff --git a/docs/modules/databases/db2.md b/docs/modules/databases/db2.md index 945536cac05..4017cbf7408 100644 --- a/docs/modules/databases/db2.md +++ b/docs/modules/databases/db2.md @@ -1,34 +1,22 @@ # DB2 Module -!!! note - This module is INCUBATING. While it is ready for use and operational in the current version of Testcontainers, it is possible that it may receive breaking changes in the future. See [our contributing guidelines](/contributing/#incubating-modules) for more information on our incubating modules policy. - -See [Database containers](./index.md) for documentation and usage that is common to all relational database container types. +Testcontainers module for [DB2](https://hub.docker.com/r/ibmcom/db2) ## Usage example -Running DB2 as a stand-in for in a test: +You can start a DB2 container instance from any Java application by using: -```java -public class SomeTest { - - @ClassRule - public Db2Container db2 = new Db2Container() - .acceptLicense(); - - @Test - public void someTestMethod() { - String url = db2.getJdbcUrl(); - - ... create a connection and run test as normal - } -``` + +[Container definition](../../../modules/db2/src/test/java/org/testcontainers/junit/db2/SimpleDb2Test.java) inside_block:container + !!! warning "EULA Acceptance" Due to licencing restrictions you are required to accept an EULA for this container image. To indicate that you accept the DB2 image EULA, call the `acceptLicense()` method, or place a file at the root of the classpath named `container-license-acceptance.txt`, e.g. at `src/test/resources/container-license-acceptance.txt`. This file should contain the line: `ibmcom/db2:11.5.0.0a` (or, if you are overriding the docker image name/tag, update accordingly). Please see the [`ibmcom/db2` image documentation](https://hub.docker.com/r/ibmcom/db2) for a link to the EULA document. +See [Database containers](./index.md) for documentation and usage that is common to all relational database container types. + ## Adding this module to your project dependencies Add the following dependency to your `pom.xml`/`build.gradle` file: diff --git a/docs/modules/databases/mariadb.md b/docs/modules/databases/mariadb.md index 25367d629bd..48058d187f6 100644 --- a/docs/modules/databases/mariadb.md +++ b/docs/modules/databases/mariadb.md @@ -1,5 +1,15 @@ # MariaDB Module +Testcontainers module for [MariaDB](https://hub.docker.com/_/mariadb) + +## Usage example + +You can start a MySQL container instance from any Java application by using: + + +[Container definition](../../../modules/mariadb/src/test/java/org/testcontainers/junit/mariadb/SimpleMariaDBTest.java) inside_block:container + + See [Database containers](./index.md) for documentation and usage that is common to all relational database container types. ## MariaDB `root` user password diff --git a/docs/modules/databases/mssqlserver.md b/docs/modules/databases/mssqlserver.md index 9d0912f2563..1bc71def3b8 100644 --- a/docs/modules/databases/mssqlserver.md +++ b/docs/modules/databases/mssqlserver.md @@ -1,30 +1,22 @@ # MS SQL Server Module -See [Database containers](./index.md) for documentation and usage that is common to all relational database container types. +Testcontainers module for [MS SQL Server](https://mcr.microsoft.com/en-us/artifact/mar/mssql/server/) ## Usage example -Running MS SQL Server as a stand-in for in a test: - -```java -public class SomeTest { - - @Rule - public MSSQLServerContainer mssqlserver = new MSSQLServerContainer() - .acceptLicense(); - - @Test - public void someTestMethod() { - String url = mssqlserver.getJdbcUrl(); +You can start a MS SQL Server container instance from any Java application by using: - ... create a connection and run test as normal -``` + +[Container definition](../../../modules/mssqlserver/src/test/java/org/testcontainers/junit/mssqlserver/SimpleMSSQLServerTest.java) inside_block:container + !!! warning "EULA Acceptance" Due to licencing restrictions you are required to accept an EULA for this container image. To indicate that you accept the MS SQL Server image EULA, call the `acceptLicense()` method, or place a file at the root of the classpath named `container-license-acceptance.txt`, e.g. at `src/test/resources/container-license-acceptance.txt`. This file should contain the line: `mcr.microsoft.com/mssql/server:2017-CU12` (or, if you are overriding the docker image name/tag, update accordingly). Please see the [`microsoft-mssql-server` image documentation](https://hub.docker.com/_/microsoft-mssql-server#environment-variables) for a link to the EULA document. +See [Database containers](./index.md) for documentation and usage that is common to all relational database container types. + ## Adding this module to your project dependencies Add the following dependency to your `pom.xml`/`build.gradle` file: diff --git a/docs/modules/databases/mysql.md b/docs/modules/databases/mysql.md index 9d03d52b109..a6af2eef735 100644 --- a/docs/modules/databases/mysql.md +++ b/docs/modules/databases/mysql.md @@ -1,5 +1,15 @@ # MySQL Module +Testcontainers module for [MySQL](https://hub.docker.com/_/mysql) + +## Usage example + +You can start a MySQL container instance from any Java application by using: + + +[Container definition](../../../modules/mysql/src/test/java/org/testcontainers/junit/mysql/SimpleMySQLTest.java) inside_block:container + + See [Database containers](./index.md) for documentation and usage that is common to all relational database container types. ## Overriding MySQL my.cnf settings diff --git a/docs/modules/databases/oceanbase.md b/docs/modules/databases/oceanbase.md index b90a492a6e4..7715f0d90fc 100644 --- a/docs/modules/databases/oceanbase.md +++ b/docs/modules/databases/oceanbase.md @@ -1,5 +1,15 @@ # OceanBase Module +Testcontainers module for [OceanBase](https://hub.docker.com/r/oceanbase/oceanbase-ce) + +## Usage example + +You can start an OceanBase container instance from any Java application by using: + + +[Container definition](../../../modules/oceanbase/src/test/java/org/testcontainers/oceanbase/SimpleOceanBaseCETest.java) inside_block:container + + See [Database containers](./index.md) for documentation and usage that is common to all relational database container types. ## Adding this module to your project dependencies diff --git a/docs/modules/databases/oraclefree.md b/docs/modules/databases/oraclefree.md index c85d672f140..63e7f8391fd 100644 --- a/docs/modules/databases/oraclefree.md +++ b/docs/modules/databases/oraclefree.md @@ -1,14 +1,17 @@ # Oracle Database Free Module -See [Database containers](./index.md) for documentation and usage that is common to all relational database container types. +Testcontainers module for [Oracle Free](https://hub.docker.com/r/gvenzl/oracle-free) ## Usage example -You can use `OracleContainer` like any other JDBC container: +You can start an Oracle-Free container instance from any Java application by using: + -[Container creation](../../../modules/oracle-free/src/test/java/org/testcontainers/junit/oracle/SimpleOracleTest.java) inside_block:constructor +[Container creation](../../../modules/oracle-free/src/test/java/org/testcontainers/junit/oracle/SimpleOracleTest.java) inside_block:container +See [Database containers](./index.md) for documentation and usage that is common to all relational database container types. + ## Adding this module to your project dependencies Add the following dependency to your `pom.xml`/`build.gradle` file: diff --git a/docs/modules/databases/oraclexe.md b/docs/modules/databases/oraclexe.md index bfc06d9a106..fe6176a5bb1 100644 --- a/docs/modules/databases/oraclexe.md +++ b/docs/modules/databases/oraclexe.md @@ -1,14 +1,17 @@ # Oracle-XE Module -See [Database containers](./index.md) for documentation and usage that is common to all relational database container types. +Testcontainers module for [Oracle XE](https://hub.docker.com/r/gvenzl/oracle-xe) ## Usage example -You can use `OracleContainer` like any other JDBC container: +You can start an Oracle-XE container instance from any Java application by using: + -[Container creation](../../../modules/oracle-xe/src/test/java/org/testcontainers/junit/oracle/SimpleOracleTest.java) inside_block:constructor +[Container creation](../../../modules/oracle-xe/src/test/java/org/testcontainers/junit/oracle/SimpleOracleTest.java) inside_block:container +See [Database containers](./index.md) for documentation and usage that is common to all relational database container types. + ## Adding this module to your project dependencies Add the following dependency to your `pom.xml`/`build.gradle` file: diff --git a/docs/modules/databases/orientdb.md b/docs/modules/databases/orientdb.md index 57839cd99f0..40a26100ae1 100644 --- a/docs/modules/databases/orientdb.md +++ b/docs/modules/databases/orientdb.md @@ -1,46 +1,14 @@ # OrientDB Module -!!! note - This module is INCUBATING. While it is ready for use and operational in the current version of Testcontainers, it is possible that it may receive breaking changes in the future. See [our contributing guidelines](/contributing/#incubating-modules) for more information on our incubating modules policy. - - -This module helps running [OrientDB](https://orientdb.org/download) using Testcontainers. - -Note that it's based on the [official Docker image](https://hub.docker.com/_/orientdb/) provided by OrientDB. +Testcontainers module for [OrientDB](https://hub.docker.com/_/orientdb/) ## Usage example -Declare your Testcontainers instance as a `@ClassRule` or `@Rule` in a JUnit 4 test or as static or member attribute of a JUnit 5 test annotated with `@Container` as you would with other Testcontainers. -You can call `getDbUrl()` OrientDB container and build the `ODatabaseSession` by your own, but a more useful `getSession()` method is provided. -On the JVM you would most likely use the [Java driver](https://github.com/). - -The following example uses the JUnit 5 extension `@Testcontainers` and demonstrates both the usage of the Java Client: - -=== "JUnit 5 example" - ```java - @Testcontainers - public class ExampleTest { - - @Container - private static OrientDBContainer container = new OrientDBContainer(); - - @Test - void testDbCreation() { - - final ODatabaseSession session = container.getSession(); - - session.command("CREATE CLASS Person EXTENDS V"); - session.command("INSERT INTO Person set name='john'"); - session.command("INSERT INTO Person set name='jane'"); - - assertThat(session.query("SELECT FROM Person").stream()).hasSize(2); - } - - } - ``` - -You are not limited to Unit tests and can of course use an instance of the OrientDB Testcontainers implementation in vanilla Java code as well. +You can start an OrientDB container instance from any Java application by using: + +[Container creation](../../../modules/orientdb/src/test/java/org/testcontainers/containers/OrientDBContainerTest.java) inside_block:container + ## Adding this module to your project dependencies diff --git a/docs/modules/databases/postgres.md b/docs/modules/databases/postgres.md index d07e77937b9..e936205d4cb 100644 --- a/docs/modules/databases/postgres.md +++ b/docs/modules/databases/postgres.md @@ -1,5 +1,15 @@ # Postgres Module +Testcontainers module for [PostgresSQL](https://hub.docker.com/_/postgres) + +## Usage example + +You can start a PostgreSQL container instance from any Java application by using: + + +[Container creation](../../../modules/postgresql/src/test/java/org/testcontainers/junit/postgresql/SimplePostgreSQLTest.java) inside_block:container + + See [Database containers](./index.md) for documentation and usage that is common to all relational database container types. ## Compatible images diff --git a/docs/modules/databases/questdb.md b/docs/modules/databases/questdb.md index 8783dd4b757..f1a436fc26d 100644 --- a/docs/modules/databases/questdb.md +++ b/docs/modules/databases/questdb.md @@ -1,7 +1,14 @@ # QuestDB Module -Testcontainers module for [QuestDB](https://github.com/questdb/questdb). QuestDB is a high-performance, open-source SQL -database for applications in financial services, IoT, machine learning, DevOps and observability. +Testcontainers module for [QuestDB](https://hub.docker.com/r/questdb/questdb) + +## Usage example + +You can start a QuestDB container instance from any Java application by using: + + +[Container creation](../../../modules/questdb/src/test/java/org/testcontainers/junit/questdb/SimpleQuestDBTest.java) inside_block:container + See [Database containers](./index.md) for documentation and usage that is common to all relational database container types. diff --git a/docs/modules/databases/tidb.md b/docs/modules/databases/tidb.md index 01c6b4cfcd4..c203f3155bb 100644 --- a/docs/modules/databases/tidb.md +++ b/docs/modules/databases/tidb.md @@ -1,5 +1,15 @@ # TiDB Module +Testcontainers module for [TiDB](https://hub.docker.com/r/pingcap/tidb) + +## Usage example + +You can start a TiDB container instance from any Java application by using: + + +[Container creation](../../../modules/tidb/src/test/java/org/testcontainers/junit/tidb/SimpleTiDBTest.java) inside_block:container + + See [Database containers](./index.md) for documentation and usage that is common to all relational database container types. ## Adding this module to your project dependencies diff --git a/docs/modules/databases/timeplus.md b/docs/modules/databases/timeplus.md index 4f5cd4106a3..fd94da043ff 100644 --- a/docs/modules/databases/timeplus.md +++ b/docs/modules/databases/timeplus.md @@ -1,5 +1,15 @@ # Timeplus Module +Testcontainers module for [Timeplus](https://hub.docker.com/r/timeplus/timeplusd) + +## Usage example + +You can start a Timeplus container instance from any Java application by using: + + +[Container creation](../../../modules/timeplus/src/test/java/org/testcontainers/timeplus/TimeplusContainerTest.java) inside_block:container + + ## Adding this module to your project dependencies Add the following dependency to your `pom.xml`/`build.gradle` file: diff --git a/docs/modules/databases/trino.md b/docs/modules/databases/trino.md index b6aeddafb40..5ea9b2d8ab3 100644 --- a/docs/modules/databases/trino.md +++ b/docs/modules/databases/trino.md @@ -1,67 +1,16 @@ # Trino Module -!!! note - This module is INCUBATING. While it is ready for use and operational in the current version of Testcontainers, it is possible that it may receive breaking changes in the future. See [our contributing guidelines](/contributing/#incubating-modules) for more information on our incubating modules policy. - -See [Database containers](./index.md) for documentation and usage that is common to all database container types. +Testcontainers module for [Trino](https://hub.docker.com/r/trinodb/trino) ## Usage example -Running Trino as a stand-in for in a test: - -```java -public class SomeTest { - - @Rule - public TrinoContainer trino = new TrinoContainer(); - - @Test - public void someTestMethod() { - String url = trino.getJdbcUrl(); - - ... create a connection and run test as normal -``` +You can start a Trino container instance from any Java application by using: -Trino comes with several catalogs preconfigured. Most useful ones for testing are + +[Container creation](../../../modules/trino/src/test/java/org/testcontainers/containers/TrinoContainerTest.java) inside_block:container + -* `tpch` catalog using the [Trino TPCH Connector](https://trino.io/docs/current/connector/tpch.html). - This is a read-only catalog that defines standard TPCH schema, so is available for querying without a need - to create any tables. -* `memory` catalog using the [Trino Memory Connector](https://trino.io/docs/current/connector/memory.html). - This catalog can be used for creating schemas and tables and does not require any storage, as everything - is stored fully in-memory. - -Example test using the `tpch` and `memory` catalogs: - -```java -public class SomeTest { - @Rule - public TrinoContainer trino = new TrinoContainer(); - - @Test - public void queryMemoryAndTpchConnectors() throws SQLException { - try (Connection connection = trino.createConnection(); - Statement statement = connection.createStatement()) { - // Prepare data - statement.execute("CREATE TABLE memory.default.table_with_array AS SELECT 1 id, ARRAY[1, 42, 2, 42, 4, 42] my_array"); - - // Query Trino using newly created table and a builtin connector - try (ResultSet resultSet = statement.executeQuery("" + - "SELECT nationkey, element " + - "FROM tpch.tiny.nation " + - "JOIN memory.default.table_with_array twa ON nationkey = twa.id " + - "LEFT JOIN UNNEST(my_array) a(element) ON true " + - "ORDER BY element OFFSET 1 FETCH NEXT 3 ROWS WITH TIES ")) { - List actualElements = new ArrayList<>(); - while (resultSet.next()) { - actualElements.add(resultSet.getInt("element")); - } - Assert.assertEquals(Arrays.asList(2, 4, 42, 42, 42), actualElements); - } - } - } -} -``` +See [Database containers](./index.md) for documentation and usage that is common to all database container types. ## Adding this module to your project dependencies diff --git a/docs/modules/databases/yugabytedb.md b/docs/modules/databases/yugabytedb.md index 4ab3436b57c..3b7130a2958 100644 --- a/docs/modules/databases/yugabytedb.md +++ b/docs/modules/databases/yugabytedb.md @@ -1,11 +1,11 @@ # YugabyteDB Module -!!! note - This module is INCUBATING. While it is ready for use and operational in the current version of Testcontainers, it is possible that it may receive breaking changes in the future. See [our contributing guidelines](/contributing/#incubating-modules) for more information on our incubating modules policy. +Testcontainers module for [YugabyteDB](https://hub.docker.com/r/yugabytedb/yugabyte) See [Database containers](./index.md) for documentation and usage that is common to all database container types. -YugabyteDB supports two APIs. +YugabyteDB supports two APIs. + - Yugabyte Structured Query Language [YSQL](https://docs.yugabyte.com/latest/api/ysql/) is a fully-relational API that is built by the PostgreSQL code - Yugabyte Cloud Query Language [YCQL](https://docs.yugabyte.com/latest/api/ycql/) is a semi-relational SQL API that has its roots in the Cassandra Query Language @@ -17,12 +17,6 @@ YugabyteDB supports two APIs. [Creating a YSQL container](../../../modules/yugabytedb/src/test/java/org/testcontainers/junit/yugabytedb/YugabyteDBYSQLTest.java) inside_block:creatingYSQLContainer - - -[Starting a YSQL container](../../../modules/yugabytedb/src/test/java/org/testcontainers/junit/yugabytedb/YugabyteDBYSQLTest.java) inside_block:startingYSQLContainer - - - ### YCQL API @@ -30,11 +24,6 @@ YugabyteDB supports two APIs. - -[Starting a YCQL container](../../../modules/yugabytedb/src/test/java/org/testcontainers/junit/yugabytedb/YugabyteDBYCQLTest.java) inside_block:startingYCQLContainer - - - ## Adding this module to your project dependencies Add the following dependency to your `pom.xml`/`build.gradle` file: 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 0e7a3d1c119..ff20917e009 100644 --- a/modules/clickhouse/src/test/java/org/testcontainers/clickhouse/ClickHouseContainerTest.java +++ b/modules/clickhouse/src/test/java/org/testcontainers/clickhouse/ClickHouseContainerTest.java @@ -20,7 +20,10 @@ public class ClickHouseContainerTest extends AbstractContainerDatabaseTest { @Test public void testSimple() throws SQLException { - try (ClickHouseContainer clickhouse = new ClickHouseContainer("clickhouse/clickhouse-server:21.11-alpine")) { + try ( // container { + ClickHouseContainer clickhouse = new ClickHouseContainer("clickhouse/clickhouse-server:21.11-alpine") + // } + ) { clickhouse.start(); ResultSet resultSet = performQuery(clickhouse, "SELECT 1"); 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..12c25738e45 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 @@ -22,7 +22,10 @@ public class SimpleCockroachDBTest extends AbstractContainerDatabaseTest { @Test public void testSimple() throws SQLException { - try (CockroachContainer cockroach = new CockroachContainer(CockroachDBTestImages.COCKROACHDB_IMAGE)) { + try ( // container { + CockroachContainer cockroach = new CockroachContainer("cockroachdb/cockroach:v22.2.3") + // } + ) { cockroach.start(); ResultSet resultSet = performQuery(cockroach, "SELECT 1"); 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..40f2c667711 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 @@ -20,7 +20,10 @@ public class SimpleCrateDBTest extends AbstractContainerDatabaseTest { @Test public void testSimple() throws SQLException { - try (CrateDBContainer cratedb = new CrateDBContainer(CrateDBTestImages.CRATEDB_TEST_IMAGE)) { + try ( // container { + CrateDBContainer cratedb = new CrateDBContainer("crate:5.2.5") + // } + ) { cratedb.start(); ResultSet resultSet = performQuery(cratedb, "SELECT 1"); 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..66f3504e725 100644 --- a/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java +++ b/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java @@ -12,7 +12,10 @@ public class DatabendContainerTest extends AbstractContainerDatabaseTest { @Test public void testSimple() throws SQLException { - try (DatabendContainer databend = new DatabendContainer("datafuselabs/databend:v1.2.615")) { + try ( // container { + DatabendContainer databend = new DatabendContainer("datafuselabs/databend:v1.2.615") + // } + ) { databend.start(); ResultSet resultSet = performQuery(databend, "SELECT 1"); 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..5f8763b1e19 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 @@ -14,7 +14,10 @@ public class SimpleDb2Test extends AbstractContainerDatabaseTest { @Test public void testSimple() throws SQLException { - try (Db2Container db2 = new Db2Container(Db2TestImages.DB2_IMAGE).acceptLicense()) { + try ( // container { + Db2Container db2 = new Db2Container("ibmcom/db2:11.5.0.0a").acceptLicense() + // } + ) { db2.start(); ResultSet resultSet = performQuery(db2, "SELECT 1 FROM SYSIBM.SYSDUMMY1"); 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..2651615928c 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 @@ -25,7 +25,10 @@ public class SimpleMariaDBTest extends AbstractContainerDatabaseTest { @Test public void testSimple() throws SQLException { - try (MariaDBContainer mariadb = new MariaDBContainer<>(MariaDBTestImages.MARIADB_IMAGE)) { + try ( // container { + MariaDBContainer mariadb = new MariaDBContainer<>("mariadb:10.3.39") + // } + ) { mariadb.start(); ResultSet resultSet = performQuery(mariadb, "SELECT 1"); 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..943eff30a53 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 @@ -17,8 +17,12 @@ public class SimpleMSSQLServerTest extends AbstractContainerDatabaseTest { @Test public void testSimple() throws SQLException { - try ( - MSSQLServerContainer mssqlServer = new MSSQLServerContainer<>(MSSQLServerTestImages.MSSQL_SERVER_IMAGE) + try ( // container { + MSSQLServerContainer mssqlServer = new MSSQLServerContainer<>( + "mcr.microsoft.com/mssql/server:2022-CU20-ubuntu-22.04" + ) + .acceptLicense() + // } ) { mssqlServer.start(); ResultSet resultSet = performQuery(mssqlServer, "SELECT 1"); 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..085fdf074cb 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 @@ -36,9 +36,9 @@ public class SimpleMySQLTest extends AbstractContainerDatabaseTest { @Test public void testSimple() throws SQLException { - try ( - MySQLContainer mysql = new MySQLContainer<>(MySQLTestImages.MYSQL_80_IMAGE) - .withLogConsumer(new Slf4jLogConsumer(logger)) + try ( // container { + MySQLContainer mysql = new MySQLContainer<>("mysql:8.0.36") + // } ) { mysql.start(); 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..46619f328be 100644 --- a/modules/oceanbase/src/test/java/org/testcontainers/oceanbase/SimpleOceanBaseCETest.java +++ b/modules/oceanbase/src/test/java/org/testcontainers/oceanbase/SimpleOceanBaseCETest.java @@ -1,9 +1,6 @@ package org.testcontainers.oceanbase; import org.junit.Test; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.testcontainers.containers.output.Slf4jLogConsumer; import org.testcontainers.db.AbstractContainerDatabaseTest; import java.sql.ResultSet; @@ -13,33 +10,31 @@ public class SimpleOceanBaseCETest extends AbstractContainerDatabaseTest { - private static final Logger logger = LoggerFactory.getLogger(SimpleOceanBaseCETest.class); - - private final OceanBaseCEContainerProvider containerProvider = new OceanBaseCEContainerProvider(); - - @SuppressWarnings("resource") - private OceanBaseCEContainer testContainer() { - return ((OceanBaseCEContainer) containerProvider.newInstance()).withLogConsumer(new Slf4jLogConsumer(logger)); - } + private static final String IMAGE = "oceanbase/oceanbase-ce:4.2.1.8-108000022024072217"; @Test public void testSimple() throws SQLException { - try (OceanBaseCEContainer container = testContainer()) { - container.start(); - - ResultSet resultSet = performQuery(container, "SELECT 1"); + try ( // container { + OceanBaseCEContainer oceanbase = new OceanBaseCEContainer( + "oceanbase/oceanbase-ce:4.2.1.8-108000022024072217" + ) + // } + ) { + oceanbase.start(); + + ResultSet resultSet = performQuery(oceanbase, "SELECT 1"); int resultSetInt = resultSet.getInt(1); assertThat(resultSetInt).as("A basic SELECT query succeeds").isEqualTo(1); - assertHasCorrectExposedAndLivenessCheckPorts(container); + assertHasCorrectExposedAndLivenessCheckPorts(oceanbase); } } @Test public void testExplicitInitScript() throws SQLException { - try (OceanBaseCEContainer container = testContainer().withInitScript("init.sql")) { - container.start(); + try (OceanBaseCEContainer oceanbase = new OceanBaseCEContainer(IMAGE).withInitScript("init.sql")) { + oceanbase.start(); - ResultSet resultSet = performQuery(container, "SELECT foo FROM bar"); + ResultSet resultSet = performQuery(oceanbase, "SELECT foo FROM bar"); String firstColumnValue = resultSet.getString(1); assertThat(firstColumnValue).as("Value from init script should equal real value").isEqualTo("hello world"); } @@ -47,21 +42,21 @@ public void testExplicitInitScript() throws SQLException { @Test public void testWithAdditionalUrlParamInJdbcUrl() { - try (OceanBaseCEContainer container = testContainer().withUrlParam("useSSL", "false")) { - container.start(); + try (OceanBaseCEContainer oceanbase = new OceanBaseCEContainer(IMAGE).withUrlParam("useSSL", "false")) { + oceanbase.start(); - String jdbcUrl = container.getJdbcUrl(); + String jdbcUrl = oceanbase.getJdbcUrl(); assertThat(jdbcUrl).contains("?"); assertThat(jdbcUrl).contains("useSSL=false"); } } - private void assertHasCorrectExposedAndLivenessCheckPorts(OceanBaseCEContainer container) { + private void assertHasCorrectExposedAndLivenessCheckPorts(OceanBaseCEContainer oceanbase) { int sqlPort = 2881; int rpcPort = 2882; - assertThat(container.getExposedPorts()).containsExactlyInAnyOrder(sqlPort, rpcPort); - assertThat(container.getLivenessCheckPortNumbers()) - .containsExactlyInAnyOrder(container.getMappedPort(sqlPort), container.getMappedPort(rpcPort)); + assertThat(oceanbase.getExposedPorts()).containsExactlyInAnyOrder(sqlPort, rpcPort); + assertThat(oceanbase.getLivenessCheckPortNumbers()) + .containsExactlyInAnyOrder(oceanbase.getMappedPort(sqlPort), oceanbase.getMappedPort(rpcPort)); } } 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..a9c3bce593a 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 @@ -13,7 +13,7 @@ public class SimpleOracleTest extends AbstractContainerDatabaseTest { - public static final DockerImageName ORACLE_DOCKER_IMAGE_NAME = DockerImageName.parse( + private static final DockerImageName ORACLE_DOCKER_IMAGE_NAME = DockerImageName.parse( "gvenzl/oracle-free:slim-faststart" ); @@ -33,7 +33,10 @@ private void runTest(OracleContainer container, String databaseName, String user @Test public void testDefaultSettings() throws SQLException { - try (OracleContainer oracle = new OracleContainer(ORACLE_DOCKER_IMAGE_NAME)) { + try ( // container { + OracleContainer oracle = new OracleContainer("gvenzl/oracle-free:slim-faststart") + // } + ) { runTest(oracle, "freepdb1", "test", "test"); // Match against the last '/' @@ -52,12 +55,10 @@ public void testPluggableDatabase() throws SQLException { @Test public void testPluggableDatabaseAndCustomUser() throws SQLException { try ( - // constructor { OracleContainer oracle = new OracleContainer("gvenzl/oracle-free:slim-faststart") .withDatabaseName("testDB") .withUsername("testUser") .withPassword("testPassword") - // } ) { runTest(oracle, "testDB", "testUser", "testPassword"); } 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..eb63442c06e 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 @@ -33,7 +33,10 @@ private void runTest(OracleContainer container, String databaseName, String user @Test public void testDefaultSettings() throws SQLException { - try (OracleContainer oracle = new OracleContainer(ORACLE_DOCKER_IMAGE_NAME);) { + try ( // container { + OracleContainer oracle = new OracleContainer("gvenzl/oracle-xe:21-slim-faststart") + // } + ) { runTest(oracle, "xepdb1", "test", "test"); // Match against the last '/' @@ -52,12 +55,10 @@ public void testPluggableDatabase() throws SQLException { @Test public void testPluggableDatabaseAndCustomUser() throws SQLException { try ( - // constructor { OracleContainer oracle = new OracleContainer("gvenzl/oracle-xe:21-slim-faststart") .withDatabaseName("testDB") .withUsername("testUser") .withPassword("testPassword") - // } ) { runTest(oracle, "testDB", "testUser", "testPassword"); } 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..ca520983e71 100644 --- a/modules/orientdb/src/test/java/org/testcontainers/containers/OrientDBContainerTest.java +++ b/modules/orientdb/src/test/java/org/testcontainers/containers/OrientDBContainerTest.java @@ -13,11 +13,14 @@ public class OrientDBContainerTest { @Test public void shouldReturnTheSameSession() { - try (OrientDBContainer container = new OrientDBContainer(ORIENTDB_IMAGE)) { - container.start(); + try ( // container { + OrientDBContainer orientdb = new OrientDBContainer("orientdb:3.2.0-tp3") + // } + ) { + orientdb.start(); - final ODatabaseSession session = container.getSession(); - final ODatabaseSession session2 = container.getSession(); + final ODatabaseSession session = orientdb.getSession(); + final ODatabaseSession session2 = orientdb.getSession(); assertThat(session).isSameAs(session2); } @@ -25,10 +28,10 @@ public void shouldReturnTheSameSession() { @Test public void shouldInitializeWithCommands() { - try (OrientDBContainer container = new OrientDBContainer(ORIENTDB_IMAGE)) { - container.start(); + try (OrientDBContainer orientdb = new OrientDBContainer(ORIENTDB_IMAGE)) { + orientdb.start(); - final ODatabaseSession session = container.getSession(); + final ODatabaseSession session = orientdb.getSession(); session.command("CREATE CLASS Person EXTENDS V"); session.command("INSERT INTO Person set name='john'"); @@ -41,15 +44,15 @@ public void shouldInitializeWithCommands() { @Test public void shouldQueryWithGremlin() { try ( - OrientDBContainer container = new OrientDBContainer(ORIENTDB_IMAGE) + OrientDBContainer orientdb = new OrientDBContainer(ORIENTDB_IMAGE) .withCopyFileToContainer( MountableFile.forClasspathResource("orientdb-server-config.xml"), "/orientdb/config/orientdb-server-config.xml" ) ) { - container.start(); + orientdb.start(); - final ODatabaseSession session = container.getSession("admin", "admin"); + final ODatabaseSession session = orientdb.getSession("admin", "admin"); session.command("CREATE CLASS Person EXTENDS V"); session.command("INSERT INTO Person set name='john'"); @@ -62,16 +65,16 @@ public void shouldQueryWithGremlin() { @Test public void shouldInitializeDatabaseFromScript() { try ( - OrientDBContainer container = new OrientDBContainer(ORIENTDB_IMAGE) + OrientDBContainer orientdb = new OrientDBContainer(ORIENTDB_IMAGE) .withScriptPath("initscript.osql") .withDatabaseName("persons") ) { - container.start(); + orientdb.start(); - assertThat(container.getDbUrl()) - .isEqualTo("remote:" + container.getHost() + ":" + container.getMappedPort(2424) + "/persons"); + assertThat(orientdb.getDbUrl()) + .isEqualTo("remote:" + orientdb.getHost() + ":" + orientdb.getMappedPort(2424) + "/persons"); - final ODatabaseSession session = container.getSession(); + final ODatabaseSession session = orientdb.getSession(); assertThat(session.query("SELECT FROM Person").stream()).hasSize(4); } 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..53585fec327 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 @@ -21,7 +21,10 @@ public class SimplePostgreSQLTest extends AbstractContainerDatabaseTest { @Test public void testSimple() throws SQLException { - try (PostgreSQLContainer postgres = new PostgreSQLContainer<>(PostgreSQLTestImages.POSTGRES_TEST_IMAGE)) { + try ( // container { + PostgreSQLContainer postgres = new PostgreSQLContainer<>("postgres:9.6.12") + // } + ) { postgres.start(); ResultSet resultSet = performQuery(postgres, "SELECT 1"); 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 16198740c0e..f91f17f14b4 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 @@ -26,7 +26,10 @@ public class SimpleQuestDBTest extends AbstractContainerDatabaseTest { @Test public void testSimple() throws SQLException { - try (QuestDBContainer questDB = new QuestDBContainer(QuestDBTestImages.QUESTDB_IMAGE)) { + try ( // container { + QuestDBContainer questDB = new QuestDBContainer("questdb/questdb:6.5.3") + // } + ) { questDB.start(); ResultSet resultSet = performQuery(questDB, questDB.getTestQueryString()); 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..c010e4298fe 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 @@ -14,7 +14,10 @@ public class SimpleTiDBTest extends AbstractContainerDatabaseTest { @Test public void testSimple() throws SQLException { - try (TiDBContainer tidb = new TiDBContainer(TiDBTestImages.TIDB_IMAGE)) { + try ( // container { + TiDBContainer tidb = new TiDBContainer("pingcap/tidb:v6.1.0") + // } + ) { tidb.start(); ResultSet resultSet = performQuery(tidb, "SELECT 1"); 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..5e00f945555 100644 --- a/modules/timeplus/src/test/java/org/testcontainers/timeplus/TimeplusContainerTest.java +++ b/modules/timeplus/src/test/java/org/testcontainers/timeplus/TimeplusContainerTest.java @@ -13,7 +13,10 @@ public class TimeplusContainerTest extends AbstractContainerDatabaseTest { @Test public void testSimple() throws SQLException { - try (TimeplusContainer timeplus = new TimeplusContainer(TimeplusImages.TIMEPLUS_IMAGE)) { + try ( // container { + TimeplusContainer timeplus = new TimeplusContainer("timeplus/timeplusd:2.3.21") + // } + ) { timeplus.start(); ResultSet resultSet = performQuery(timeplus, "SELECT 1"); 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..ea25f39dbef 100644 --- a/modules/trino/src/test/java/org/testcontainers/containers/TrinoContainerTest.java +++ b/modules/trino/src/test/java/org/testcontainers/containers/TrinoContainerTest.java @@ -13,7 +13,10 @@ public class TrinoContainerTest { @Test public void testSimple() throws Exception { - try (TrinoContainer trino = new TrinoContainer(TrinoTestImages.TRINO_TEST_IMAGE)) { + try ( // container { + TrinoContainer trino = new TrinoContainer("trinodb/trino:352") + // } + ) { trino.start(); try ( Connection connection = trino.createConnection(); 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..bf8ec2be1ea 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 @@ -30,9 +30,7 @@ public void testSmoke() { .withPassword("cassandra") // } ) { - // startingYCQLContainer { ycqlContainer.start(); - // } assertThat(performQuery(ycqlContainer, "SELECT release_version FROM system.local").wasApplied()) .as("A sample test query succeeds") .isTrue(); 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..47a36f4f784 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 @@ -27,9 +27,7 @@ public void testSmoke() throws SQLException { ) // } ) { - // startingYSQLContainer { ysqlContainer.start(); - // } assertThat(performQuery(ysqlContainer, "SELECT 1").getInt(1)) .as("A sample test query succeeds") .isEqualTo(1);