Package dbfit

Source Code of dbfit.DatabaseTest

package dbfit;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.SQLException;

import dbfit.api.DBEnvironment;
import dbfit.util.*;
import fit.Fixture;
import fit.Parse;
import fitlibrary.SequenceFixture;

public class DatabaseTest extends Fixture {
    protected DBEnvironment environment;

    // ugly workaround since fitlibrary no longer allows this to be
    // overridden; we create an inner sequence fixture and pass the
    // execution to it, but this one is now a fixture to allow things to be overridden
    public void interpretTables(Parse tables) {
        Options.reset();
        SequenceFixture sf = new SequenceFixture();
        sf.listener = listener;
        sf.counts = counts;
        sf.summary = summary;
        sf.setSystemUnderTest(this);
        sf.interpretTables(tables);
        try {
            Log.log("Rolling back");
            if (environment != null) {
                environment.rollback();
                environment.closeConnection();
            }
        } catch (Exception e) {
            Log.log(e);
        }
    }

    public DatabaseTest(DBEnvironment environment) {
        FitNesseTestHost.getInstance(); // load up fitnesse test host to ensure that parsers are intialised
        this.environment = environment;
    }

    public void connect(String dataSource, String username, String password, String database) throws SQLException {
        environment.connect(dataSource, username, password, database);
        environment.getConnection().setAutoCommit(false);
    }

    public void connect(String dataSource, String username, String password) throws SQLException {
        environment.connect(dataSource, username, password);
        environment.getConnection().setAutoCommit(false);
    }

    public void connect(String connectionString) throws SQLException {
        environment.connect(connectionString);
        environment.getConnection().setAutoCommit(false);
    }

    public void connectUsingFile(String filePath) throws SQLException, IOException, FileNotFoundException {
        environment.connectUsingFile(filePath);
        environment.getConnection().setAutoCommit(false);
    }

    public void close() throws SQLException {
        environment.rollback();
        environment.closeConnection();
    }

    public void setParameter(String name, String value) {
        dbfit.fixture.SetParameter.setParameter(name, value);
    }

    public void clearParameters() {
        SymbolUtil.clearSymbols();
    }

    public Fixture query(String query) {
        return new dbfit.fixture.Query(environment, query);
    }

    public Fixture orderedQuery(String query) {
        return new dbfit.fixture.Query(environment, query, true);
    }

    public Fixture execute(String statement) {
        return new dbfit.fixture.Execute(environment, statement);
    }

    public Fixture executeDdl(String statement) {
        return new dbfit.fixture.ExecuteDdl(environment, statement);
    }

    public Fixture executeProcedure(String statement) {
        return new dbfit.fixture.ExecuteProcedure(environment, statement);
    }

    public Fixture executeProcedureExpectException(String statement) {
        return new dbfit.fixture.ExecuteProcedure(environment, statement, true);
    }

    public Fixture executeProcedureExpectException(String statement, int code) {
        return new dbfit.fixture.ExecuteProcedure(environment, statement, code);
    }

    public Fixture insert(String tableName) {
        return new dbfit.fixture.Insert(environment, tableName);
    }

    public Fixture update(String tableName) {
        return new dbfit.fixture.Update(environment, tableName);
    }

    public Fixture clean() {
        return new dbfit.fixture.Clean(environment);
    }

    //  public Fixture testData(String type)
    //  {
    //      Log.log("Calling testData method with type '%s'", type);
    //      return new TestData(environment, type);
    //  }

    public void rollback() throws SQLException {
        // System.out.println("Rolling back");
        environment.rollback();
        environment.getConnection().setAutoCommit(false);
    }

    public void commit() throws SQLException {
        // System.out.println("Committing");
        environment.commit();
        environment.getConnection().setAutoCommit(false);
    }

    public Fixture queryStats() {
        return new dbfit.fixture.QueryStats(environment);
    }

    public Fixture inspectProcedure(String procName) {
        return new dbfit.fixture.Inspect(environment, dbfit.fixture.Inspect.MODE_PROCEDURE, procName);
    }

    public Fixture inspectTable(String tableName) {
        return new dbfit.fixture.Inspect(environment, dbfit.fixture.Inspect.MODE_TABLE, tableName);
    }

    public Fixture inspectView(String tableName) {
        return new dbfit.fixture.Inspect(environment, dbfit.fixture.Inspect.MODE_TABLE, tableName);
    }

    public Fixture inspectQuery(String query) {
        return new dbfit.fixture.Inspect(environment, dbfit.fixture.Inspect.MODE_QUERY, query);
    }

    public Fixture storeQuery(String query, String symbolName) {
        return new dbfit.fixture.StoreQuery(environment, query, symbolName);
    }

    public Fixture compareStoredQueries(String symbol1, String symbol2) {
        return new dbfit.fixture.CompareStoredQueries(environment, symbol1, symbol2);
    }

    public Fixture compareStoredQueriesHideMatchingRows(String symbol1, String symbol2) {
        return new dbfit.fixture.CompareStoredQueriesHideMatchingRows(environment, symbol1, symbol2);     
    }

    public void setOption(String option, String value) {
        Options.setOption(option, value);
    }
}
TOP

Related Classes of dbfit.DatabaseTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.