summaryrefslogtreecommitdiff
path: root/tests/simple_unit
diff options
context:
space:
mode:
authorwei <>2007-04-14 05:02:29 +0000
committerwei <>2007-04-14 05:02:29 +0000
commit0f0d3c62e608287cdf77f1a3239371b521ecb40b (patch)
treebd91a9499a946e1667a0e17a9c5a97a9d695c7ce /tests/simple_unit
parentb05442bbe751b87998d8500ad8e6b28d652a35db (diff)
Refactor ActiveRecordGateway to use TDataGatewayCommand
Diffstat (limited to 'tests/simple_unit')
-rw-r--r--tests/simple_unit/ActiveRecord/ActiveRecordDynamicCallTestCase.php2
-rw-r--r--tests/simple_unit/ActiveRecord/SqliteTestCase.php6
-rw-r--r--tests/simple_unit/ActiveRecord/ViewRecordTestCase.php4
-rw-r--r--tests/simple_unit/DbCommon/CommandBuilderMssqlTest.php46
-rw-r--r--tests/simple_unit/DbCommon/MssqlColumnTest.php48
5 files changed, 97 insertions, 9 deletions
diff --git a/tests/simple_unit/ActiveRecord/ActiveRecordDynamicCallTestCase.php b/tests/simple_unit/ActiveRecord/ActiveRecordDynamicCallTestCase.php
index 85f1c944..07e810aa 100644
--- a/tests/simple_unit/ActiveRecord/ActiveRecordDynamicCallTestCase.php
+++ b/tests/simple_unit/ActiveRecord/ActiveRecordDynamicCallTestCase.php
@@ -40,7 +40,7 @@ class ActiveRecordDynamicCallTestCase extends UnitTestCase
$rs = $finder->findByNameAndActive('Marketing');
$this->fail();
}
- catch(TActiveRecordException $e)
+ catch(TDbException $e)
{
$this->pass();
}
diff --git a/tests/simple_unit/ActiveRecord/SqliteTestCase.php b/tests/simple_unit/ActiveRecord/SqliteTestCase.php
index b2d21ef1..94af6200 100644
--- a/tests/simple_unit/ActiveRecord/SqliteTestCase.php
+++ b/tests/simple_unit/ActiveRecord/SqliteTestCase.php
@@ -16,12 +16,6 @@ class SqliteTestCase extends UnitTestCase
$user = $finder->findByPk('test');
$this->assertNotNull($user);
}
-
- function test_get_pk()
- {
- $meta = TActiveRecordManager::getInstance()->getMetaData('SqliteUsers');
- $this->assertEqual(array('username'), $meta->PrimaryKeys);
- }
}
?> \ No newline at end of file
diff --git a/tests/simple_unit/ActiveRecord/ViewRecordTestCase.php b/tests/simple_unit/ActiveRecord/ViewRecordTestCase.php
index 29fdee49..db23f01a 100644
--- a/tests/simple_unit/ActiveRecord/ViewRecordTestCase.php
+++ b/tests/simple_unit/ActiveRecord/ViewRecordTestCase.php
@@ -54,7 +54,7 @@ class ViewRecordTestCase extends UnitTestCase
$user = SimpleUser::finder()->findByPk('admin');
$this->fail();
}
- catch(TActiveRecordException $e)
+ catch(TDbException $e)
{
$this->pass();
}
@@ -67,7 +67,7 @@ class ViewRecordTestCase extends UnitTestCase
SimpleUser::finder()->deleteByPk('admin');
$this->fail();
}
- catch(TActiveRecordException $e)
+ catch(TDbException $e)
{
$this->pass();
}
diff --git a/tests/simple_unit/DbCommon/CommandBuilderMssqlTest.php b/tests/simple_unit/DbCommon/CommandBuilderMssqlTest.php
new file mode 100644
index 00000000..cc7b8b45
--- /dev/null
+++ b/tests/simple_unit/DbCommon/CommandBuilderMssqlTest.php
@@ -0,0 +1,46 @@
+<?php
+
+Prado::using('System.Data.*');
+Prado::using('System.Data.Common.Mssql.TMssqlCommandBuilder');
+
+class CommandBuilderMssqlTest extends UnitTestCase
+{
+ protected static $sql = array(
+ 'simple' => 'SELECT username, age FROM accounts',
+ 'multiple' => 'select a.username, b.name from accounts a, table1 b where a.age = b.id1',
+ 'ordering' => 'select a.username, b.name, a.age from accounts a, table1 b where a.age = b.id1 order by age DESC, name',
+ 'index' => 'select a.username, b.name, a.age from accounts a, table1 b where a.age = b.id1 ORDER BY 1 DESC, 2 ASC',
+ //'compute' => 'SELECT username, age FROM accounts order by age compute avg(age)',
+ );
+
+ function test_limit()
+ {
+ $builder = new TMssqlCommandBuilder();
+
+ $sql = $builder->applyLimitOffset(self::$sql['simple'], 3);
+ $expect = 'SELECT TOP 3 username, age FROM accounts';
+ $this->assertEqual($expect, $sql);
+
+
+ $sql = $builder->applyLimitOffset(self::$sql['simple'], 3, 2);
+ $expect = 'SELECT * FROM (SELECT TOP 3 * FROM (SELECT TOP 5 username, age FROM accounts) as [__inner top table__] ) as [__outer top table__] ';
+ $this->assertEqual($expect, $sql);
+
+ $sql = $builder->applyLimitOffset(self::$sql['multiple'], 3, 2);
+ $expect = 'SELECT * FROM (SELECT TOP 3 * FROM (SELECT TOP 5 a.username, b.name from accounts a, table1 b where a.age = b.id1) as [__inner top table__] ) as [__outer top table__] ';
+ $this->assertEqual($sql, $expect);
+
+ $sql = $builder->applyLimitOffset(self::$sql['ordering'], 3, 2);
+ $expect = 'SELECT * FROM (SELECT TOP 3 * FROM (SELECT TOP 5 a.username, b.name, a.age from accounts a, table1 b where a.age = b.id1 order by age DESC, name) as [__inner top table__] ORDER BY age ASC, name DESC) as [__outer top table__] ORDER BY age DESC, name ASC';
+ $this->assertEqual($sql, $expect);
+
+ $sql = $builder->applyLimitOffset(self::$sql['index'], 3, 2);
+ $expect = 'SELECT * FROM (SELECT TOP 3 * FROM (SELECT TOP 5 a.username, b.name, a.age from accounts a, table1 b where a.age = b.id1 ORDER BY 1 DESC, 2 ASC) as [__inner top table__] ORDER BY 1 ASC, 2 DESC) as [__outer top table__] ORDER BY 1 DESC, 2 ASC';
+ $this->assertEqual($expect, $sql);
+
+ // $sql = $builder->applyLimitOffset(self::$sql['compute'], 3, 2);
+ // var_dump($sql);
+ }
+}
+
+?> \ No newline at end of file
diff --git a/tests/simple_unit/DbCommon/MssqlColumnTest.php b/tests/simple_unit/DbCommon/MssqlColumnTest.php
new file mode 100644
index 00000000..db2df03b
--- /dev/null
+++ b/tests/simple_unit/DbCommon/MssqlColumnTest.php
@@ -0,0 +1,48 @@
+<?php
+
+Prado::using('System.Data.*');
+Prado::using('System.Data.Common.Mssql.TMssqlMetaData');
+Prado::using('System.Data.DataGateway.TTableGateway');
+
+class MssqlColumnTest extends UnitTestCase
+{
+ function get_conn()
+ {
+ return new TDbConnection('mssql:host=localhost\\sqlexpress', 'test', 'test01');
+ }
+
+ /**
+ * @return TMssqlMetaData
+ */
+ function meta_data()
+ {
+ return new TMssqlMetaData($this->get_conn());
+ }
+
+ function test_insert()
+ {
+ $table = new TTableGateway('table1', $this->get_conn());
+ $this->assertTrue(is_int($table->insert(array('name'=>'cool'))));
+ }
+
+/* function test_meta()
+ {
+ $result = $this->meta_data()->getTableInfo("bar");
+ var_dump($result);
+ }
+*/
+ /*function test_insert()
+ {
+ $table = new TTableGateway('table1', $this->get_conn());
+ //var_dump($table->insert(array('name'=>'cool')));
+ //var_dump($table->getLastInsertId());
+ $criteria = new TSqlCriteria();
+ $criteria->Limit = 5;
+ $criteria->Offset = 2;
+
+ $result = $table->findAll($criteria)->readAll();
+ var_dump($result);
+ }*/
+}
+
+?> \ No newline at end of file