From 7cc94a8ad49b08a4f71fa43cd002b1aa6a921b50 Mon Sep 17 00:00:00 2001 From: wenshao Date: Mon, 16 May 2011 03:07:18 +0000 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=85=85=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@97 b9813039-fb51-4c41-a8b9-e21c2acb5095 --- .../com/alibaba/druid/bvt/pool/Case2.java | 55 ++++++++++++++++++- 1 file changed, 54 insertions(+), 1 deletion(-) diff --git a/src/test/java/com/alibaba/druid/bvt/pool/Case2.java b/src/test/java/com/alibaba/druid/bvt/pool/Case2.java index 56ff4dbd00..1998d739c9 100644 --- a/src/test/java/com/alibaba/druid/bvt/pool/Case2.java +++ b/src/test/java/com/alibaba/druid/bvt/pool/Case2.java @@ -15,11 +15,64 @@ */ package com.alibaba.druid.bvt.pool; +import java.sql.Connection; +import java.util.Properties; + +import junit.framework.Assert; +import junit.framework.TestCase; + +import com.alibaba.druid.pool.DruidDataSource; +import com.alibaba.druid.util.JMXUtils; + /** * 类Case2.java的实现描述:TODO 类实现描述 * * @author admin 2011-5-4 下午02:45:21 */ -public class Case2 { +public class Case2 extends TestCase { + + public void test_singleThread() throws Exception { + + Class.forName("com.alibaba.druid.mock.MockDriver"); + + Properties properties = new Properties(); + properties.put("maxActive", "100"); + properties.put("maxIdle", "30"); + properties.put("maxWait", "10000"); + properties.put("url", "jdbc:derby:memory:tomcat-jndi;create=true"); + properties.put("filters", "stat"); + properties.put("validationQuery", ""); + final DruidDataSource dataSource = (DruidDataSource) com.alibaba.druid.pool.DruidDataSourceFactory.createDataSource(properties); + JMXUtils.register("com.alibaba.druid:type=DruidDataSource", dataSource); + + final int LOOP_COUNT = 1000 * 1000; + + Assert.assertEquals(0, dataSource.getCreateCount()); + Assert.assertEquals(0, dataSource.getDestroyCount()); + Assert.assertEquals(0, dataSource.getPoolingSize()); + + for (int i = 0; i < LOOP_COUNT; ++i) { + Connection conn = dataSource.getConnection(); + + Assert.assertEquals(i + 1, dataSource.getConnectCount()); + Assert.assertEquals(1, dataSource.getActiveCount()); + Assert.assertEquals(i, dataSource.getCloseCount()); + Assert.assertEquals(0, dataSource.getConnectErrorCount()); + Assert.assertEquals(i, dataSource.getRecycleCount()); + + conn.close(); + + Assert.assertEquals(i + 1, dataSource.getConnectCount()); + Assert.assertEquals(0, dataSource.getActiveCount()); + Assert.assertEquals(i + 1, dataSource.getCloseCount()); + Assert.assertEquals(0, dataSource.getConnectErrorCount()); + Assert.assertEquals(i + 1, dataSource.getRecycleCount()); + } + + Assert.assertEquals(0, dataSource.getDestroyCount()); + + dataSource.close(); + Assert.assertEquals(dataSource.getCreateCount(), dataSource.getDestroyCount()); + } }