package com.github.gquintana.metrics.sql; import com.codahale.metrics.MetricRegistry; import com.codahale.metrics.SharedMetricRegistries; import org.junit.Test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.not; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertThat; public class DriverPropertiesTest { @Test public void testNamingStrategy() throws SQLException { // When Connection connection = DriverManager.getConnection(DriverTest.URL + ";metrics_naming_strategy=default;metrics_registry=naming", H2DbUtil.USERNAME, H2DbUtil.PASSWORD); // Then MetricRegistry metricRegistry = SharedMetricRegistries.getOrCreate("naming"); assertNotNull(metricRegistry.getTimers().get("java.sql.Connection")); assertThat(connection.getClass().getName().toLowerCase(), not(containsString("cglib"))); } @Test public void testProxyFactory() throws SQLException { // When Connection connection = DriverManager.getConnection(DriverTest.URL + ";metrics_registry=proxy;metrics_proxy_factory=cglib", H2DbUtil.USERNAME, H2DbUtil.PASSWORD); // Then assertNotNull(SharedMetricRegistries.getOrCreate("proxy").getTimers().get("java.sql.Connection")); assertThat(connection.getClass().getName().toLowerCase(), containsString("cglib")); } @Test public void testDatabase() throws SQLException { // When Connection connection = DriverManager.getConnection(DriverTest.URL + ";metrics_registry=db;metrics_database=driver", H2DbUtil.USERNAME, H2DbUtil.PASSWORD); // Then assertNotNull(connection); assertNotNull(SharedMetricRegistries.getOrCreate("db").getTimers().get("java.sql.Connection.driver")); } }