/* * Created at 06.04.2004 23:55:00 * Copyright (c) 2004 by Norman Fomferra */ package com.bc.util.sql; import com.bc.util.prop.PropertyNotFoundException; import junit.framework.TestCase; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.text.ParseException; public class ScriptRunnerTest extends TestCase { private Connection connection; protected void setUp() throws Exception { Class.forName("org.hsqldb.jdbcDriver"); connection = DriverManager.getConnection("jdbc:hsqldb:.", "sa", ""); } protected void tearDown() throws Exception { connection.close(); connection = null; } public void testInitialStateOfScriptRunner() { final ScriptRunner scriptRunner = new ScriptRunner(); assertEquals(null, scriptRunner.getErrorHandler()); assertEquals(0, scriptRunner.getLineNumber()); assertEquals("", scriptRunner.getSql()); } public void testRunScript() throws SQLException, ParseException, PropertyNotFoundException { String sqlScript = "\n" + "-- create the test table with name '_T1'\n" + "\n" + "CREATE TABLE _T1 (\n" + " CI INTEGER,\n" + " CF FLOAT,\n" + " CS VARCHAR,\n" + " CD DATE\n" + ");\n" + "\n" + "-- now inserting data\n" + "\n" + "INSERT INTO _T1 VALUES(1, 1.1, 'ABC', '2002-12-10');\n" + "INSERT INTO _T1 VALUES(2, 1.2, 'BCD', '2002-12-11');\n" + "INSERT INTO _T1 VALUES(3, 1.3, 'CDE', '2002-12-12');\n" + "INSERT INTO _T1 VALUES(4, 1.4, 'DEF', '2002-12-13');\n" + " INSERT INTO _T1 VALUES(5, 1.5, '0xA', '2002-12-14'); \n"; final ScriptRunner scriptRunner = new ScriptRunner(); scriptRunner.runScriptFromText(connection, sqlScript); assertEquals("INSERT INTO _T1 VALUES(5, 1.5, '0xA', '2002-12-14');", scriptRunner.getSql()); Statement stmt = connection.createStatement(); final ResultSet rs = stmt.executeQuery("SELECT COUNT (*) FROM _T1"); rs.next(); assertEquals(5, rs.getInt(1)); rs.close(); stmt.close(); stmt = connection.createStatement(); stmt.execute("DROP TABLE _T1"); stmt.close(); } }