diff --git a/pom.xml b/pom.xml index 2e199e5bc..7139b6a76 100644 --- a/pom.xml +++ b/pom.xml @@ -25,6 +25,7 @@ 1.5 1.4.196 4.12 + 1.12.0 com.zaxxer @@ -97,6 +98,12 @@ ${log4j.version} test + + org.testcontainers + postgresql + ${testcontainers.version} + test + org.apache.commons commons-csv diff --git a/src/test/java/com/zaxxer/hikari/pool/PostgresTest.java b/src/test/java/com/zaxxer/hikari/pool/PostgresTest.java index 693e7b336..b45502770 100644 --- a/src/test/java/com/zaxxer/hikari/pool/PostgresTest.java +++ b/src/test/java/com/zaxxer/hikari/pool/PostgresTest.java @@ -38,28 +38,30 @@ import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; import com.zaxxer.hikari.util.UtilityElf; +import org.junit.Rule; +import org.junit.Test; +import org.testcontainers.containers.PostgreSQLContainer; /** - * This test is meant to be run manually and interactively and was - * build for issue #159. + * This test was built for issue #159. * * @author Brett Wooldridge */ public class PostgresTest { - //@Test + @Rule + public PostgreSQLContainer postgres = new PostgreSQLContainer<>(); + + @Test public void testCase1() throws Exception { - HikariConfig config = newHikariConfig(); + HikariConfig config = createConfig(postgres); config.setMinimumIdle(3); config.setMaximumPoolSize(10); config.setConnectionTimeout(3000); config.setIdleTimeout(TimeUnit.SECONDS.toMillis(10)); config.setValidationTimeout(TimeUnit.SECONDS.toMillis(2)); - config.setJdbcUrl("jdbc:pgsql://localhost:5432/test"); - config.setUsername("brettw"); - try (final HikariDataSource ds = new HikariDataSource(config)) { final long start = currentTime(); do { @@ -82,18 +84,15 @@ public void run() { } } - //@Test + @Test public void testCase2() throws Exception { - HikariConfig config = newHikariConfig(); + HikariConfig config = createConfig(postgres); config.setMinimumIdle(3); config.setMaximumPoolSize(10); config.setConnectionTimeout(1000); config.setIdleTimeout(TimeUnit.SECONDS.toMillis(60)); - config.setJdbcUrl("jdbc:pgsql://localhost:5432/test"); - config.setUsername("brettw"); - try (HikariDataSource ds = new HikariDataSource(config)) { try (Connection conn = ds.getConnection()) { @@ -127,18 +126,15 @@ public void testCase2() throws Exception System.err.println("\nPassed."); } - //@Test + @Test public void testCase3() throws Exception { - HikariConfig config = newHikariConfig(); + HikariConfig config = createConfig(postgres); config.setMinimumIdle(3); config.setMaximumPoolSize(10); config.setConnectionTimeout(1000); config.setIdleTimeout(TimeUnit.SECONDS.toMillis(60)); - config.setJdbcUrl("jdbc:pgsql://localhost:5432/test"); - config.setUsername("brettw"); - try (final HikariDataSource ds = new HikariDataSource(config)) { for (int i = 0; i < 10; i++) { new Thread() { @@ -162,10 +158,10 @@ public void run() { } } - // @Test + @Test public void testCase4() throws Exception { - HikariConfig config = newHikariConfig(); + HikariConfig config = createConfig(postgres); config.setMinimumIdle(0); config.setMaximumPoolSize(15); config.setConnectionTimeout(10000); @@ -173,9 +169,6 @@ public void testCase4() throws Exception config.setMaxLifetime(TimeUnit.MINUTES.toMillis(2)); config.setRegisterMbeans(true); - config.setJdbcUrl("jdbc:postgresql://localhost:5432/netld"); - config.setUsername("brettw"); - try (final HikariDataSource ds = new HikariDataSource(config)) { countdown(20); @@ -228,4 +221,13 @@ private void countdown(int seconds) } } while (seconds > 0); } + + static private HikariConfig createConfig(PostgreSQLContainer postgres) { + HikariConfig config = newHikariConfig(); + config.setJdbcUrl(postgres.getJdbcUrl()); + config.setUsername(postgres.getUsername()); + config.setPassword(postgres.getPassword()); + return config; + } + }