use of com.alibaba.druid.mock.MockNClob in project druid by alibaba.
the class StatFilterBuildSlowParameterTest method test_buildSlowSql.
public void test_buildSlowSql() throws Exception {
long currentMillis = System.currentTimeMillis();
String sql = "select ?, ?, ?, ?, ?";
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date(System.currentTimeMillis());
String dateText = dateFormat.format(date);
{
Connection conn = dataSource.getConnection();
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setBoolean(1, true);
stmt.setInt(2, 123);
stmt.setLong(3, 10001);
stmt.setTimestamp(4, new java.sql.Timestamp(currentMillis));
stmt.setDate(5, new java.sql.Date(currentMillis));
ResultSet rs = stmt.executeQuery();
rs.close();
stmt.close();
conn.close();
// //////
JdbcSqlStat sqlStat = dataSource.getDataSourceStat().getSqlStat(sql);
Assert.assertNotNull(sqlStat);
String slowParameters = sqlStat.getLastSlowParameters();
Assert.assertNotNull(slowParameters);
List<Object> parameters = (List<Object>) JSONUtils.parse(slowParameters);
Assert.assertEquals(5, parameters.size());
Assert.assertEquals(true, parameters.get(0));
Assert.assertEquals(123, parameters.get(1));
Assert.assertEquals(10001, parameters.get(2));
Assert.assertEquals(dateText, parameters.get(3));
Assert.assertEquals(dateText, parameters.get(4));
}
currentMillis = System.currentTimeMillis();
date = new Date(System.currentTimeMillis());
dateText = dateFormat.format(date);
{
Connection conn = dataSource.getConnection();
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setBoolean(1, false);
stmt.setInt(2, 234);
stmt.setLong(3, 10002);
stmt.setTimestamp(4, new java.sql.Timestamp(currentMillis));
stmt.setDate(5, new java.sql.Date(currentMillis));
ResultSet rs = stmt.executeQuery();
rs.close();
stmt.close();
conn.close();
// //////
JdbcSqlStat sqlStat = dataSource.getDataSourceStat().getSqlStat(sql);
Assert.assertNotNull(sqlStat);
String slowParameters = sqlStat.getLastSlowParameters();
Assert.assertNotNull(slowParameters);
List<Object> parameters = (List<Object>) JSONUtils.parse(slowParameters);
Assert.assertEquals(5, parameters.size());
Assert.assertEquals(false, parameters.get(0));
Assert.assertEquals(234, parameters.get(1));
Assert.assertEquals(10002, parameters.get(2));
Assert.assertEquals(dateText, parameters.get(3));
Assert.assertEquals(dateText, parameters.get(4));
}
{
StringBuilder buf = new StringBuilder();
for (int i = 0; i < 10; ++i) {
buf.append("abcdefghijklmnABCDEFGHIJKLMN1234567890!@#$%^&*(");
}
Connection conn = dataSource.getConnection();
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setNull(1, Types.VARCHAR);
stmt.setString(2, buf.toString());
stmt.setClob(3, new MockClob());
stmt.setNClob(4, new MockNClob());
stmt.setBlob(5, new MockBlob());
ResultSet rs = stmt.executeQuery();
rs.close();
stmt.close();
conn.close();
// //////
JdbcSqlStat sqlStat = dataSource.getDataSourceStat().getSqlStat(sql);
Assert.assertNotNull(sqlStat);
String slowParameters = sqlStat.getLastSlowParameters();
Assert.assertNotNull(slowParameters);
List<Object> parameters = (List<Object>) JSONUtils.parse(slowParameters);
Assert.assertEquals(5, parameters.size());
Assert.assertEquals(null, parameters.get(0));
Assert.assertEquals(buf.substring(0, 97) + "...", parameters.get(1));
Assert.assertEquals("<Clob>", parameters.get(2));
Assert.assertEquals("<NClob>", parameters.get(3));
Assert.assertEquals("<Blob>", parameters.get(4));
}
{
StringBuilder buf = new StringBuilder();
for (int i = 0; i < 10; ++i) {
buf.append("ä¸å›½abcdefghijklmnABCDEFGHIJKLMN1234567890!@#$%^&*(");
}
Connection conn = dataSource.getConnection();
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setBinaryStream(1, new ByteInputStream(new byte[0]));
stmt.setString(2, buf.toString());
stmt.setTime(3, new Time(currentMillis));
stmt.setBigDecimal(4, new BigDecimal("56789.123"));
stmt.setRowId(5, new MockRowId());
ResultSet rs = stmt.executeQuery();
rs.close();
stmt.close();
conn.close();
// //////
JdbcSqlStat sqlStat = dataSource.getDataSourceStat().getSqlStat(sql);
Assert.assertNotNull(sqlStat);
String slowParameters = sqlStat.getLastSlowParameters();
Assert.assertNotNull(slowParameters);
List<Object> parameters = (List<Object>) JSONUtils.parse(slowParameters);
Assert.assertEquals(5, parameters.size());
Assert.assertEquals("<InputStream>", parameters.get(0));
Assert.assertEquals(buf.substring(0, 97) + "...", parameters.get(1));
Assert.assertEquals(dateText, parameters.get(2));
Assert.assertEquals(56789.123, parameters.get(3));
Assert.assertEquals("<com.alibaba.druid.mock.MockRowId>", parameters.get(4));
}
}
use of com.alibaba.druid.mock.MockNClob in project druid by alibaba.
the class FilterChainTest_NClob method setUp.
protected void setUp() throws Exception {
dataSource = new DruidDataSource();
ConnectionProxyImpl conn = new ConnectionProxyImpl(dataSource, null, new Properties(), 0);
statement = new StatementProxyImpl(conn, null, 1);
mockResultSet = new MockResultSet(null) {
public Object getObject(int columnIndex) throws SQLException {
invokeCount++;
return new MockNClob();
}
};
}
use of com.alibaba.druid.mock.MockNClob in project druid by alibaba.
the class FilterChainImplTest method test_unwrap_6.
public void test_unwrap_6() throws Exception {
Connection conn = dataSource.getConnection();
Assert.assertTrue(new FilterChainImpl(dataSource).wrap((ConnectionProxy) dataSource.getConnection().getConnection(), new MockNClob()) instanceof NClob);
conn.close();
}
use of com.alibaba.druid.mock.MockNClob in project druid by alibaba.
the class FilterChainImplTest method test_unwrap_8.
public void test_unwrap_8() throws Exception {
Connection conn = dataSource.getConnection();
Assert.assertTrue(new FilterChainImpl(dataSource).wrap((ConnectionProxy) dataSource.getConnection().getConnection(), (Clob) new MockNClob()) instanceof NClob);
conn.close();
}
use of com.alibaba.druid.mock.MockNClob in project druid by alibaba.
the class FilterChainTest_NClob_2 method setUp.
protected void setUp() throws Exception {
dataSource = new DruidDataSource();
MockCallableStatement mockStmt = new MockCallableStatement(null, "") {
@Override
public Object getObject(int parameterIndex) throws SQLException {
invokeCount++;
return new MockNClob();
}
};
statement = new CallableStatementProxyImpl(new ConnectionProxyImpl(null, null, null, 0), mockStmt, "", 1);
}
Aggregations