package com.zaxxer.hikari.pool; import java.sql.Connection; import java.sql.SQLException; import org.junit.Assert; import org.junit.Test; import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; public class RampUpDown { @Test public void rampUpDownTest() throws SQLException, InterruptedException { HikariConfig config = new HikariConfig(); config.setMinimumIdle(5); config.setMaximumPoolSize(60); config.setInitializationFailFast(true); config.setConnectionTestQuery("VALUES 1"); config.setDataSourceClassName("com.zaxxer.hikari.mocks.StubDataSource"); System.setProperty("com.zaxxer.hikari.housekeeping.periodMs", "250"); try (HikariDataSource ds = new HikariDataSource(config)) { ds.setIdleTimeout(1000); HikariPool pool = TestElf.getPool(ds); Assert.assertSame("Total connections not as expected", 5, pool.getTotalConnections()); Connection[] connections = new Connection[ds.getMaximumPoolSize()]; for (int i = 0; i < connections.length; i++) { connections[i] = ds.getConnection(); } Assert.assertSame("Total connections not as expected", 60, pool.getTotalConnections()); for (Connection connection : connections) { connection.close(); } Thread.sleep(2500); Assert.assertSame("Total connections not as expected", 5, pool.getTotalConnections()); } } }