package org.test4j.module.dbfit.environment;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import org.test4j.hamcrest.matcher.property.reflection.EqMode;
import org.test4j.module.database.environment.DBEnvironment;
import org.test4j.module.database.environment.DBEnvironmentFactory;
import org.test4j.module.database.environment.types.OracleEnvironment;
import org.test4j.module.dbfit.IDbFit;
import org.test4j.module.dbfit.annotations.DbFit;
import org.test4j.module.dbfit.environment.DbFitAbstractDBEnvironment;
import org.test4j.module.dbfit.environment.DbFitOracleEnvironment;
import org.test4j.testng.test4j;
import org.testng.annotations.Test;
@Test(groups = { "test4j", "database" })
public class DbFitAbstractDBEnvironmentTest_Oracle extends test4j implements IDbFit {
public void testExtractParamNames_oracle() {
DbFitAbstractDBEnvironment env = new DbFitOracleEnvironment(new OracleEnvironment(null, null));
fit.setSymbol("id", "1001");
String[] vars = env.extractParamNames("update table set date='2011-07-01 14:23:35' where id=:id");
want.array(vars).sizeEq(1).reflectionEq(new String[] { "id" }, EqMode.IGNORE_ORDER);
}
public void testExtractParamNames_mysql() {
DbFitAbstractDBEnvironment env = new DbFitOracleEnvironment(new OracleEnvironment(null, null));
fit.setSymbol("id", "1001");
String[] vars = env.extractParamNames("update table set refence='@myreference' where id=:id");
want.array(vars).sizeEq(1).reflectionEq(new String[] { "id" }, EqMode.IGNORE_ORDER);
}
@DbFit(when = "data/DbFitAbstractDBEnvironmentTest_Oracle/testCreateStatementWithBoundFixtureSymbols.when.wiki", then = "data/DbFitAbstractDBEnvironmentTest_Oracle/testCreateStatementWithBoundFixtureSymbols.then.wiki")
public void testCreateStatementWithBoundFixtureSymbols() throws SQLException {
fit.setSymbol("id", "1");
DBEnvironment env = DbFitAbstractDBEnvironment.convert(DBEnvironmentFactory.getCurrentDBEnvironment());
env.connect();
PreparedStatement statement = env
.createStatementWithBoundFixtureSymbols("update test4j_user set name='@modified_name' where id=@id");
statement.execute();
statement.close();
}
@Test(groups = "oracle")
@DbFit(when = "data/DbFitAbstractDBEnvironmentTest_Oracle/oracle.when.wiki", then = "data/DbFitAbstractDBEnvironmentTest_Oracle/oracle.then.wiki")
public void testCreateStatementWithBoundFixtureSymbols_Oracle() throws SQLException {
fit.setSymbol("id", "123");
fit.useSpecDataSource("", "eve.properties");
fit.execute("update MTN_SEND_OVERVIEW set CREATOR=':mycreator' where id=:id", "commit");
fit.commit();
}
}