Search in sources :

Example 16 with MockDriver

use of com.alibaba.druid.mock.MockDriver in project druid by alibaba.

the class InitExceptionThrowTest method setUp.

protected void setUp() throws Exception {
    dataSource.setInitExceptionThrow(false);
    dataSource.setUrl("jdbc:mock:xxx");
    dataSource.setDriver(new MockDriver() {

        public Connection connect(String url, Properties info) throws SQLException {
            if (connectCount++ < 1) {
                throw new SQLException("");
            }
            return super.connect(url, info);
        }
    });
    dataSource.setInitialSize(2);
}
Also used : MockDriver(com.alibaba.druid.mock.MockDriver) SQLException(java.sql.SQLException) DruidPooledConnection(com.alibaba.druid.pool.DruidPooledConnection) Connection(java.sql.Connection) Properties(java.util.Properties)

Example 17 with MockDriver

use of com.alibaba.druid.mock.MockDriver in project druid by alibaba.

the class MaxWaitTest method setUp.

protected void setUp() throws Exception {
    dataSource = new DruidDataSource();
    dataSource.setUrl("jdbc:mock:driver");
    dataSource.setMaxWait(100);
    dataSource.setDriver(new MockDriver() {

        @Override
        public Connection connect(String url, Properties info) throws SQLException {
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
            // skip
            }
            return super.connect(url, info);
        }
    });
}
Also used : MockDriver(com.alibaba.druid.mock.MockDriver) SQLException(java.sql.SQLException) DruidPooledConnection(com.alibaba.druid.pool.DruidPooledConnection) Connection(java.sql.Connection) Properties(java.util.Properties) DruidDataSource(com.alibaba.druid.pool.DruidDataSource)

Example 18 with MockDriver

use of com.alibaba.druid.mock.MockDriver in project druid by alibaba.

the class TestGraceShutdown method setUp.

protected void setUp() throws Exception {
    DruidDataSourceStatManager.clear();
    driver = new MockDriver();
    dataSource = new DruidDataSource();
    dataSource.setUrl("jdbc:mock:xxx");
    dataSource.setDriver(driver);
    dataSource.setInitialSize(1);
    dataSource.setMaxActive(2);
    dataSource.setMaxIdle(2);
    dataSource.setMinIdle(1);
    // 300 / 10
    dataSource.setMinEvictableIdleTimeMillis(300 * 1000);
    // 180 / 10
    dataSource.setTimeBetweenEvictionRunsMillis(180 * 1000);
    dataSource.setTestWhileIdle(true);
    dataSource.setTestOnBorrow(false);
    dataSource.setValidationQuery("SELECT 1");
    dataSource.setFilters("stat");
}
Also used : MockDriver(com.alibaba.druid.mock.MockDriver) DruidDataSource(com.alibaba.druid.pool.DruidDataSource)

Example 19 with MockDriver

use of com.alibaba.druid.mock.MockDriver in project druid by alibaba.

the class TestIdle method test_idle.

public void test_idle() throws Exception {
    MockDriver driver = new MockDriver();
    dataSource = new DruidDataSource();
    dataSource.setUrl("jdbc:mock:xxx");
    dataSource.setDriver(driver);
    dataSource.setInitialSize(2);
    dataSource.setMaxActive(4);
    // dataSource.setMaxIdle(4);
    dataSource.setMinIdle(1);
    dataSource.setMinEvictableIdleTimeMillis(50 * 1);
    dataSource.setTimeBetweenEvictionRunsMillis(10);
    dataSource.setTestWhileIdle(true);
    dataSource.setTestOnBorrow(false);
    dataSource.setValidationQuery("SELECT 1");
    {
        Assert.assertEquals(0, dataSource.getCreateCount());
        Assert.assertEquals(0, dataSource.getActiveCount());
        Connection conn = dataSource.getConnection();
        Assert.assertEquals(dataSource.getInitialSize(), dataSource.getCreateCount());
        Assert.assertEquals(dataSource.getInitialSize(), driver.getConnections().size());
        Assert.assertEquals(1, dataSource.getActiveCount());
        conn.close();
        Assert.assertEquals(0, dataSource.getDestroyCount());
        Assert.assertEquals(dataSource.getInitialSize(), driver.getConnections().size());
        Assert.assertEquals(0, dataSource.getActiveCount());
    }
    {
        int count = 4;
        Connection[] connections = new Connection[4];
        for (int i = 0; i < count; ++i) {
            connections[i] = dataSource.getConnection();
            Assert.assertEquals(i + 1, dataSource.getActiveCount());
        }
        Assert.assertEquals(dataSource.getMaxActive(), dataSource.getCreateCount());
        Assert.assertEquals(4, driver.getConnections().size());
        for (int i = 0; i < count; ++i) {
            connections[i].close();
            Assert.assertEquals(count - i - 1, dataSource.getActiveCount());
        }
        Assert.assertEquals(dataSource.getMaxActive(), dataSource.getCreateCount());
        Assert.assertEquals(0, dataSource.getActiveCount());
        Assert.assertEquals(4, driver.getConnections().size());
        Thread.sleep(dataSource.getMinEvictableIdleTimeMillis() * 2);
        Assert.assertEquals(dataSource.getMinIdle(), driver.getConnections().size());
    }
    System.out.println("----------raw close all connection");
    for (MockConnection rawConn : driver.getConnections()) {
        rawConn.close();
    }
    Thread.sleep(dataSource.getMinEvictableIdleTimeMillis() * 2);
    Assert.assertEquals(0, driver.getConnections().size());
    Assert.assertEquals(1, dataSource.getPoolingCount());
    {
        Connection conn = dataSource.getConnection();
        Assert.assertEquals(1, dataSource.getActiveCount());
        Assert.assertEquals(dataSource.getMinIdle(), driver.getConnections().size());
        conn.close();
        Assert.assertEquals(dataSource.getMinIdle(), driver.getConnections().size());
        Assert.assertEquals(0, dataSource.getActiveCount());
    }
    {
        int count = 4;
        Connection[] connections = new Connection[4];
        for (int i = 0; i < count; ++i) {
            connections[i] = dataSource.getConnection();
            Assert.assertEquals(i + 1, dataSource.getActiveCount());
        }
        Assert.assertEquals(4, driver.getConnections().size());
        for (int i = 0; i < count; ++i) {
            connections[i].close();
            Assert.assertEquals(count - i - 1, dataSource.getActiveCount());
        }
        Assert.assertEquals(4, driver.getConnections().size());
        Assert.assertEquals("activeCount not zero", 0, dataSource.getActiveCount());
        dataSource.shrink();
        Assert.assertEquals("activeCount not zero", 0, dataSource.getActiveCount());
        Assert.assertEquals("minIdle not equal physical", dataSource.getMinIdle(), driver.getConnections().size());
    }
}
Also used : MockDriver(com.alibaba.druid.mock.MockDriver) Connection(java.sql.Connection) MockConnection(com.alibaba.druid.mock.MockConnection) DruidDataSource(com.alibaba.druid.pool.DruidDataSource) MockConnection(com.alibaba.druid.mock.MockConnection)

