RequestBoundariesTest.java
package com.zaxxer.hikari.pool;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import com.zaxxer.hikari.mocks.StubConnection;
import org.junit.Assert;
import org.junit.Test;
import java.sql.Connection;
import static com.zaxxer.hikari.pool.TestElf.getPool;
import static com.zaxxer.hikari.pool.TestElf.newHikariConfig;
public class RequestBoundariesTest {
private static final HikariConfig config;
static {
config = newHikariConfig();
config.setMinimumIdle(0);
config.setMaximumPoolSize(10);
config.setInitializationFailTimeout(Long.MAX_VALUE);
config.setConnectionTestQuery("VALUES 1");
config.setDataSourceClassName("com.zaxxer.hikari.mocks.StubDataSource");
}
private HikariPool getHikariPool(boolean enableRequestBoundaries) {
System.setProperty("com.zaxxer.hikari.enableRequestBoundaries", String.valueOf(enableRequestBoundaries));
HikariDataSource ds = new HikariDataSource(config);
HikariPool pool = getPool(ds);
return pool;
}
@Test
public void requestBoundaryEnabledTest() throws Exception {
HikariPool pool = getHikariPool(true);
Connection conn = pool.getConnection();
StubConnection stubConnection = conn.unwrap(StubConnection.class);
Assert.assertTrue("Begin request called", stubConnection.beginRequestCalled);
Assert.assertFalse("End request called", stubConnection.endRequestCalled);
conn.close();
Assert.assertTrue("Begin request called", stubConnection.beginRequestCalled);
Assert.assertTrue("End request called", stubConnection.endRequestCalled);
}
@Test
public void requestBoundaryDisabledTest() throws Exception {
HikariPool pool = getHikariPool(false);
Connection conn = pool.getConnection();
StubConnection stubConnection = conn.unwrap(StubConnection.class);
Assert.assertFalse("Begin request called", stubConnection.beginRequestCalled);
Assert.assertFalse("End request called", stubConnection.endRequestCalled);
conn.close();
Assert.assertFalse("Begin request called", stubConnection.beginRequestCalled);
Assert.assertFalse("End request called", stubConnection.endRequestCalled);
}
}