summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/simple_unit/ActiveRecord/FindBySqlTestCase.php29
-rw-r--r--tests/simple_unit/ActiveRecord/ForeignObjectUpdateTest.php32
-rw-r--r--tests/simple_unit/DbCommon/SqliteColumnTest.php7
-rw-r--r--tests/simple_unit/TableGateway/TableGatewayPgsqlTest.php2
4 files changed, 62 insertions, 8 deletions
diff --git a/tests/simple_unit/ActiveRecord/FindBySqlTestCase.php b/tests/simple_unit/ActiveRecord/FindBySqlTestCase.php
index 953f83e6..7f22afc5 100644
--- a/tests/simple_unit/ActiveRecord/FindBySqlTestCase.php
+++ b/tests/simple_unit/ActiveRecord/FindBySqlTestCase.php
@@ -1,7 +1,20 @@
-<?php
-
+<?php
Prado::using('System.Data.ActiveRecord.TActiveRecord');
require_once(dirname(__FILE__).'/records/DepartmentRecord.php');
+require_once(dirname(__FILE__).'/records/UserRecord.php');
+
+class UserRecord2 extends UserRecord
+{
+ public $another_value;
+}
+
+class SqlTest extends TActiveRecord
+{
+ public $category;
+ public $item;
+
+ const TABLE='items';
+}
class FindBySqlTestCase extends UnitTestCase
{
@@ -16,6 +29,18 @@ class FindBySqlTestCase extends UnitTestCase
$deps = DepartmentRecord::finder()->findBySql('SELECT * FROM departments');
$this->assertTrue(count($deps) > 0);
}
+
+ function test_find_by_sql_arb()
+ {
+ $sql = 'SELECT c.name as category, i.name as item
+ FROM items i, categories c
+ WHERE i.category_id = c.category_id LIMIT 2';
+ $items = TActiveRecord::finder('SqlTest')->findBySql($sql);
+
+ $sql = "SELECT users.*, 'hello' as another_value FROM users LIMIT 2";
+ $users = TActiveRecord::finder('UserRecord2')->findBySql($sql);
+ var_dump($users);
+ }
}
?> \ No newline at end of file
diff --git a/tests/simple_unit/ActiveRecord/ForeignObjectUpdateTest.php b/tests/simple_unit/ActiveRecord/ForeignObjectUpdateTest.php
index 77b9cdf3..ad64e4b6 100644
--- a/tests/simple_unit/ActiveRecord/ForeignObjectUpdateTest.php
+++ b/tests/simple_unit/ActiveRecord/ForeignObjectUpdateTest.php
@@ -47,7 +47,7 @@ class PlayerRecord extends BaseFkRecord
public $team_name;
public $team;
- public $skills=array();
+ private $_skills;
public $profile;
protected static $RELATIONS=array
@@ -61,6 +61,26 @@ class PlayerRecord extends BaseFkRecord
{
return parent::finder($className);
}
+
+ public function getSkills()
+ {
+ if($this->_skills===null && $this->player_id !==null)
+ {
+ //lazy load the skill records
+ $this->setSkills($this->withSkills()->findByPk($this->player_id)->skills);
+ }
+ else if($this->_skills===null)
+ {
+ //create new TList;
+ $this->setSkills(new TList());
+ }
+ return $this->_skills;
+ }
+
+ public function setSkills($value)
+ {
+ $this->_skills = $value instanceof TList ? $value : new TList($value);
+ }
}
class ProfileRecord extends BaseFkRecord
@@ -99,6 +119,8 @@ class SkillRecord extends BaseFkRecord
{
return parent::finder($className);
}
+
+
}
class ForeignObjectUpdateTest extends UnitTestCase
@@ -205,6 +227,14 @@ class ForeignObjectUpdateTest extends UnitTestCase
$this->assertEqual($player3->skills[0]->name, 'Bash');
$this->assertEqual($player3->skills[1]->name, 'Push');
$this->assertEqual($player3->skills[2]->name, 'Skip');
+
+ //test lazy load
+ $player4 = PlayerRecord::finder()->findByAge(37);
+ $this->assertEqual(count($player4->skills), 3);
+
+ $this->assertEqual($player4->skills[0]->name, 'Bash');
+ $this->assertEqual($player4->skills[1]->name, 'Skip');
+ $this->assertEqual($player4->skills[2]->name, 'Push');
}
}
diff --git a/tests/simple_unit/DbCommon/SqliteColumnTest.php b/tests/simple_unit/DbCommon/SqliteColumnTest.php
index 6567106c..36a4baab 100644
--- a/tests/simple_unit/DbCommon/SqliteColumnTest.php
+++ b/tests/simple_unit/DbCommon/SqliteColumnTest.php
@@ -1,5 +1,4 @@
-<?php
-
+<?php
Prado::using('System.Data.*');
Prado::using('System.Data.Common.Sqlite.TSqliteMetaData');
Prado::using('System.Data.DataGateway.TTableGateway');
@@ -16,14 +15,14 @@ class SqliteColumnTest extends UnitTestCase
function test_it()
{
- $table = $this->meta_data()->getTableInfo('foo');
+ //$table = $this->meta_data()->getTableInfo('foo');
//var_dump($table);
}
function test_table()
{
$conn = new TDbConnection('sqlite:c:/test.db');
- $table = new TTableGateway('Accounts', $conn);
+ //$table = new TTableGateway('Accounts', $conn);
// var_dump($table->findAll()->readAll());
}
}
diff --git a/tests/simple_unit/TableGateway/TableGatewayPgsqlTest.php b/tests/simple_unit/TableGateway/TableGatewayPgsqlTest.php
index 973e8d21..4d1077f7 100644
--- a/tests/simple_unit/TableGateway/TableGatewayPgsqlTest.php
+++ b/tests/simple_unit/TableGateway/TableGatewayPgsqlTest.php
@@ -48,7 +48,7 @@ class TableGatewayPgsqlTest extends BaseGatewayTest
$results = $this->getGateway()->findAll('true')->readAll();
$this->assertEqual(count($results), 2);
- $result = $this->getGateway()->findBySql('SELECT username FROM address WHERE phone = ?', '45233')->read();
+ $result = $this->getGateway()->findAllBySql('SELECT username FROM address WHERE phone = ?', '45233')->read();
$this->assertEqual($result['username'], 'record2');
}