use of com.alibaba.druid.proxy.jdbc.DataSourceProxyImpl in project druid by alibaba.
the class WrapImplTest method test_clone.
public void test_clone() throws Exception {
Class.forName("com.alibaba.druid.proxy.DruidDriver");
DruidDriver driver = (DruidDriver) DriverManager.getDriver(url);
ConnectionProxyImpl connection = (ConnectionProxyImpl) driver.connect(url, new Properties());
connection.getRawObject();
FilterChain filterChain = (FilterChain) connection.createChain();
filterChain.cloneChain();
DataSourceProxyImpl dataSource = (DataSourceProxyImpl) connection.getDirectDataSource();
dataSource.getId();
Assert.assertEquals(4, dataSource.getProxyFilters().size());
Assert.assertEquals(4, dataSource.getFilterClasses().length);
Assert.assertNotNull(dataSource.getCreatedTime());
Assert.assertTrue(dataSource.getCreatedTime().getTime() != 0);
Assert.assertEquals("org.apache.derby.jdbc.EmbeddedDriver", dataSource.getRawDriverClassName());
Assert.assertEquals(url, dataSource.getUrl());
Assert.assertEquals("jdbc:derby:classpath:petstore-db", dataSource.getRawUrl());
Assert.assertEquals(10, dataSource.getRawDriverMajorVersion());
Assert.assertEquals(12, dataSource.getRawDriverMinorVersion());
Class<?> mysql5ConnectionClass = Utils.loadClass("com.mysql.jdbc.Connection");
if (mysql5ConnectionClass != null) {
Assert.assertFalse(connection.isWrapperFor(mysql5ConnectionClass));
}
Assert.assertTrue(connection.isWrapperFor(ConnectionProxyImpl.class));
Assert.assertTrue(connection.isWrapperFor(org.apache.derby.impl.jdbc.EmbedConnection.class));
Assert.assertNotNull(connection.unwrap(ConnectionProxyImpl.class));
Assert.assertNull(connection.unwrap(null));
org.apache.derby.impl.jdbc.EmbedConnection derbyConnection = connection.unwrap(org.apache.derby.impl.jdbc.EmbedConnection.class);
Assert.assertNotNull(derbyConnection);
Statement statement = connection.createStatement();
if (mysql5ConnectionClass != null) {
Assert.assertFalse(statement.isWrapperFor(Class.forName("com.mysql.jdbc.Statement")));
}
Assert.assertFalse(statement.isWrapperFor(null));
Assert.assertTrue(statement.isWrapperFor(org.apache.derby.impl.jdbc.EmbedStatement.class));
org.apache.derby.impl.jdbc.EmbedStatement rayStatement = statement.unwrap(org.apache.derby.impl.jdbc.EmbedStatement.class);
Assert.assertNotNull(rayStatement);
statement.close();
}
use of com.alibaba.druid.proxy.jdbc.DataSourceProxyImpl in project druid by alibaba.
the class CounterFilterTest method test_count_filter.
public void test_count_filter() throws Exception {
DataSourceProxyConfig config = new DataSourceProxyConfig();
config.setUrl("");
config.setRawUrl("jdbc:mock:");
StatFilter filter = new StatFilter();
MockDriver driver = new MockDriver();
DataSourceProxyImpl dataSource = new DataSourceProxyImpl(driver, config);
filter.init(dataSource);
config.getFilters().add(filter);
Connection conn = dataSource.connect(null);
Statement stmt = conn.createStatement();
ResultSetProxy rs = (ResultSetProxy) stmt.executeQuery(sql);
rs.close();
stmt.close();
conn.close();
conn.close();
dataSource.getCompositeData();
dataSource.getProperties();
dataSource.getDataSourceMBeanDomain();
}
use of com.alibaba.druid.proxy.jdbc.DataSourceProxyImpl in project druid by alibaba.
the class CounterFilterTest method test_countFilter.
public void test_countFilter() throws Exception {
DataSourceProxyConfig config = new DataSourceProxyConfig();
config.setUrl("");
DataSourceProxyImpl dataSource = new DataSourceProxyImpl(null, config);
JdbcDataSourceStat dataSourceStat = dataSource.getDataSourceStat();
StatFilter filter = new StatFilter();
filter.init(dataSource);
dataSourceStat.reset();
Assert.assertNull(StatFilter.getStatFilter(dataSource));
Assert.assertNull(dataSourceStat.getSqlStat(Integer.MAX_VALUE));
Assert.assertNull(dataSourceStat.getConnectionStat().getConnectLastTime());
FilterChain chain = new FilterChainImpl(dataSource) {
public ConnectionProxy connection_connect(Properties info) throws SQLException {
throw new SQLException();
}
};
Exception error = null;
try {
filter.connection_connect(chain, new Properties());
} catch (SQLException ex) {
error = ex;
}
Assert.assertNotNull(error);
Assert.assertEquals(1, dataSourceStat.getConnectionStat().getConnectErrorCount());
Assert.assertNotNull(dataSourceStat.getConnectionStat().getConnectLastTime());
}
use of com.alibaba.druid.proxy.jdbc.DataSourceProxyImpl in project druid by alibaba.
the class JdbcFilterEventAdapterTest method test_filterEventAdapter.
public void test_filterEventAdapter() throws Exception {
DataSourceProxyConfig config = new DataSourceProxyConfig();
DataSourceProxy dataSource = new DataSourceProxyImpl(null, config);
FilterEventAdapter filter = new FilterEventAdapter() {
};
String sql = "SELECT * FROM PATROL";
ConnectionProxy connection = new ConnectionProxyImpl(dataSource, null, new Properties(), 1001);
final PreparedStatementProxy statement = new PreparedStatementProxyImpl(connection, null, sql, 1002);
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public boolean statement_execute(StatementProxy statement, String sql) throws SQLException {
throw new SQLException();
}
};
Throwable error = null;
try {
filter.statement_execute(chain, statement, sql);
} catch (Throwable ex) {
error = ex;
}
Assert.assertNotNull(error);
}
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public boolean statement_execute(StatementProxy statement, String sql) throws SQLException {
throw new RuntimeException();
}
};
Throwable error = null;
try {
filter.statement_execute(chain, statement, sql);
} catch (Throwable ex) {
error = ex;
}
Assert.assertNotNull(error);
}
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public boolean statement_execute(StatementProxy statement, String sql) throws SQLException {
throw new Error();
}
};
Throwable error = null;
try {
filter.statement_execute(chain, statement, sql);
} catch (Throwable ex) {
error = ex;
}
Assert.assertNotNull(error);
}
// //////////////////////////
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public boolean statement_execute(StatementProxy statement, String sql, int autoGeneratedKeys) throws SQLException {
throw new SQLException();
}
};
Throwable error = null;
try {
filter.statement_execute(chain, statement, sql, Statement.NO_GENERATED_KEYS);
} catch (Throwable ex) {
error = ex;
}
Assert.assertNotNull(error);
}
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public boolean statement_execute(StatementProxy statement, String sql, int autoGeneratedKeys) throws SQLException {
throw new RuntimeException();
}
};
Throwable error = null;
try {
filter.statement_execute(chain, statement, sql, Statement.NO_GENERATED_KEYS);
} catch (Throwable ex) {
error = ex;
}
Assert.assertNotNull(error);
}
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public boolean statement_execute(StatementProxy statement, String sql, int autoGeneratedKeys) throws SQLException {
throw new Error();
}
};
Throwable error = null;
try {
filter.statement_execute(chain, statement, sql, Statement.NO_GENERATED_KEYS);
} catch (Throwable ex) {
error = ex;
}
Assert.assertNotNull(error);
}
// //////////////////////////
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public boolean statement_execute(StatementProxy statement, String sql, int[] columnIndexes) throws SQLException {
throw new SQLException();
}
};
Throwable error = null;
try {
filter.statement_execute(chain, statement, sql, new int[0]);
} catch (Throwable ex) {
error = ex;
}
Assert.assertNotNull(error);
}
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public boolean statement_execute(StatementProxy statement, String sql, int[] columnIndexes) throws SQLException {
throw new RuntimeException();
}
};
Throwable error = null;
try {
filter.statement_execute(chain, statement, sql, new int[0]);
} catch (Throwable ex) {
error = ex;
}
Assert.assertNotNull(error);
}
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public boolean statement_execute(StatementProxy statement, String sql, int[] columnIndexes) throws SQLException {
throw new Error();
}
};
Throwable error = null;
try {
filter.statement_execute(chain, statement, sql, new int[0]);
} catch (Throwable ex) {
error = ex;
}
Assert.assertNotNull(error);
}
// //////////////////////////
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public boolean statement_execute(StatementProxy statement, String sql, String[] columnNames) throws SQLException {
throw new SQLException();
}
};
Throwable error = null;
try {
filter.statement_execute(chain, statement, sql, new String[0]);
} catch (Throwable ex) {
error = ex;
}
Assert.assertNotNull(error);
}
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public boolean statement_execute(StatementProxy statement, String sql, String[] columnNames) throws SQLException {
throw new RuntimeException();
}
};
Throwable error = null;
try {
filter.statement_execute(chain, statement, sql, new String[0]);
} catch (Throwable ex) {
error = ex;
}
Assert.assertNotNull(error);
}
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public boolean statement_execute(StatementProxy statement, String sql, String[] columnNames) throws SQLException {
throw new Error();
}
};
Throwable error = null;
try {
filter.statement_execute(chain, statement, sql, new String[0]);
} catch (Throwable ex) {
error = ex;
}
Assert.assertNotNull(error);
}
// //////////////////////////
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public int[] statement_executeBatch(StatementProxy statement) throws SQLException {
throw new SQLException();
}
};
Throwable error = null;
try {
filter.statement_executeBatch(chain, statement);
} catch (Throwable ex) {
error = ex;
}
Assert.assertNotNull(error);
}
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public int[] statement_executeBatch(StatementProxy statement) throws SQLException {
throw new RuntimeException();
}
};
Throwable error = null;
try {
filter.statement_executeBatch(chain, statement);
} catch (Throwable ex) {
error = ex;
}
Assert.assertNotNull(error);
}
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public int[] statement_executeBatch(StatementProxy statement) throws SQLException {
throw new Error();
}
};
Throwable error = null;
try {
filter.statement_executeBatch(chain, statement);
} catch (Throwable ex) {
error = ex;
}
Assert.assertNotNull(error);
}
// //////////////////////////
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public ResultSetProxy statement_executeQuery(StatementProxy statement, String sql) throws SQLException {
throw new SQLException();
}
};
Throwable error = null;
try {
filter.statement_executeQuery(chain, statement, sql);
} catch (Throwable ex) {
error = ex;
}
Assert.assertNotNull(error);
}
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public ResultSetProxy statement_executeQuery(StatementProxy statement, String sql) throws SQLException {
throw new RuntimeException();
}
};
Throwable error = null;
try {
filter.statement_executeQuery(chain, statement, sql);
} catch (Throwable ex) {
error = ex;
}
Assert.assertNotNull(error);
}
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public ResultSetProxy statement_executeQuery(StatementProxy statement, String sql) throws SQLException {
throw new Error();
}
};
Throwable error = null;
try {
filter.statement_executeQuery(chain, statement, sql);
} catch (Throwable ex) {
error = ex;
}
Assert.assertNotNull(error);
}
// //////////////////////////
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public int preparedStatement_executeUpdate(PreparedStatementProxy statement) throws SQLException {
throw new SQLException();
}
};
Throwable error = null;
try {
filter.preparedStatement_executeUpdate(chain, statement);
} catch (SQLException ex) {
error = ex;
}
Assert.assertNotNull(error);
}
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public int preparedStatement_executeUpdate(PreparedStatementProxy statement) throws SQLException {
throw new RuntimeException();
}
};
Throwable error = null;
try {
filter.preparedStatement_executeUpdate(chain, statement);
} catch (RuntimeException ex) {
error = ex;
}
Assert.assertNotNull(error);
}
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public int preparedStatement_executeUpdate(PreparedStatementProxy statement) throws SQLException {
throw new Error();
}
};
Throwable error = null;
try {
filter.preparedStatement_executeUpdate(chain, statement);
} catch (Error ex) {
error = ex;
}
Assert.assertNotNull(error);
}
// //////////////////////////
// //////////////////////////
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public int statement_executeUpdate(StatementProxy statement, String sql) throws SQLException {
throw new SQLException();
}
};
Throwable error = null;
try {
filter.statement_executeUpdate(chain, statement, sql);
} catch (SQLException ex) {
error = ex;
}
Assert.assertNotNull(error);
}
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public int statement_executeUpdate(StatementProxy statement, String sql) throws SQLException {
throw new RuntimeException();
}
};
Throwable error = null;
try {
filter.statement_executeUpdate(chain, statement, sql);
} catch (RuntimeException ex) {
error = ex;
}
Assert.assertNotNull(error);
}
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public int statement_executeUpdate(StatementProxy statement, String sql) throws SQLException {
throw new Error();
}
};
Throwable error = null;
try {
filter.statement_executeUpdate(chain, statement, sql);
} catch (Error ex) {
error = ex;
}
Assert.assertNotNull(error);
}
// //////////////////////////
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public int statement_executeUpdate(StatementProxy statement, String sql, int autoGeneratedKeys) throws SQLException {
throw new SQLException();
}
};
Throwable error = null;
try {
filter.statement_executeUpdate(chain, statement, sql, Statement.NO_GENERATED_KEYS);
} catch (SQLException ex) {
error = ex;
}
Assert.assertNotNull(error);
}
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public int statement_executeUpdate(StatementProxy statement, String sql, int autoGeneratedKeys) throws SQLException {
throw new RuntimeException();
}
};
Throwable error = null;
try {
filter.statement_executeUpdate(chain, statement, sql, Statement.NO_GENERATED_KEYS);
} catch (RuntimeException ex) {
error = ex;
}
Assert.assertNotNull(error);
}
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public int statement_executeUpdate(StatementProxy statement, String sql, int autoGeneratedKeys) throws SQLException {
throw new Error();
}
};
Throwable error = null;
try {
filter.statement_executeUpdate(chain, statement, sql, Statement.NO_GENERATED_KEYS);
} catch (Error ex) {
error = ex;
}
Assert.assertNotNull(error);
}
// //////////////////////////
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public int statement_executeUpdate(StatementProxy statement, String sql, int[] columnIndexes) throws SQLException {
throw new SQLException();
}
};
Throwable error = null;
try {
filter.statement_executeUpdate(chain, statement, sql, new int[0]);
} catch (Throwable ex) {
error = ex;
}
Assert.assertNotNull(error);
}
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public int statement_executeUpdate(StatementProxy statement, String sql, int[] columnIndexes) throws SQLException {
throw new RuntimeException();
}
};
Throwable error = null;
try {
filter.statement_executeUpdate(chain, statement, sql, new int[0]);
} catch (Throwable ex) {
error = ex;
}
Assert.assertNotNull(error);
}
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public int statement_executeUpdate(StatementProxy statement, String sql, int[] columnIndexes) throws SQLException {
throw new Error();
}
};
Throwable error = null;
try {
filter.statement_executeUpdate(chain, statement, sql, new int[0]);
} catch (Throwable ex) {
error = ex;
}
Assert.assertNotNull(error);
}
// //////////////////////////
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public int statement_executeUpdate(StatementProxy statement, String sql, String[] columnNames) throws SQLException {
throw new SQLException();
}
};
Throwable error = null;
try {
filter.statement_executeUpdate(chain, statement, sql, new String[0]);
} catch (Throwable ex) {
error = ex;
}
Assert.assertNotNull(error);
}
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public int statement_executeUpdate(StatementProxy statement, String sql, String[] columnNames) throws SQLException {
throw new RuntimeException();
}
};
Throwable error = null;
try {
filter.statement_executeUpdate(chain, statement, sql, new String[0]);
} catch (Throwable ex) {
error = ex;
}
Assert.assertNotNull(error);
}
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public int statement_executeUpdate(StatementProxy statement, String sql, String[] columnNames) throws SQLException {
throw new Error();
}
};
Throwable error = null;
try {
filter.statement_executeUpdate(chain, statement, sql, new String[0]);
} catch (Throwable ex) {
error = ex;
}
Assert.assertNotNull(error);
}
// ///////////////////////////
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public ResultSetProxy statement_getGeneratedKeys(StatementProxy statement) throws SQLException {
return null;
}
};
filter.statement_getGeneratedKeys(chain, statement);
}
{
final ResultSetProxy resultSet = new ResultSetProxyImpl(statement, null, 2001, null);
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public ResultSetProxy statement_getGeneratedKeys(StatementProxy statement) throws SQLException {
return resultSet;
}
};
filter.statement_getGeneratedKeys(chain, statement);
}
// //////////////////////////
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public boolean preparedStatement_execute(PreparedStatementProxy statement) throws SQLException {
throw new SQLException();
}
};
Throwable error = null;
try {
filter.preparedStatement_execute(chain, statement);
} catch (SQLException ex) {
error = ex;
}
Assert.assertNotNull(error);
}
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public boolean preparedStatement_execute(PreparedStatementProxy statement) throws SQLException {
throw new RuntimeException();
}
};
Throwable error = null;
try {
filter.preparedStatement_execute(chain, statement);
} catch (RuntimeException ex) {
error = ex;
}
Assert.assertNotNull(error);
}
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public boolean preparedStatement_execute(PreparedStatementProxy statement) throws SQLException {
throw new Error();
}
};
Throwable error = null;
try {
filter.preparedStatement_execute(chain, statement);
} catch (Error ex) {
error = ex;
}
Assert.assertNotNull(error);
}
// //////////////////////////
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public ResultSetProxy preparedStatement_executeQuery(PreparedStatementProxy statement) throws SQLException {
throw new SQLException();
}
};
Throwable error = null;
try {
filter.preparedStatement_executeQuery(chain, statement);
} catch (SQLException ex) {
error = ex;
}
Assert.assertNotNull(error);
}
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public ResultSetProxy preparedStatement_executeQuery(PreparedStatementProxy statement) throws SQLException {
throw new RuntimeException();
}
};
Throwable error = null;
try {
filter.preparedStatement_executeQuery(chain, statement);
} catch (RuntimeException ex) {
error = ex;
}
Assert.assertNotNull(error);
}
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public ResultSetProxy preparedStatement_executeQuery(PreparedStatementProxy statement) throws SQLException {
throw new Error();
}
};
Throwable error = null;
try {
filter.preparedStatement_executeQuery(chain, statement);
} catch (Error ex) {
error = ex;
}
Assert.assertNotNull(error);
}
// //////////////////////////
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public void dataSource_recycle(DruidPooledConnection connection) throws SQLException {
throw new SQLException();
}
};
Throwable error = null;
try {
filter.dataSource_releaseConnection(chain, null);
} catch (SQLException ex) {
error = ex;
}
Assert.assertNotNull(error);
}
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public void dataSource_recycle(DruidPooledConnection connection) throws SQLException {
throw new RuntimeException();
}
};
Throwable error = null;
try {
filter.dataSource_releaseConnection(chain, null);
} catch (RuntimeException ex) {
error = ex;
}
Assert.assertNotNull(error);
}
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public void dataSource_recycle(DruidPooledConnection connection) throws SQLException {
throw new Error();
}
};
Throwable error = null;
try {
filter.dataSource_releaseConnection(chain, null);
} catch (Error ex) {
error = ex;
}
Assert.assertNotNull(error);
}
// //////////////////////////
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public DruidPooledConnection dataSource_connect(DruidDataSource dataSource, long maxWaitMillis) throws SQLException {
throw new SQLException();
}
};
Throwable error = null;
try {
filter.dataSource_getConnection(chain, null, 0L);
} catch (SQLException ex) {
error = ex;
}
Assert.assertNotNull(error);
}
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public DruidPooledConnection dataSource_connect(DruidDataSource dataSource, long maxWaitMillis) throws SQLException {
throw new RuntimeException();
}
};
Throwable error = null;
try {
filter.dataSource_getConnection(chain, null, 0L);
} catch (RuntimeException ex) {
error = ex;
}
Assert.assertNotNull(error);
}
{
FilterChain chain = new FilterChainImpl(new DataSourceProxyImpl(null, config)) {
public DruidPooledConnection dataSource_connect(DruidDataSource dataSource, long maxWaitMillis) throws SQLException {
throw new Error();
}
};
Throwable error = null;
try {
filter.dataSource_getConnection(chain, null, 0L);
} catch (Error ex) {
error = ex;
}
Assert.assertNotNull(error);
}
}
use of com.alibaba.druid.proxy.jdbc.DataSourceProxyImpl in project druid by alibaba.
the class LogFilterTest method test_logFilter_2.
public void test_logFilter_2() throws Exception {
DataSourceProxyConfig config = new DataSourceProxyConfig();
config.setRawUrl("jdbc:mock:");
DataSourceProxyImpl dataSource = new DataSourceProxyImpl(new MockDriver(), config);
Log4jFilter log4jFilter = new Log4jFilter();
{
log4jFilter.init(dataSource);
setLogDisableAll(log4jFilter, true);
config.getFilters().add(log4jFilter);
}
CommonsLogFilter logFilter = new CommonsLogFilter();
{
logFilter.init(dataSource);
setLogDisableAll(logFilter, true);
config.getFilters().add(logFilter);
}
final MockResultSetMetaData rsMeta = new MockResultSetMetaData() {
private int[] types = new int[] { Types.BLOB, Types.CLOB, Types.NCLOB, Types.BINARY, Types.OTHER };
@Override
public int getColumnCount() throws SQLException {
return types.length;
}
@Override
public int getColumnType(int column) throws SQLException {
return types[column - 1];
}
};
ConnectionProxy conn = (ConnectionProxy) dataSource.connect(new Properties());
{
StatementProxy stmt = (StatementProxy) conn.createStatement();
MockResultSet rs = new MockResultSet(null) {
@Override
public ResultSetMetaData getMetaData() throws SQLException {
return rsMeta;
}
@Override
public boolean next() throws SQLException {
return true;
}
@Override
public Object getObject(int columnIndex) throws SQLException {
if (columnIndex == 5) {
throw new SQLException();
}
return null;
}
};
FilterChainImpl chain = new FilterChainImpl(dataSource);
chain.resultSet_next(new ResultSetProxyImpl(stmt, rs, 1001, null));
}
{
final MockResultSet rs = new MockResultSet(null) {
@Override
public ResultSetMetaData getMetaData() throws SQLException {
throw new SQLException();
}
};
StatementProxy stmt = new StatementProxyImpl(conn, new MockStatement(conn) {
public ResultSet getResultSet() throws SQLException {
return rs;
}
}, 0);
FilterChainImpl chain = new FilterChainImpl(dataSource);
chain.statement_getResultSet(stmt);
}
{
StatementProxy stmt = (StatementProxy) conn.createStatement();
MockResultSet rs = new MockResultSet(null) {
@Override
public ResultSetMetaData getMetaData() throws SQLException {
return rsMeta;
}
@Override
public boolean next() throws SQLException {
return true;
}
@Override
public Object getObject(int columnIndex) throws SQLException {
if (columnIndex == 5) {
throw new SQLException();
}
return null;
}
};
{
logFilter.setResultSetLogEnabled(false);
FilterChainImpl chain = new FilterChainImpl(dataSource);
chain.resultSet_next(new ResultSetProxyImpl(stmt, rs, 1001, null));
}
{
logFilter.setResultSetNextAfterLogEnabled(false);
FilterChainImpl chain = new FilterChainImpl(dataSource);
chain.resultSet_next(new ResultSetProxyImpl(stmt, rs, 1001, null));
}
}
}
Aggregations