From fde1c030293e8cb214a24dcdb42b3fb0df1d3573 Mon Sep 17 00:00:00 2001 From: wenshao Date: Thu, 15 Sep 2011 08:05:07 +0000 Subject: [PATCH] =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://code.alibabatech.com/svn/druid/trunk@763 b9813039-fb51-4c41-a8b9-e21c2acb5095 --- .../bvt/pool/basic/TestDataSourceBasic.java | 6 ++ .../bvt/pool/basic/TestDataSourceBasic2.java | 76 +++++++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 src/test/java/com/alibaba/druid/bvt/pool/basic/TestDataSourceBasic2.java diff --git a/src/test/java/com/alibaba/druid/bvt/pool/basic/TestDataSourceBasic.java b/src/test/java/com/alibaba/druid/bvt/pool/basic/TestDataSourceBasic.java index a95e74081a..f00313cb90 100644 --- a/src/test/java/com/alibaba/druid/bvt/pool/basic/TestDataSourceBasic.java +++ b/src/test/java/com/alibaba/druid/bvt/pool/basic/TestDataSourceBasic.java @@ -9,6 +9,7 @@ import junit.framework.TestCase; import com.alibaba.druid.mock.MockDriver; import com.alibaba.druid.pool.DruidDataSource; import com.alibaba.druid.pool.PoolableConnection; +import com.alibaba.druid.pool.vendor.NullExceptionSorter; import com.alibaba.druid.stat.DruidDataSourceStatManager; public class TestDataSourceBasic extends TestCase { @@ -35,6 +36,11 @@ public class TestDataSourceBasic extends TestCase { dataSource.setValidationQuery("SELECT 1"); dataSource.setFilters("stat"); dataSource.setRemoveAbandoned(true); + dataSource.setExceptionSorterClassName(null); + + Assert.assertTrue(dataSource.getExceptionSoter() instanceof NullExceptionSorter); + dataSource.setExceptionSorterClassName(""); + Assert.assertTrue(dataSource.getExceptionSoter() instanceof NullExceptionSorter); } protected void tearDown() throws Exception { diff --git a/src/test/java/com/alibaba/druid/bvt/pool/basic/TestDataSourceBasic2.java b/src/test/java/com/alibaba/druid/bvt/pool/basic/TestDataSourceBasic2.java new file mode 100644 index 0000000000..e6d6da0d76 --- /dev/null +++ b/src/test/java/com/alibaba/druid/bvt/pool/basic/TestDataSourceBasic2.java @@ -0,0 +1,76 @@ +package com.alibaba.druid.bvt.pool.basic; + +import java.sql.Connection; +import java.sql.Statement; + +import junit.framework.Assert; +import junit.framework.TestCase; + +import com.alibaba.druid.mock.MockDriver; +import com.alibaba.druid.pool.DruidDataSource; +import com.alibaba.druid.pool.PoolableConnection; +import com.alibaba.druid.pool.vendor.NullExceptionSorter; +import com.alibaba.druid.stat.DruidDataSourceStatManager; + +public class TestDataSourceBasic2 extends TestCase { + + private MockDriver driver; + private DruidDataSource dataSource; + + protected void setUp() throws Exception { + Assert.assertEquals(0, DruidDataSourceStatManager.getInstance().getDataSourceList().size()); + + 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); + dataSource.setMinEvictableIdleTimeMillis(300 * 1000); // 300 / 10 + dataSource.setTimeBetweenEvictionRunsMillis(180 * 1000); // 180 / 10 + dataSource.setTestWhileIdle(true); + dataSource.setTestOnBorrow(false); + dataSource.setValidationQuery("SELECT 1"); + dataSource.setFilters("stat"); + dataSource.setRemoveAbandoned(true); + } + + protected void tearDown() throws Exception { + Assert.assertEquals(true, dataSource.getCreateTimespanNano() > 0); + dataSource.close(); + Assert.assertEquals(0, DruidDataSourceStatManager.getInstance().getDataSourceList().size()); + } + + public void test_prepare() throws Exception { + Connection conn = dataSource.getConnection(); + + { + PoolableConnection wrap = conn.unwrap(PoolableConnection.class); + Assert.assertTrue(conn.isWrapperFor(PoolableConnection.class)); + Assert.assertNotNull(wrap); + } + + { + Statement wrap = conn.unwrap(Statement.class); + Assert.assertTrue(!conn.isWrapperFor(Statement.class)); + Assert.assertNull(wrap); + } + + conn.setAutoCommit(false); + conn.setAutoCommit(false); + Assert.assertEquals(1, dataSource.getActiveConnectionStackTrace().size()); + Assert.assertEquals(1, dataSource.getActiveConnections().size()); + conn.rollback(); + conn.close(); + + Assert.assertEquals(1, dataSource.getStartTransactionCount()); + Assert.assertEquals(0, dataSource.getCommitCount()); + Assert.assertEquals(1, dataSource.getRollbackCount()); + + Assert.assertEquals(0, dataSource.getActiveConnectionStackTrace().size()); + Assert.assertEquals(0, dataSource.getActiveConnections().size()); + } +}