package liquibase.ext.oracle.preconditions;
import static org.junit.Assert.*;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import liquibase.Contexts;
import liquibase.change.Change;
import liquibase.change.ChangeFactory;
import liquibase.change.ChangeMetaData;
import liquibase.changelog.ChangeLogHistoryService;
import liquibase.changelog.ChangeLogHistoryServiceFactory;
import liquibase.changelog.ChangeLogParameters;
import liquibase.changelog.ChangeSet;
import liquibase.changelog.DatabaseChangeLog;
import liquibase.database.Database;
import liquibase.database.core.OracleDatabase;
import liquibase.exception.RollbackFailedException;
import liquibase.executor.Executor;
import liquibase.executor.ExecutorService;
import liquibase.ext.oracle.preconditions.core.BaseTestCase;
import liquibase.parser.ChangeLogParserFactory;
import liquibase.resource.ClassLoaderResourceAccessor;
import liquibase.resource.ResourceAccessor;
import liquibase.sql.Sql;
import liquibase.sqlgenerator.SqlGeneratorFactory;
import liquibase.statement.SqlStatement;
import liquibase.statement.core.RawSqlStatement;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
public class OraclePreconditionsTest extends BaseTestCase {
@Before
public void setUp() throws Exception {
changeLogFile = "liquibase/ext/oracle/preconditions/changelog.test.xml";
connectToDB();
cleanDB();
liquiBase.update( (String) null );
}
@Test
public void test() throws Exception {
final List<String> expected = Arrays.asList(
"iftableexists", "iftablenotexists", "ifviewexists", "ifviewnotexists",
"ifindexexists1", "ifindexexists2", "ifindexnotexists1", "ifpkexists",
"ifpknotexists", "iffkexists", "iffknotexists", "ifsequenceexists",
"ifsequencenotexists"
);
Executor executor = ExecutorService.getInstance().getExecutor( liquiBase.getDatabase() );
List<String> successes = executor.queryForList( new RawSqlStatement( "select * from testresults" ), String.class );
assertTrue( successes.containsAll( expected ) );
}
}