Example 20 with MockDriver

use of com.alibaba.druid.mock.MockDriver in project druid by alibaba.

the class LogFilterTest method test_logFilter_0.

public void test_logFilter_0() throws Exception {
    DataSourceProxyConfig config = new DataSourceProxyConfig();
    config.setRawUrl("jdbc:mock:");
    DataSourceProxyImpl dataSource = new DataSourceProxyImpl(new MockDriver(), config);
    Log4jFilter log4jFilter = new Log4jFilter();
    log4jFilter.init(dataSource);
    config.getFilters().add(log4jFilter);
    setLogDisableAll(log4jFilter, true);
    CommonsLogFilter commonLogFilter = new CommonsLogFilter() {

        @Override
        public boolean isDataSourceLogEnabled() {
            return true;
        }

        @Override
        public boolean isConnectionLogEnabled() {
            return true;
        }

        @Override
        public boolean isStatementLogEnabled() {
            return true;
        }

        @Override
        public boolean isResultSetLogEnabled() {
            return true;
        }

        @Override
        public boolean isResultSetLogErrorEnabled() {
            return true;
        }

        @Override
        public boolean isResultSetNextAfterLogEnabled() {
            return true;
        }
    };
    commonLogFilter.init(dataSource);
    config.getFilters().add(commonLogFilter);
    setLogDisableAll(commonLogFilter, false);
    executeSQL(dataSource);
}
Also used : MockDriver(com.alibaba.druid.mock.MockDriver) CommonsLogFilter(com.alibaba.druid.filter.logging.CommonsLogFilter) DataSourceProxyConfig(com.alibaba.druid.proxy.jdbc.DataSourceProxyConfig) DataSourceProxyImpl(com.alibaba.druid.proxy.jdbc.DataSourceProxyImpl) Log4jFilter(com.alibaba.druid.filter.logging.Log4jFilter)

Aggregations

MockDriver (com.alibaba.druid.mock.MockDriver)60 DruidDataSource (com.alibaba.druid.pool.DruidDataSource)49 Connection (java.sql.Connection)17 SQLException (java.sql.SQLException)13 ResultSet (java.sql.ResultSet)10 Properties (java.util.Properties)9 MockConnection (com.alibaba.druid.mock.MockConnection)8 MockStatementBase (com.alibaba.druid.mock.MockStatementBase)7 MockPreparedStatement (com.alibaba.druid.mock.MockPreparedStatement)5 DataSourceProxyConfig (com.alibaba.druid.proxy.jdbc.DataSourceProxyConfig)5 DataSourceProxyImpl (com.alibaba.druid.proxy.jdbc.DataSourceProxyImpl)5 JdbcStatContext (com.alibaba.druid.stat.JdbcStatContext)5 Log4jFilter (com.alibaba.druid.filter.logging.Log4jFilter)4 CommonsLogFilter (com.alibaba.druid.filter.logging.CommonsLogFilter)3 MockResultSet (com.alibaba.druid.mock.MockResultSet)3 MockStatement (com.alibaba.druid.mock.MockStatement)3 Statement (java.sql.Statement)3 ObjectName (javax.management.ObjectName)3 StatFilter (com.alibaba.druid.filter.stat.StatFilter)2 DruidPooledConnection (com.alibaba.druid.pool.DruidPooledConnection)2