package net.ttddyy.dsproxy.proxy;
import net.ttddyy.dsproxy.proxy.jdk.JdkJdbcProxyFactory;
import org.junit.Test;
import javax.sql.DataSource;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.Statement;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.*;
import static org.mockito.Mockito.mock;
/**
* @author Tadaya Tsuyukubo
*/
public class JdkJdbcProxyFactoryTest {
private JdkJdbcProxyFactory factory = new JdkJdbcProxyFactory();
@Test
public void testCreateConnection() {
Connection conn = mock(Connection.class);
InterceptorHolder interceptors = mock(InterceptorHolder.class);
Connection result = factory.createConnection(conn, interceptors, "my-ds");
assertThat(result, is(notNullValue()));
assertThat(result, is(not(sameInstance(conn))));
assertThat(result, is(instanceOf(ProxyJdbcObject.class)));
}
@Test
public void testCreateStatement() {
Statement stmt = mock(Statement.class);
InterceptorHolder interceptors = mock(InterceptorHolder.class);
Statement result = factory.createStatement(stmt, interceptors, "my-ds");
assertThat(result, is(notNullValue()));
assertThat(result, is(not(sameInstance(stmt))));
assertThat(result, is(instanceOf(ProxyJdbcObject.class)));
}
@Test
public void testCreatePreparedStatement() {
PreparedStatement ps = mock(PreparedStatement.class);
InterceptorHolder interceptors = mock(InterceptorHolder.class);
PreparedStatement result = factory.createPreparedStatement(ps, "my-query", interceptors, "my-ds");
assertThat(result, is(notNullValue()));
assertThat(result, is(not(sameInstance(ps))));
assertThat(result, is(instanceOf(ProxyJdbcObject.class)));
}
@Test
public void testCreateCallableStatement() {
CallableStatement cs = mock(CallableStatement.class);
InterceptorHolder interceptors = mock(InterceptorHolder.class);
CallableStatement result = factory.createCallableStatement(cs, "my-query", interceptors, "my-ds");
assertThat(result, is(notNullValue()));
assertThat(result, is(not(sameInstance(cs))));
assertThat(result, is(instanceOf(ProxyJdbcObject.class)));
}
@Test
public void testCreateDataSource() {
DataSource ds = mock(DataSource.class);
InterceptorHolder interceptors = mock(InterceptorHolder.class);
DataSource result = factory.createDataSource(ds, interceptors, "my-ds");
assertThat(result, is(notNullValue()));
assertThat(result, is(not(sameInstance(ds))));
assertThat(result, is(instanceOf(ProxyJdbcObject.class)));
}
}