From 816f8ae9095162eeaad72229c082f79be8130ebf Mon Sep 17 00:00:00 2001 From: wenshao Date: Tue, 11 Oct 2011 14:33:07 +0000 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=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@942 b9813039-fb51-4c41-a8b9-e21c2acb5095 --- .../druid/bvt/bug/Bug_for_happyday517_2.java | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 src/test/java/com/alibaba/druid/bvt/bug/Bug_for_happyday517_2.java diff --git a/src/test/java/com/alibaba/druid/bvt/bug/Bug_for_happyday517_2.java b/src/test/java/com/alibaba/druid/bvt/bug/Bug_for_happyday517_2.java new file mode 100644 index 0000000000..7f9fb5725e --- /dev/null +++ b/src/test/java/com/alibaba/druid/bvt/bug/Bug_for_happyday517_2.java @@ -0,0 +1,76 @@ +package com.alibaba.druid.bvt.bug; + +import java.sql.Connection; +import java.sql.DataTruncation; +import java.sql.PreparedStatement; +import java.sql.SQLException; +import java.util.Properties; + +import junit.framework.Assert; +import junit.framework.TestCase; + +import com.alibaba.druid.mock.MockConnection; +import com.alibaba.druid.mock.MockDriver; +import com.alibaba.druid.mock.MockPreparedStatement; +import com.alibaba.druid.pool.DruidDataSource; +import com.alibaba.druid.stat.DruidDataSourceStatManager; + +public class Bug_for_happyday517_2 extends TestCase { + + private DruidDataSource dataSource; + private MockDriver driver; + + final DataTruncation exception = new java.sql.DataTruncation(0, true, true, 0, 0); + + protected void setUp() throws Exception { + + final MockPreparedStatement mockStatement = new MockPreparedStatement(null, null) { + + public boolean execute() throws SQLException { + throw exception; + } + }; + + driver = new MockDriver() { + + public Connection connect(String url, Properties info) throws SQLException { + super.connect(url, info); + return new MockConnection(driver, info) { + + public PreparedStatement prepareStatement(String sql) throws SQLException { + return mockStatement; + } + }; + } + }; + dataSource = new DruidDataSource(); + dataSource.setDriver(driver); + dataSource.setUrl("jdbc:mock:xxx"); + dataSource.setFilters("stat,trace,log4j,encoding"); + + } + + protected void tearDown() throws Exception { + dataSource.close(); + Assert.assertEquals(0, DruidDataSourceStatManager.getInstance().getDataSourceList().size()); + } + + public void test_bug() throws Exception { + Connection conn = dataSource.getConnection(); + + PreparedStatement stmt = conn.prepareStatement("insert into message.dbo.TempSMS(sms) values ('333')"); + + Exception error = null; + try { + stmt.execute(); + } catch (SQLException ex) { + error = ex; + } + + Assert.assertTrue(exception == error); + + stmt.close(); + + conn.close(); + } +}