0) $connection->execute($line); } } } class CopyFileScriptRunner { protected $baseFile; protected $targetFile; public function __construct($base, $target) { $this->baseFile = $base; $this->targetFile = $target; } function runScript($connection, $script) { copy($this->baseFile, $this->targetFile); } } class SQLiteBaseTestConfig extends BaseTestConfig { protected $baseFile; protected $targetFile; public function __construct() { $this->_sqlmap = SQLMAP_TESTS.'/sqlite.xml'; $this->targetFile = realpath(SQLMAP_TESTS.'/sqlite/tests.db'); $this->baseFile = realpath(SQLMAP_TESTS.'/sqlite/backup.db'); $file = urlencode($this->targetFile); $this->_connectionString = "sqlite://{$file}/"; $this->_scriptDir = SQLMAP_TESTS.'/scripts/sqlite/'; } public function getScriptRunner() { return new CopyFileScriptRunner($this->baseFile, $this->targetFile); } } class MySQLBaseTestConfig extends BaseTestConfig { public function __construct() { $this->_sqlmap = SQLMAP_TESTS.'/mysql.xml'; $this->_connectionString = 'mysql://root:weizhuo01@localhost/IBatisNet'; $this->_scriptDir = SQLMAP_TESTS.'/scripts/mysql/'; $this->_features = array('insert_id'); } } class MSSQLBaseTestConfig extends BaseTestConfig { public function __construct() { $this->_sqlmap = SQLMAP_TESTS.'/mssql.xml'; $this->_connectionString = 'odbc_mssql://sqlmap_tests'; $this->_scriptDir = SQLMAP_TESTS.'/scripts/mssql/'; $this->_features = array('insert_id'); } } class BaseTestConfig { protected $_scriptDir; protected $_connectionString; protected $_sqlmap; protected $_features = array(); public function getScriptDir() { return $this->_scriptDir; } public function getConnectionString() { return $this->_connectionString; } public function getSqlMapConfigFile(){ return $this->_sqlmap; } public function hasFeature($feature) { return in_array($feature, $this->_features); } public function getScriptRunner() { return new DefaultScriptRunner(); } public static function createConfigInstance() { //change this to connection to a different database //return new MySQLBaseTestConfig(); return new SQLiteBaseTestConfig(); //return new MSSQLBaseTestConfig(); } } ?>