package io.vertx.ext.jdbc.spi.impl;
import io.vertx.core.json.JsonObject;
import org.junit.Test;
import javax.sql.DataSource;
import java.sql.SQLException;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
/**
* Checks the behavior of {@link HikariCPDataSourceProvider}.
*
* @author <a href="http://escoffier.me">Clement Escoffier</a>
*/
public class HikariCPDataSourceProviderTest {
@Test
public void testCreationOfTheHikariCPDataSource() throws SQLException {
HikariCPDataSourceProvider provider = new HikariCPDataSourceProvider();
JsonObject configuration = new JsonObject();
configuration
.put("foo", "bar")
.put("jdbcUrl", "jdbc:hsqldb:mem:test?shutdown=true")
.put("maxLifetime", 200L)
.put("maximumPoolSize", 30);
DataSource dataSource = provider.getDataSource(configuration);
assertNotNull(dataSource);
assertNotNull(dataSource.getConnection());
assertEquals(30, provider.maximumPoolSize(dataSource, configuration));
provider.close(dataSource);
}
@Test
public void testCreationOfTheHikariCPDataSourceWithInteger() throws SQLException {
HikariCPDataSourceProvider provider = new HikariCPDataSourceProvider();
JsonObject configuration = new JsonObject();
configuration
.put("foo", "bar")
.put("jdbcUrl", "jdbc:hsqldb:mem:test?shutdown=true")
.put("maxLifetime", 200);
DataSource dataSource = provider.getDataSource(configuration);
assertNotNull(dataSource);
assertNotNull(dataSource.getConnection());
provider.close(dataSource);
}
@Test
public void testLeakDetectionOfTheHikariCPDataSourceWithLong() throws SQLException {
HikariCPDataSourceProvider provider = new HikariCPDataSourceProvider();
JsonObject configuration = new JsonObject();
configuration
.put("foo", "bar")
.put("jdbcUrl", "jdbc:hsqldb:mem:test?shutdown=true")
.put("leakDetectionThreshold", 10000);
DataSource dataSource = provider.getDataSource(configuration);
assertNotNull(dataSource);
assertNotNull(dataSource.getConnection());
provider.close(dataSource);
}
}