From 96196a0ccdea75b80c2cc25b7380b3a6459f8aa5 Mon Sep 17 00:00:00 2001 From: wenshao Date: Tue, 28 Aug 2012 10:48:06 +0800 Subject: [PATCH 1/3] add DruidDataSourceFactory.getObjectInstance() testcase, test null branche --- .../druid/bvt/pool/DruidDataSourceFactoryTest1.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/test/java/com/alibaba/druid/bvt/pool/DruidDataSourceFactoryTest1.java b/src/test/java/com/alibaba/druid/bvt/pool/DruidDataSourceFactoryTest1.java index fa6a574fae..41508b1d54 100644 --- a/src/test/java/com/alibaba/druid/bvt/pool/DruidDataSourceFactoryTest1.java +++ b/src/test/java/com/alibaba/druid/bvt/pool/DruidDataSourceFactoryTest1.java @@ -160,4 +160,12 @@ public class DruidDataSourceFactoryTest1 extends TestCase { JdbcUtils.close(dataSource); } } + + public void test_getObjectInstance() throws Exception { + Assert.assertNull(new DruidDataSourceFactory().getObjectInstance(null, null, null, null)); + } + + public void test_getObjectInstance_1() throws Exception { + Assert.assertNull(new DruidDataSourceFactory().getObjectInstance(new Object(), null, null, null)); + } } From d9c286e0fb63912fe47ef4e6eeac76c64e712171 Mon Sep 17 00:00:00 2001 From: wenshao Date: Tue, 28 Aug 2012 11:06:45 +0800 Subject: [PATCH 2/3] add DruidConnectionHolder testcase & bug fixed --- .../java/com/alibaba/druid/pool/DruidConnectionHolder.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/alibaba/druid/pool/DruidConnectionHolder.java b/src/main/java/com/alibaba/druid/pool/DruidConnectionHolder.java index 035d52fdf6..46088b0fd2 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidConnectionHolder.java +++ b/src/main/java/com/alibaba/druid/pool/DruidConnectionHolder.java @@ -215,10 +215,9 @@ public final class DruidConnectionHolder { buf.append("\""); } - PreparedStatementPool statmentPool = this.getStatementPool(); - if (statmentPool != null && statmentPool.getMap().size() > 0) { + if (statementPool != null && statementPool.getMap().size() > 0) { buf.append("\", CachedStatementCount:"); - buf.append(this.getStatementPool().getMap().size()); + buf.append(statementPool.getMap().size()); } buf.append("}"); From 5ddea980c37056f291fac00b3abff8f5dc1bb017 Mon Sep 17 00:00:00 2001 From: wenshao Date: Tue, 28 Aug 2012 11:07:46 +0800 Subject: [PATCH 3/3] add DruidConnectionHolder testcase & bug fixed --- .../bvt/pool/DruidConnectionHolderTest4.java | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 src/test/java/com/alibaba/druid/bvt/pool/DruidConnectionHolderTest4.java diff --git a/src/test/java/com/alibaba/druid/bvt/pool/DruidConnectionHolderTest4.java b/src/test/java/com/alibaba/druid/bvt/pool/DruidConnectionHolderTest4.java new file mode 100644 index 0000000000..fefe89d08b --- /dev/null +++ b/src/test/java/com/alibaba/druid/bvt/pool/DruidConnectionHolderTest4.java @@ -0,0 +1,59 @@ +package com.alibaba.druid.bvt.pool; + +import java.lang.reflect.Field; +import java.sql.PreparedStatement; + +import junit.framework.TestCase; + +import org.junit.Assert; + +import com.alibaba.druid.pool.DruidConnectionHolder; +import com.alibaba.druid.pool.DruidDataSource; +import com.alibaba.druid.pool.DruidPooledConnection; + +public class DruidConnectionHolderTest4 extends TestCase { + + private DruidDataSource dataSource; + + protected void setUp() throws Exception { + dataSource = new DruidDataSource(); + dataSource.setUrl("jdbc:mock:xxx"); + dataSource.setTestOnBorrow(false); + dataSource.setPoolPreparedStatements(true); + + } + + protected void tearDown() throws Exception { + dataSource.close(); + } + + public void test_toString() throws Exception { + DruidPooledConnection conn = dataSource.getConnection(); + + DruidConnectionHolder holder = conn.getConnectionHolder(); + + Field field = DruidConnectionHolder.class.getDeclaredField("statementPool"); + field.setAccessible(true); + Assert.assertNull(field.get(holder)); + + holder.toString(); + + Assert.assertNull(field.get(holder)); + + holder.getStatementPool(); + + Assert.assertNotNull(field.get(holder)); + + holder.toString(); + + PreparedStatement stmt = conn.prepareStatement("select 1"); + stmt.execute(); + stmt.close(); + + conn.close(); + + Assert.assertEquals(1, holder.getStatementPool().size()); + + holder.toString(); + } +}