mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
testcase
This commit is contained in:
@@ -1,283 +1,283 @@
|
||||
/*
|
||||
* Copyright 1999-2011 Alibaba Group Holding Ltd.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.alibaba.druid.bvt.proxy;
|
||||
|
||||
import java.io.Closeable;
|
||||
import java.io.IOException;
|
||||
import java.io.Reader;
|
||||
import java.sql.Connection;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.ResultSetMetaData;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Statement;
|
||||
import java.sql.Types;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
import junit.framework.Assert;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import com.alibaba.druid.mock.MockConnection;
|
||||
import com.alibaba.druid.mock.MockResultSet;
|
||||
import com.alibaba.druid.mock.MockResultSetMetaData;
|
||||
import com.alibaba.druid.mock.MockStatement;
|
||||
import com.alibaba.druid.util.JdbcUtils;
|
||||
|
||||
public class JdbcUtilsTest extends TestCase {
|
||||
|
||||
public void test_print() throws Exception {
|
||||
final AtomicInteger nextCount = new AtomicInteger(2);
|
||||
|
||||
final MockResultSetMetaData rsMeta = new MockResultSetMetaData() {
|
||||
|
||||
private int[] types = new int[] { Types.DATE, Types.BIT, Types.BOOLEAN, Types.TINYINT,
|
||||
|
||||
Types.SMALLINT, Types.INTEGER, Types.CLOB, Types.LONGVARCHAR, Types.OTHER,
|
||||
|
||||
Types.VARCHAR, Types.CHAR, Types.NVARCHAR, Types.NCHAR
|
||||
|
||||
};
|
||||
|
||||
@Override
|
||||
public int getColumnCount() throws SQLException {
|
||||
return types.length;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getColumnType(int column) throws SQLException {
|
||||
return types[column - 1];
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getColumnName(int column) throws SQLException {
|
||||
return "C" + column;
|
||||
}
|
||||
};
|
||||
|
||||
MockResultSet rs = new MockResultSet(null) {
|
||||
|
||||
@Override
|
||||
public boolean next() throws SQLException {
|
||||
return nextCount.getAndDecrement() > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResultSetMetaData getMetaData() throws SQLException {
|
||||
return rsMeta;
|
||||
}
|
||||
|
||||
@Override
|
||||
public java.sql.Date getDate(int columnIndex) throws SQLException {
|
||||
return new java.sql.Date(System.currentTimeMillis());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean wasNull() throws SQLException {
|
||||
if (nextCount.get() == 1) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public Object getObject(int columnIndex) throws SQLException {
|
||||
return null;
|
||||
}
|
||||
};
|
||||
|
||||
JdbcUtils.printResultSet(rs);
|
||||
}
|
||||
|
||||
public void test_close() throws Exception {
|
||||
JdbcUtils.close((Connection) null);
|
||||
JdbcUtils.close((Statement) null);
|
||||
JdbcUtils.close((ResultSet) null);
|
||||
|
||||
JdbcUtils.close(new MockConnection() {
|
||||
|
||||
@Override
|
||||
public void close() throws SQLException {
|
||||
throw new SQLException();
|
||||
}
|
||||
});
|
||||
JdbcUtils.close(new MockStatement(null) {
|
||||
|
||||
@Override
|
||||
public void close() throws SQLException {
|
||||
throw new SQLException();
|
||||
}
|
||||
});
|
||||
JdbcUtils.close(new MockResultSet(null) {
|
||||
|
||||
@Override
|
||||
public void close() throws SQLException {
|
||||
throw new SQLException();
|
||||
}
|
||||
});
|
||||
JdbcUtils.close(new Closeable() {
|
||||
|
||||
@Override
|
||||
public void close() throws IOException {
|
||||
throw new IOException();
|
||||
}
|
||||
});
|
||||
JdbcUtils.close(new Closeable() {
|
||||
|
||||
@Override
|
||||
public void close() throws IOException {
|
||||
}
|
||||
});
|
||||
JdbcUtils.close((Closeable) null);
|
||||
|
||||
new JdbcUtils();
|
||||
}
|
||||
|
||||
public void test_getTypeName() {
|
||||
JdbcUtils.getTypeName(Types.ARRAY);
|
||||
JdbcUtils.getTypeName(Types.BIGINT);
|
||||
JdbcUtils.getTypeName(Types.BINARY);
|
||||
JdbcUtils.getTypeName(Types.BIT);
|
||||
JdbcUtils.getTypeName(Types.BLOB);
|
||||
JdbcUtils.getTypeName(Types.BOOLEAN);
|
||||
JdbcUtils.getTypeName(Types.CHAR);
|
||||
JdbcUtils.getTypeName(Types.CLOB);
|
||||
JdbcUtils.getTypeName(Types.DATALINK);
|
||||
JdbcUtils.getTypeName(Types.DATE);
|
||||
JdbcUtils.getTypeName(Types.DECIMAL);
|
||||
JdbcUtils.getTypeName(Types.DISTINCT);
|
||||
JdbcUtils.getTypeName(Types.DOUBLE);
|
||||
JdbcUtils.getTypeName(Types.FLOAT);
|
||||
JdbcUtils.getTypeName(Types.INTEGER);
|
||||
JdbcUtils.getTypeName(Types.JAVA_OBJECT);
|
||||
JdbcUtils.getTypeName(Types.LONGNVARCHAR);
|
||||
JdbcUtils.getTypeName(Types.LONGVARBINARY);
|
||||
JdbcUtils.getTypeName(Types.NCHAR);
|
||||
JdbcUtils.getTypeName(Types.NCLOB);
|
||||
JdbcUtils.getTypeName(Types.NULL);
|
||||
JdbcUtils.getTypeName(Types.NUMERIC);
|
||||
JdbcUtils.getTypeName(Types.NVARCHAR);
|
||||
JdbcUtils.getTypeName(Types.REAL);
|
||||
JdbcUtils.getTypeName(Types.REF);
|
||||
JdbcUtils.getTypeName(Types.ROWID);
|
||||
JdbcUtils.getTypeName(Types.SMALLINT);
|
||||
JdbcUtils.getTypeName(Types.SQLXML);
|
||||
JdbcUtils.getTypeName(Types.STRUCT);
|
||||
JdbcUtils.getTypeName(Types.TIME);
|
||||
JdbcUtils.getTypeName(Types.TIMESTAMP);
|
||||
JdbcUtils.getTypeName(Types.TINYINT);
|
||||
JdbcUtils.getTypeName(Types.VARBINARY);
|
||||
JdbcUtils.getTypeName(Types.VARCHAR);
|
||||
JdbcUtils.getTypeName(Types.OTHER);
|
||||
}
|
||||
|
||||
public void test_read() throws Exception {
|
||||
{
|
||||
Exception error = null;
|
||||
try {
|
||||
JdbcUtils.read(new Reader() {
|
||||
|
||||
@Override
|
||||
public int read(char[] cbuf, int off, int len) throws IOException {
|
||||
throw new IOException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() throws IOException {
|
||||
throw new IOException();
|
||||
}
|
||||
|
||||
});
|
||||
} catch (RuntimeException ex) {
|
||||
error = ex;
|
||||
}
|
||||
Assert.assertNotNull(error);
|
||||
}
|
||||
{
|
||||
Exception error = null;
|
||||
try {
|
||||
JdbcUtils.read(new Reader() {
|
||||
|
||||
@Override
|
||||
public int read(char[] cbuf, int off, int len) throws IOException {
|
||||
throw new IOException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() throws IOException {
|
||||
throw new IOException();
|
||||
}
|
||||
|
||||
}, 0);
|
||||
} catch (RuntimeException ex) {
|
||||
error = ex;
|
||||
}
|
||||
Assert.assertNotNull(error);
|
||||
}
|
||||
|
||||
{
|
||||
String text = JdbcUtils.read(new Reader() {
|
||||
|
||||
@Override
|
||||
public int read(char[] cbuf, int off, int len) throws IOException {
|
||||
return -1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() throws IOException {
|
||||
throw new IOException();
|
||||
}
|
||||
|
||||
}, 1);
|
||||
Assert.assertEquals("", text);
|
||||
}
|
||||
{
|
||||
String text = JdbcUtils.read(new Reader() {
|
||||
|
||||
@Override
|
||||
public int read(char[] cbuf, int off, int len) throws IOException {
|
||||
for (int i = off; i < len; ++i) {
|
||||
cbuf[i] = 'A';
|
||||
}
|
||||
return len;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() throws IOException {
|
||||
throw new IOException();
|
||||
}
|
||||
|
||||
}, 2);
|
||||
Assert.assertEquals("AA", text);
|
||||
}
|
||||
{
|
||||
Reader reader = new Reader() {
|
||||
|
||||
@Override
|
||||
public int read(char[] cbuf, int off, int len) throws IOException {
|
||||
cbuf[off] = 'A';
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() throws IOException {
|
||||
throw new IOException();
|
||||
}
|
||||
|
||||
};
|
||||
String text = JdbcUtils.read(reader, 2);
|
||||
Assert.assertEquals("AA", text);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
/*
|
||||
* Copyright 1999-2011 Alibaba Group Holding Ltd.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.alibaba.druid.bvt.proxy;
|
||||
|
||||
import java.io.Closeable;
|
||||
import java.io.IOException;
|
||||
import java.io.Reader;
|
||||
import java.sql.Connection;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.ResultSetMetaData;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Statement;
|
||||
import java.sql.Types;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
import junit.framework.Assert;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import com.alibaba.druid.mock.MockConnection;
|
||||
import com.alibaba.druid.mock.MockResultSet;
|
||||
import com.alibaba.druid.mock.MockResultSetMetaData;
|
||||
import com.alibaba.druid.mock.MockStatement;
|
||||
import com.alibaba.druid.util.JdbcUtils;
|
||||
|
||||
public class JdbcUtilsTest extends TestCase {
|
||||
|
||||
public void test_print() throws Exception {
|
||||
final AtomicInteger nextCount = new AtomicInteger(2);
|
||||
|
||||
final MockResultSetMetaData rsMeta = new MockResultSetMetaData() {
|
||||
|
||||
private int[] types = new int[] { Types.DATE, Types.BIT, Types.BOOLEAN, Types.TINYINT,
|
||||
|
||||
Types.SMALLINT, Types.INTEGER, Types.CLOB, Types.LONGVARCHAR, Types.OTHER,
|
||||
|
||||
Types.VARCHAR, Types.CHAR, Types.NVARCHAR, Types.NCHAR
|
||||
|
||||
};
|
||||
|
||||
@Override
|
||||
public int getColumnCount() throws SQLException {
|
||||
return types.length;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getColumnType(int column) throws SQLException {
|
||||
return types[column - 1];
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getColumnName(int column) throws SQLException {
|
||||
return "C" + column;
|
||||
}
|
||||
};
|
||||
|
||||
MockResultSet rs = new MockResultSet(null) {
|
||||
|
||||
@Override
|
||||
public boolean next() throws SQLException {
|
||||
return nextCount.getAndDecrement() > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResultSetMetaData getMetaData() throws SQLException {
|
||||
return rsMeta;
|
||||
}
|
||||
|
||||
@Override
|
||||
public java.sql.Date getDate(int columnIndex) throws SQLException {
|
||||
return new java.sql.Date(System.currentTimeMillis());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean wasNull() throws SQLException {
|
||||
if (nextCount.get() == 1) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public Object getObject(int columnIndex) throws SQLException {
|
||||
return null;
|
||||
}
|
||||
};
|
||||
|
||||
JdbcUtils.printResultSet(rs);
|
||||
}
|
||||
|
||||
public void test_close() throws Exception {
|
||||
JdbcUtils.close((Connection) null);
|
||||
JdbcUtils.close((Statement) null);
|
||||
JdbcUtils.close((ResultSet) null);
|
||||
|
||||
JdbcUtils.close(new MockConnection() {
|
||||
|
||||
@Override
|
||||
public void close() throws SQLException {
|
||||
throw new SQLException();
|
||||
}
|
||||
});
|
||||
JdbcUtils.close(new MockStatement(null) {
|
||||
|
||||
@Override
|
||||
public void close() throws SQLException {
|
||||
throw new SQLException();
|
||||
}
|
||||
});
|
||||
JdbcUtils.close(new MockResultSet(null) {
|
||||
|
||||
@Override
|
||||
public void close() throws SQLException {
|
||||
throw new SQLException();
|
||||
}
|
||||
});
|
||||
JdbcUtils.close(new Closeable() {
|
||||
|
||||
@Override
|
||||
public void close() throws IOException {
|
||||
throw new IOException();
|
||||
}
|
||||
});
|
||||
JdbcUtils.close(new Closeable() {
|
||||
|
||||
@Override
|
||||
public void close() throws IOException {
|
||||
}
|
||||
});
|
||||
JdbcUtils.close((Closeable) null);
|
||||
|
||||
new JdbcUtils();
|
||||
}
|
||||
|
||||
public void test_getTypeName() {
|
||||
JdbcUtils.getTypeName(Types.ARRAY);
|
||||
JdbcUtils.getTypeName(Types.BIGINT);
|
||||
JdbcUtils.getTypeName(Types.BINARY);
|
||||
JdbcUtils.getTypeName(Types.BIT);
|
||||
JdbcUtils.getTypeName(Types.BLOB);
|
||||
JdbcUtils.getTypeName(Types.BOOLEAN);
|
||||
JdbcUtils.getTypeName(Types.CHAR);
|
||||
JdbcUtils.getTypeName(Types.CLOB);
|
||||
JdbcUtils.getTypeName(Types.DATALINK);
|
||||
JdbcUtils.getTypeName(Types.DATE);
|
||||
JdbcUtils.getTypeName(Types.DECIMAL);
|
||||
JdbcUtils.getTypeName(Types.DISTINCT);
|
||||
JdbcUtils.getTypeName(Types.DOUBLE);
|
||||
JdbcUtils.getTypeName(Types.FLOAT);
|
||||
JdbcUtils.getTypeName(Types.INTEGER);
|
||||
JdbcUtils.getTypeName(Types.JAVA_OBJECT);
|
||||
JdbcUtils.getTypeName(Types.LONGNVARCHAR);
|
||||
JdbcUtils.getTypeName(Types.LONGVARBINARY);
|
||||
JdbcUtils.getTypeName(Types.NCHAR);
|
||||
JdbcUtils.getTypeName(Types.NCLOB);
|
||||
JdbcUtils.getTypeName(Types.NULL);
|
||||
JdbcUtils.getTypeName(Types.NUMERIC);
|
||||
JdbcUtils.getTypeName(Types.NVARCHAR);
|
||||
JdbcUtils.getTypeName(Types.REAL);
|
||||
JdbcUtils.getTypeName(Types.REF);
|
||||
JdbcUtils.getTypeName(Types.ROWID);
|
||||
JdbcUtils.getTypeName(Types.SMALLINT);
|
||||
JdbcUtils.getTypeName(Types.SQLXML);
|
||||
JdbcUtils.getTypeName(Types.STRUCT);
|
||||
JdbcUtils.getTypeName(Types.TIME);
|
||||
JdbcUtils.getTypeName(Types.TIMESTAMP);
|
||||
JdbcUtils.getTypeName(Types.TINYINT);
|
||||
JdbcUtils.getTypeName(Types.VARBINARY);
|
||||
JdbcUtils.getTypeName(Types.VARCHAR);
|
||||
JdbcUtils.getTypeName(Types.OTHER);
|
||||
}
|
||||
|
||||
public void test_read() throws Exception {
|
||||
{
|
||||
Exception error = null;
|
||||
try {
|
||||
JdbcUtils.read(new Reader() {
|
||||
|
||||
@Override
|
||||
public int read(char[] cbuf, int off, int len) throws IOException {
|
||||
throw new IOException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() throws IOException {
|
||||
throw new IOException();
|
||||
}
|
||||
|
||||
});
|
||||
} catch (RuntimeException ex) {
|
||||
error = ex;
|
||||
}
|
||||
Assert.assertNotNull(error);
|
||||
}
|
||||
{
|
||||
Exception error = null;
|
||||
try {
|
||||
JdbcUtils.read(new Reader() {
|
||||
|
||||
@Override
|
||||
public int read(char[] cbuf, int off, int len) throws IOException {
|
||||
throw new IOException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() throws IOException {
|
||||
throw new IOException();
|
||||
}
|
||||
|
||||
}, 0);
|
||||
} catch (RuntimeException ex) {
|
||||
error = ex;
|
||||
}
|
||||
Assert.assertNotNull(error);
|
||||
}
|
||||
|
||||
{
|
||||
String text = JdbcUtils.read(new Reader() {
|
||||
|
||||
@Override
|
||||
public int read(char[] cbuf, int off, int len) throws IOException {
|
||||
return -1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() throws IOException {
|
||||
throw new IOException();
|
||||
}
|
||||
|
||||
}, 1);
|
||||
Assert.assertEquals("", text);
|
||||
}
|
||||
{
|
||||
String text = JdbcUtils.read(new Reader() {
|
||||
|
||||
@Override
|
||||
public int read(char[] cbuf, int off, int len) throws IOException {
|
||||
for (int i = off; i < len; ++i) {
|
||||
cbuf[i] = 'A';
|
||||
}
|
||||
return len;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() throws IOException {
|
||||
throw new IOException();
|
||||
}
|
||||
|
||||
}, 2);
|
||||
Assert.assertEquals("AA", text);
|
||||
}
|
||||
{
|
||||
Reader reader = new Reader() {
|
||||
|
||||
@Override
|
||||
public int read(char[] cbuf, int off, int len) throws IOException {
|
||||
cbuf[off] = 'A';
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() throws IOException {
|
||||
throw new IOException();
|
||||
}
|
||||
|
||||
};
|
||||
String text = JdbcUtils.read(reader, 2);
|
||||
Assert.assertEquals("AA", text);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user