From 0f0d3c62e608287cdf77f1a3239371b521ecb40b Mon Sep 17 00:00:00 2001 From: wei <> Date: Sat, 14 Apr 2007 05:02:29 +0000 Subject: Refactor ActiveRecordGateway to use TDataGatewayCommand --- .../ActiveRecordDynamicCallTestCase.php | 2 +- tests/simple_unit/ActiveRecord/SqliteTestCase.php | 6 --- .../ActiveRecord/ViewRecordTestCase.php | 4 +- .../DbCommon/CommandBuilderMssqlTest.php | 46 +++++++++++++++++++++ tests/simple_unit/DbCommon/MssqlColumnTest.php | 48 ++++++++++++++++++++++ 5 files changed, 97 insertions(+), 9 deletions(-) create mode 100644 tests/simple_unit/DbCommon/CommandBuilderMssqlTest.php create mode 100644 tests/simple_unit/DbCommon/MssqlColumnTest.php (limited to 'tests/simple_unit') 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 @@ + '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 @@ +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 -- cgit v1.2.3