package org.testcontainers.junit; import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; import org.junit.Rule; import org.junit.Test; import org.testcontainers.containers.PostgreSQLContainer; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import static org.rnorth.visibleassertions.VisibleAssertions.assertEquals; /** * @author richardnorth */ public class CustomizablePostgreSQLTest { private static final String DB_NAME = "foo"; private static final String USER = "bar"; private static final String PWD = "baz"; @Rule public PostgreSQLContainer postgres = new PostgreSQLContainer("postgres:latest") .withDatabaseName(DB_NAME) .withUsername(USER) .withPassword(PWD); @Test public void testSimple() throws SQLException { HikariConfig hikariConfig = new HikariConfig(); hikariConfig.setJdbcUrl("jdbc:postgresql://" + postgres.getContainerIpAddress() + ":" + postgres.getMappedPort(PostgreSQLContainer.POSTGRESQL_PORT) + "/" + DB_NAME); hikariConfig.setUsername(USER); hikariConfig.setPassword(PWD); HikariDataSource ds = new HikariDataSource(hikariConfig); Statement statement = ds.getConnection().createStatement(); statement.execute("SELECT 1"); ResultSet resultSet = statement.getResultSet(); resultSet.next(); int resultSetInt = resultSet.getInt(1); assertEquals("A basic SELECT query succeeds", 1, resultSetInt); } }