@Override public JdbcDatabaseContainer newInstance(String tag) { return new PostgreSQLContainer(DEFAULT_IMAGE + ":" + tag); } }
@Override public String getJdbcUrl() { return "jdbc:postgresql://" + getContainerIpAddress() + ":" + getMappedPort(POSTGRESQL_PORT) + "/" + databaseName; }
@Override protected void configure() { addExposedPort(POSTGRESQL_PORT); addEnv("POSTGRES_DB", databaseName); addEnv("POSTGRES_USER", username); addEnv("POSTGRES_PASSWORD", password); setCommand("postgres"); }
@Test public void testExplicitInitScript() throws SQLException { try (PostgreSQLContainer postgres = new PostgreSQLContainer<>() .withInitScript("somepath/init_postgresql.sql")) { postgres.start(); ResultSet resultSet = performQuery(postgres, "SELECT foo FROM bar"); String firstColumnValue = resultSet.getString(1); assertEquals("Value from init script should equal real value", "hello world", firstColumnValue); } }
@Test public void testSimple() throws SQLException { try (PostgreSQLContainer postgres = new PostgreSQLContainer<>()) { postgres.start(); ResultSet resultSet = performQuery(postgres, "SELECT 1"); int resultSetInt = resultSet.getInt(1); assertEquals("A basic SELECT query succeeds", 1, resultSetInt); } }
@Override public SELF withDatabaseName(final String databaseName) { this.databaseName = databaseName; return self(); }
@NotNull @Override protected Set<Integer> getLivenessCheckPorts() { return new HashSet<>(getMappedPort(POSTGRESQL_PORT)); }
@Override protected void waitUntilContainerStarted() { getWaitStrategy().waitUntilReady(this); } }
@Test void waits_until_postgres_accepts_jdbc_connections() throws Exception { HikariConfig hikariConfig = new HikariConfig(); hikariConfig.setJdbcUrl(POSTGRE_SQL_CONTAINER.getJdbcUrl()); hikariConfig.setUsername("foo"); hikariConfig.setPassword("secret"); try (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(1, resultSetInt); } }
@Override public SELF withUsername(final String username) { this.username = username; return self(); }
@NotNull @Override protected Set<Integer> getLivenessCheckPorts() { return new HashSet<>(getMappedPort(POSTGRESQL_PORT)); }
@Override protected void waitUntilContainerStarted() { getWaitStrategy().waitUntilReady(this); } }
@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); } }
@Override protected void configure() { addExposedPort(POSTGRESQL_PORT); addEnv("POSTGRES_DB", databaseName); addEnv("POSTGRES_USER", username); addEnv("POSTGRES_PASSWORD", password); setCommand("postgres"); }
@Override public JdbcDatabaseContainer newInstance(String tag) { return new PostgreSQLContainer(PostgreSQLContainer.IMAGE + ":" + tag); } }
@Override public SELF withPassword(final String password) { this.password = password; return self(); }
@Override public String getJdbcUrl() { return "jdbc:postgresql://" + getContainerIpAddress() + ":" + getMappedPort(POSTGRESQL_PORT) + "/" + databaseName; }
@Override public JdbcDatabaseContainer newInstance(String tag) { return new PostgreSQLContainer(PostgreSQLContainer.IMAGE + ":" + tag); } }
@Override public SELF withPassword(final String password) { this.password = password; return self(); }
@Override public JdbcDatabaseContainer newInstance(String tag) { return new PostgreSQLContainer(DEFAULT_IMAGE + ":" + tag); } }