View Javadoc
1 /* 2 Loader - tool for transfering data from one JDBC source to another and 3 doing transformations during copy. 4 Copyright (C) 2002 Together 5 This library is free software; you can redistribute it and/or 6 modify it under the terms of the GNU Lesser General Public 7 License as published by the Free Software Foundation; either 8 version 2.1 of the License, or (at your option) any later version. 9 This library is distributed in the hope that it will be useful, 10 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 Lesser General Public License for more details. 13 You should have received a copy of the GNU Lesser General Public 14 License along with this library; if not, write to the Free Software 15 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 16 /* 17 * DatabaseTestCase.java Aug 29, 2002 18 * Sinisa Milosevic sinisami@eunet.yu 19 * 20 */ 21 22 package org.webdocwf.util.loader.test; 23 24 import java.sql.Connection; 25 import org.webdocwf.util.loader.test.DatabaseOperation; 26 import org.webdocwf.util.loader.test.LoaderOperation; 27 import org.webdocwf.util.loader.Loader; 28 29 import junit.framework.TestCase; 30 31 /*** 32 * Basic class for using Loader as a test case (extends Junit Test class) 33 * 34 * @author Sinisa Milosevic 35 * @version $Revision: 1.2 $ 36 */ 37 public abstract class LoaderTestCase 38 extends TestCase { 39 40 public LoaderTestCase(String name) { 41 super(name); 42 } 43 44 /*** 45 * Returns the test database connection. 46 */ 47 protected abstract Connection getConnection() throws Exception; 48 49 /*** 50 * Returns the name of test database. 51 */ 52 53 protected String getDatabaseName() throws Exception { 54 return "LoaderTest"; 55 } 56 57 /*** 58 * Returns the test Loader class (loaderjob). 59 */ 60 protected abstract Loader getLoader() throws Exception; 61 62 /*** 63 * Close the specified connection. Override this method of you want to 64 * keep your connection alive between tests. 65 */ 66 protected void closeConnection(Connection connection) throws Exception { 67 connection.close(); 68 } 69 70 /*** 71 * Returns the database operations executed in test setup. First operation will be 72 * executed dbOperation[0], then dbOperation[1]... 73 * Override this method of you want to change database operations before the start test. 74 */ 75 protected DatabaseOperation[] getSetUpOperation() throws Exception { 76 DatabaseOperation[] dbOperation = new DatabaseOperation[2]; 77 dbOperation[0] = new CreateDatabaseOperation(getDatabaseName()); 78 dbOperation[1] = new LoaderOperation(getLoader()); 79 80 return dbOperation; 81 } 82 83 /*** 84 * Returns the database operation executed in test cleanup. 85 * First operation will be executed dbOperation[0], then dbOperation[1]... 86 * Override this method of you want to change database operations after the test execution. 87 */ 88 protected DatabaseOperation[] getTearDownOperation() throws Exception { 89 DatabaseOperation[] dbOperation = new DatabaseOperation[1]; 90 dbOperation[0] = new DropDatabaseOperation(getDatabaseName()); 91 92 return dbOperation; 93 } 94 95 private void executeOperation(DatabaseOperation dbOperation) throws Exception { 96 if (dbOperation != null) { 97 if (!dbOperation.getDatabaseOperationType().equals(DatabaseOperation.NONE)) { 98 if (!dbOperation.getDatabaseOperationType().equals(DatabaseOperation.LOADER)) { 99 Connection conn = getConnection(); 100 try { 101 if (conn != null) 102 dbOperation.execute(conn); 103 } 104 finally { 105 if (conn != null) 106 closeConnection(conn); 107 } 108 } else 109 ( (LoaderOperation)dbOperation).execute(); 110 } 111 } 112 } 113 114 protected void setUp() throws Exception { 115 super.setUp(); 116 117 for (int i = 0; i < getSetUpOperation().length; i++) 118 executeOperation(getSetUpOperation()[i]); 119 } 120 121 protected void tearDown() throws Exception { 122 super.tearDown(); 123 124 for (int i = 0; i < getTearDownOperation().length; i++) 125 executeOperation(getTearDownOperation()[i]); 126 } 127 }

This page was automatically generated by Maven