package org.jsoftware.fods.tester.host;
import javax.sql.DataSource;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
public abstract class AbstractScenerio implements TestScenerio {
protected TesterConfig testerConfig;
protected DataSource dataSource;
@Override
public void init(TesterConfig tc, DataSource ds) {
this.dataSource = ds;
this.testerConfig = tc;
}
@Override
public void before() throws SQLException, IOException {
executeScript(getClass().getSimpleName() + "-before.sql");
}
private void executeScript(String sc) throws SQLException, IOException {
InputStream ins = getClass().getResourceAsStream(sc);
if (ins != null) {
System.out.println("Executing " + sc + "...");
BufferedReader br = new BufferedReader(new InputStreamReader(ins));
String str;
Connection con = dataSource.getConnection();
Statement stm = con.createStatement();
while((str = br.readLine()) != null) {
System.out.println("\t" + str);
stm.execute(str);
}
stm.close();
con.close();
}
}
@Override
public void after() throws SQLException, IOException {
executeScript(getClass().getSimpleName() + "-after.sql");
}
}