}
@Test
public void testPool() throws SQLException, InterruptedException {
DriverManager.setLoginTimeout(1);
PoolProperties poolProperties = new DefaultProperties();
int threadsCount = 3;
poolProperties.setMaxActive(threadsCount);
poolProperties.setMaxIdle(threadsCount);
poolProperties.setMinIdle(0);
poolProperties.setMaxWait(5000);
poolProperties.setInitialSize(0);
poolProperties.setRemoveAbandoned(true);
poolProperties.setRemoveAbandonedTimeout(300);
poolProperties.setRollbackOnReturn(true);
poolProperties.setFairQueue(fairQueue);
final DataSource ds = new DataSource(poolProperties);
final CountDownLatch openedLatch = new CountDownLatch(threadsCount);
final CountDownLatch closedLatch = new CountDownLatch(threadsCount);
final CountDownLatch toCloseLatch = new CountDownLatch(1);