Skip to content

Commit

Permalink
use [testcontainers-java] for Postgres unit test
Browse files Browse the repository at this point in the history
  • Loading branch information
sullis committed Aug 13, 2019
1 parent 086bf18 commit c82070f
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 22 deletions.
7 changes: 7 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
<commons.csv.version>1.5</commons.csv.version>
<h2.version>1.4.196</h2.version>
<junit.version>4.12</junit.version>
<testcontainers.version>1.12.0</testcontainers.version>
</properties>

<groupId>com.zaxxer</groupId>
Expand Down Expand Up @@ -97,6 +98,12 @@
<version>${log4j.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>postgresql</artifactId>
<version>${testcontainers.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
Expand Down
46 changes: 24 additions & 22 deletions src/test/java/com/zaxxer/hikari/pool/PostgresTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand All @@ -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()) {
Expand Down Expand Up @@ -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() {
Expand All @@ -162,20 +158,17 @@ 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);
config.setIdleTimeout(TimeUnit.MINUTES.toMillis(1));
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);
Expand Down Expand Up @@ -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;
}

}

0 comments on commit c82070f

Please sign in to comment.