mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
96 lines
3.3 KiB
Java
96 lines
3.3 KiB
Java
package com.alibaba.druid.bvt.pool;
|
|
|
|
import java.sql.Connection;
|
|
import java.sql.PreparedStatement;
|
|
import java.sql.ResultSet;
|
|
import java.sql.Statement;
|
|
|
|
import junit.framework.TestCase;
|
|
|
|
import org.junit.Assert;
|
|
|
|
import com.alibaba.druid.mock.MockConnection;
|
|
import com.alibaba.druid.mock.MockPreparedStatement;
|
|
import com.alibaba.druid.mock.MockResultSet;
|
|
import com.alibaba.druid.pool.DruidDataSource;
|
|
import com.alibaba.druid.pool.DruidPooledConnection;
|
|
import com.alibaba.druid.proxy.jdbc.PreparedStatementProxy;
|
|
import com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl;
|
|
import com.alibaba.druid.proxy.jdbc.ResultSetProxy;
|
|
import com.alibaba.druid.proxy.jdbc.ResultSetProxyImpl;
|
|
import com.alibaba.druid.proxy.jdbc.StatementProxy;
|
|
|
|
public class UnwrapTest extends TestCase {
|
|
|
|
private DruidDataSource dataSource;
|
|
|
|
protected void setUp() throws Exception {
|
|
|
|
dataSource = new DruidDataSource();
|
|
dataSource.setUrl("jdbc:mock:xxx");
|
|
dataSource.setTestOnBorrow(true);
|
|
dataSource.setInitialSize(1);
|
|
dataSource.setValidationQuery("select 1");
|
|
dataSource.setValidationQueryTimeout(10);
|
|
dataSource.setQueryTimeout(100);
|
|
|
|
dataSource.setFilters("log4j");
|
|
}
|
|
|
|
protected void tearDown() throws Exception {
|
|
dataSource.close();
|
|
}
|
|
|
|
public void test_unwrap() throws Exception {
|
|
Connection conn = dataSource.getConnection();
|
|
|
|
Assert.assertTrue(conn.isWrapperFor(DruidPooledConnection.class));
|
|
Assert.assertNotNull(conn.unwrap(DruidPooledConnection.class));
|
|
Assert.assertSame(conn, conn.unwrap(DruidPooledConnection.class));
|
|
|
|
Assert.assertTrue(conn.isWrapperFor(MockConnection.class));
|
|
Assert.assertNotNull(conn.unwrap(MockConnection.class));
|
|
|
|
PreparedStatement stmt = conn.prepareStatement("select ?");
|
|
|
|
Assert.assertTrue(stmt.isWrapperFor(Statement.class));
|
|
Assert.assertNotNull(stmt.unwrap(Statement.class));
|
|
|
|
Assert.assertTrue(stmt.isWrapperFor(PreparedStatement.class));
|
|
Assert.assertNotNull(stmt.unwrap(PreparedStatement.class));
|
|
|
|
Assert.assertTrue(stmt.isWrapperFor(StatementProxy.class));
|
|
Assert.assertNotNull(stmt.unwrap(StatementProxy.class));
|
|
|
|
Assert.assertTrue(stmt.isWrapperFor(PreparedStatementProxy.class));
|
|
Assert.assertNotNull(stmt.unwrap(PreparedStatementProxy.class));
|
|
|
|
Assert.assertTrue(stmt.isWrapperFor(PreparedStatementProxyImpl.class));
|
|
Assert.assertNotNull(stmt.unwrap(PreparedStatementProxyImpl.class));
|
|
|
|
Assert.assertTrue(stmt.isWrapperFor(MockPreparedStatement.class));
|
|
Assert.assertNotNull(stmt.unwrap(MockPreparedStatement.class));
|
|
|
|
stmt.setObject(1, "aaa");
|
|
ResultSet rs = stmt.executeQuery();
|
|
|
|
Assert.assertTrue(rs.isWrapperFor(ResultSet.class));
|
|
Assert.assertNotNull(rs.unwrap(ResultSet.class));
|
|
|
|
Assert.assertTrue(rs.isWrapperFor(ResultSetProxy.class));
|
|
Assert.assertNotNull(rs.unwrap(ResultSetProxy.class));
|
|
|
|
Assert.assertTrue(rs.isWrapperFor(ResultSetProxyImpl.class));
|
|
Assert.assertNotNull(rs.unwrap(ResultSetProxyImpl.class));
|
|
|
|
Assert.assertTrue(rs.isWrapperFor(MockResultSet.class));
|
|
Assert.assertNotNull(rs.unwrap(MockResultSet.class));
|
|
|
|
rs.close();
|
|
|
|
stmt.close();
|
|
|
|
conn.close();
|
|
}
|
|
}
|