package liquibase.ext.ora.testing; import java.io.FileInputStream; import java.sql.Connection; import java.sql.Driver; import java.util.Properties; import liquibase.Liquibase; import liquibase.database.DatabaseConnection; import liquibase.database.DatabaseFactory; import liquibase.database.OfflineConnection; import liquibase.database.jvm.JdbcConnection; import liquibase.exception.DatabaseException; import liquibase.resource.ClassLoaderResourceAccessor; /* * Class used by tests to set up connection and clean database. */ public class BaseTestCase { private static String url; private static Driver driver; private static Properties info; protected static Connection connection; protected static DatabaseConnection jdbcConnection; protected static Liquibase liquiBase; protected static String changeLogFile; public static void connectToDB() throws Exception { if (connection == null) { info = new Properties(); info.load(new FileInputStream("src/test/resources/tests.properties")); url = info.getProperty("url"); try { driver = (Driver) Class.forName(DatabaseFactory.getInstance().findDefaultDriver(url), true, Thread.currentThread().getContextClassLoader()).newInstance(); connection = driver.connect(url, info); if (connection == null) { throw new DatabaseException("Connection could not be created to " + url + " with driver " + driver.getClass().getName() + ". Possibly the wrong driver for the given database URL"); } jdbcConnection = new JdbcConnection(connection); } catch (ClassNotFoundException e) { jdbcConnection = new OfflineConnection("offline:oracle?catalog=LBUSER", new ClassLoaderResourceAccessor()); } } } public static void cleanDB() throws Exception { liquiBase = new Liquibase(changeLogFile, new ClassLoaderResourceAccessor(), jdbcConnection); if (connection != null) { liquiBase.dropAll(); } } }