summaryrefslogtreecommitdiff
path: root/tests/simple_unit/SqlMap/common.php
diff options
context:
space:
mode:
authorwei <>2006-12-04 02:42:57 +0000
committerwei <>2006-12-04 02:42:57 +0000
commit562979c4a8fe47952edf7986d4144624e41630f7 (patch)
treeb79c3fd28e1aedb40d04e148da4b0763c928a3a5 /tests/simple_unit/SqlMap/common.php
parent91fe694c8755aa2d05743946a3681be7232420b6 (diff)
add unit tests for active record and sqlmap
Diffstat (limited to 'tests/simple_unit/SqlMap/common.php')
-rw-r--r--tests/simple_unit/SqlMap/common.php155
1 files changed, 155 insertions, 0 deletions
diff --git a/tests/simple_unit/SqlMap/common.php b/tests/simple_unit/SqlMap/common.php
new file mode 100644
index 00000000..2856f66e
--- /dev/null
+++ b/tests/simple_unit/SqlMap/common.php
@@ -0,0 +1,155 @@
+<?php
+
+Prado::using('System.Data.TDbConnection');
+
+if(!defined('SQLMAP_TESTS'))
+ define('SQLMAP_TESTS', realpath(dirname(__FILE__)));
+
+if(!class_exists('Account', false))
+{
+ include(SQLMAP_TESTS.'/domain/A.php');
+ include(SQLMAP_TESTS.'/domain/Account.php');
+ include(SQLMAP_TESTS.'/domain/AccountBis.php');
+ include(SQLMAP_TESTS.'/domain/AccountCollection.php');
+ include(SQLMAP_TESTS.'/domain/B.php');
+ include(SQLMAP_TESTS.'/domain/Document.php');
+ include(SQLMAP_TESTS.'/domain/Book.php');
+ include(SQLMAP_TESTS.'/domain/C.php');
+ include(SQLMAP_TESTS.'/domain/Category.php');
+ include(SQLMAP_TESTS.'/domain/Complex.php');
+ include(SQLMAP_TESTS.'/domain/D.php');
+ include(SQLMAP_TESTS.'/domain/DocumentCollection.php');
+ include(SQLMAP_TESTS.'/domain/E.php');
+ include(SQLMAP_TESTS.'/domain/F.php');
+ include(SQLMAP_TESTS.'/domain/LineItem.php');
+ include(SQLMAP_TESTS.'/domain/LineItemCollection.php');
+ include(SQLMAP_TESTS.'/domain/Newspaper.php');
+ include(SQLMAP_TESTS.'/domain/Order.php');
+ include(SQLMAP_TESTS.'/domain/Other.php');
+ include(SQLMAP_TESTS.'/domain/Sample.php');
+ include(SQLMAP_TESTS.'/domain/Search.php');
+ include(SQLMAP_TESTS.'/domain/User.php');
+}
+
+class DefaultScriptRunner
+{
+ function runScript($connection, $script)
+ {
+ $sql = file_get_contents($script);
+ $lines = explode(';', $sql);
+ foreach($lines as $line)
+ {
+ $line = trim($line);
+ if(strlen($line) > 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->_sqlmapConfigFile = SQLMAP_TESTS.'/sqlite.xml';
+ $this->_scriptDir = SQLMAP_TESTS.'/scripts/sqlite/';
+
+ $this->targetFile = realpath(SQLMAP_TESTS.'/sqlite/tests.db');
+ $this->baseFile = realpath(SQLMAP_TESTS.'/sqlite/backup.db');
+ $file = realpath($this->targetFile);
+ $this->_connection = new TDbConnection("sqlite2:{$file}");
+ }
+
+ 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 $_connection;
+ protected $_sqlmapConfigFile;
+
+ public function hasFeature($type)
+ {
+ return false;
+ }
+
+ public function getScriptDir()
+ {
+ return $this->_scriptDir;
+ }
+
+ public function getConnection()
+ {
+ return $this->_connection;
+ }
+
+ public function getSqlMapConfigFile()
+ {
+ return $this->_sqlmapConfigFile;
+ }
+
+ 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();
+ }
+}
+
+
+?> \ No newline at end of file