📄 testbase.java
字号:
/* * TestBase.java * * Created on 8. September 2001, 13:34 */package net.sourceforge.jtds.test;import java.io.*;import java.sql.*;import java.util.*;import junit.framework.TestCase;/** * @author builder * @version $Id: TestBase.java,v 1.20 2004/12/10 13:17:30 alin_sinpalean Exp $ */public abstract class TestBase extends TestCase { private static final String CONNECTION_PROPERTIES = "conf/connection.properties"; public static final Properties props = loadProperties(CONNECTION_PROPERTIES); Connection con; public TestBase(String name) { super(name); } public void setUp() throws Exception { super.setUp(); connect(); } public void tearDown() throws Exception { disconnect(); super.tearDown(); } public Connection getConnection() throws Exception { Class.forName(props.getProperty("driver")); String url = props.getProperty("url"); Connection con = DriverManager.getConnection(url, props);// showWarnings(con.getWarnings()); initLanguage(con); return con; } public void showWarnings(SQLWarning w) { while (w != null) { System.out.println(w.getMessage()); w = w.getNextWarning(); } } private void disconnect() throws Exception { if (con != null) { con.close(); con = null; } } protected void connect() throws Exception { disconnect(); con = getConnection(); } public void dump(ResultSet rs) throws SQLException { ResultSetMetaData rsm = rs.getMetaData(); int cols = rsm.getColumnCount(); for (int i = 1; i <= cols; i++) { if (i > 1) { System.out.print(", "); } System.out.print(rsm.getColumnName(i)); } System.out.println(); while (rs.next()) { dumpRow(rs); } } public void dumpRow(ResultSet rs) throws SQLException { ResultSetMetaData rsm = rs.getMetaData(); int cols = rsm.getColumnCount(); for (int i = 1; i <= cols; i++) { if (i > 1) { System.out.print(", "); } System.out.print(rs.getObject(i)); } System.out.println(); } private void initLanguage(Connection con) throws SQLException { Statement stmt = con.createStatement(); stmt.executeUpdate("set LANGUAGE 'us_english'"); stmt.close(); } private static Properties loadProperties(String fileName) { File propFile = new File(fileName); if (!propFile.exists()) { fail("Connection properties not found (" + propFile + ")."); } try { Properties props = new Properties(); props.load(new FileInputStream(propFile)); return props; } catch (IOException e) { throw new RuntimeException(e.getMessage()); } } protected void makeTestTables(Statement stmt) throws SQLException { String sql = "CREATE TABLE #test (" + " f_int INT," + " f_varchar VARCHAR(255))"; stmt.execute(sql); } public void makeObjects(Statement stmt, int count) throws SQLException { stmt.execute("TRUNCATE TABLE #test"); for (int i = 0; i < count; i++) { String sql = "INSERT INTO #test(f_int, f_varchar)" + " VALUES (" + i + ", 'Row " + i + "')"; stmt.execute(sql); } } public void compareInputStreams(InputStream is1, InputStream is2) throws IOException { try { if (is1 == null && is2 == null) { return; } else if (is1 == null) { fail("is1 == null && is2 != null"); return; } else if (is2 == null) { fail("is1 != null && is2 == null"); return; } long count = 0; int res1 = 0, res2 = 0; byte buf1[] = new byte[1024], buf2[] = new byte[1024]; while (res1 != 0 || (res1 = is1.read(buf1)) != -1) { if (res2 == 0) { res2 = is2.read(buf2); } if (res2 == -1) { fail("stream 2 EOF at: " + count); } int min = Math.min(res1, res2); for (int i = 0; i < min; i++) { // Do the check first rather than using assertTrue() // assertTrue() would create a String at each iteration if (buf1[i] != buf2[i]) { fail("stream 1 value [" + buf1[i] + "] differs from stream 2 value [" + buf2[i] + "] at: " + (count + i)); } } count += min; if (res1 != min) { System.arraycopy(buf1, min, buf1, 0, res1 - min); res1 -= min; } else { res1 = 0; } if (res2 != min) { System.arraycopy(buf2, min, buf2, 0, res2 - min); res2 -= min; } else { res2 = 0; } } if (is2.read() != -1) { fail("stream 1 EOF at: " + count); } } finally { if (is1 != null) { is1.close(); } if (is2 != null) { is2.close(); } } } public void compareReaders(Reader r1, Reader r2) throws IOException { try { if (r1 == null && r2 == null) { return; } else if (r1 == null) { fail("r1 == null && r2 != null"); return; } else if (r2 == null) { fail("r1 != null && r2 == null"); return; } long count = 0; int res1 = 0, res2 = 0; char buf1[] = new char[1024], buf2[] = new char[1024]; while (res1 != 0 || (res1 = r1.read(buf1)) != -1) { if (res2 == 0) { res2 = r2.read(buf2); } if (res2 == -1) { fail("reader 2 EOF at: " + count); } int min = Math.min(res1, res2); for (int i = 0; i < min; i++) { // Do the check first rather than using assertTrue() // assertTrue() would create a String at each iteration if (buf1[i] != buf2[i]) { fail("stream 1 value [" + buf1[i] + "] differs from stream 2 value [" + buf2[i] + "] at: " + (count + i)); } } count += min; if (res1 != min) { System.arraycopy(buf1, min, buf1, 0, res1 - min); res1 -= min; } else { res1 = 0; } if (res2 != min) { System.arraycopy(buf2, min, buf2, 0, res2 - min); res2 -= min; } else { res2 = 0; } } if (r2.read() != -1) { fail("reader 1 EOF at: " + count); } } finally { if (r1 != null) { r1.close(); } if (r2 != null) { r2.close(); } } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -