From 903ae8a581fac1e6917fc3e31d2ad8fb91df80c3 Mon Sep 17 00:00:00 2001 From: ctrlaltca <> Date: Thu, 12 Jul 2012 11:21:01 +0000 Subject: standardize the use of unix eol; use svn properties to enforce native eol --- .../ActiveRecord/ForeignObjectUpdateTest.php | 482 ++++++++++----------- 1 file changed, 241 insertions(+), 241 deletions(-) (limited to 'tests/simple_unit/ActiveRecord/ForeignObjectUpdateTest.php') diff --git a/tests/simple_unit/ActiveRecord/ForeignObjectUpdateTest.php b/tests/simple_unit/ActiveRecord/ForeignObjectUpdateTest.php index 026efb4d..672c2d0f 100644 --- a/tests/simple_unit/ActiveRecord/ForeignObjectUpdateTest.php +++ b/tests/simple_unit/ActiveRecord/ForeignObjectUpdateTest.php @@ -1,242 +1,242 @@ -OnExecuteCommand[] = array($this,'logger'); - } - return $conn; - } - - function logger($sender,$param) - { - } -} - -class TeamRecord extends BaseFkRecord -{ - const TABLE='teams'; - public $name; - public $location; - - public $players=array(); - - //define the $player member having has many relationship with PlayerRecord - public static $RELATIONS=array - ( - 'players' => array(self::HAS_MANY, 'PlayerRecord'), - ); - - public static function finder($className=__CLASS__) - { - return parent::finder($className); - } -} - -class PlayerRecord extends BaseFkRecord -{ - const TABLE='players'; - public $player_id; - public $age; - public $team_name; - - public $team; - private $_skills; - public $profile; - - public static $RELATIONS=array - ( - 'skills' => array(self::MANY_TO_MANY, 'SkillRecord', 'player_skills'), - 'team' => array(self::BELONGS_TO, 'TeamRecord'), - 'profile' => array(self::HAS_ONE, 'ProfileRecord'), - ); - - public static function finder($className=__CLASS__) - { - 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 -{ - const TABLE='profiles'; - public $fk_player_id; - public $salary; - - public $player; - - public static $RELATIONS=array - ( - 'player' => array(self::BELONGS_TO, 'PlayerRecord'), - ); - - public static function finder($className=__CLASS__) - { - return parent::finder($className); - } -} - -class SkillRecord extends BaseFkRecord -{ - const TABLE='skills'; - public $skill_id; - public $name; - - public $players=array(); - - public static $RELATIONS=array - ( - 'players' => array(self::MANY_TO_MANY, 'PlayerRecord', 'player_skills'), - ); - - public static function finder($className=__CLASS__) - { - return parent::finder($className); - } - - -} - -class ForeignObjectUpdateTest extends UnitTestCase -{ - function test_add_has_one() - { - ProfileRecord::finder()->deleteByPk(3); - - $player = PlayerRecord::finder()->findByPk(3); - $player->profile = new ProfileRecord(array('salary'=>50000)); - $player->save(); - - //test insert - $player2 = PlayerRecord::finder()->withProfile()->findByPk(3); - $this->assertEqual($player2->profile->salary,50000); - - $player2->profile->salary = 45000; - $player2->save(); - $this->assertEqual($player2->profile->salary,45000); - - //test update - $player3 = PlayerRecord::finder()->withProfile()->findByPk(3); - $this->assertEqual($player3->profile->salary,45000); - } - - function test_add_many() - { - PlayerRecord::finder()->deleteAll("player_id > ?", 3); - - $team = TeamRecord::finder()->findByPk('Team b'); - $team->players[] = new PlayerRecord(array('age'=>20)); - $team->players[] = new PlayerRecord(array('age'=>25)); - $team->save(); - - //test insert - $team1 = TeamRecord::finder()->withPlayers()->findByPk('Team b'); - $this->assertEqual(count($team1->players),3); - $this->assertEqual($team1->players[0]->age, 18); - $this->assertEqual($team1->players[1]->age, 20); - $this->assertEqual($team1->players[2]->age, 25); - - //test update - $team1->players[1]->age = 55; - $team1->save(); - - $this->assertEqual($team1->players[0]->age, 18); - $this->assertEqual($team1->players[1]->age, 55); - $this->assertEqual($team1->players[2]->age, 25); - - $criteria = new TActiveRecordCriteria(); - $criteria->OrdersBy['age'] = 'desc'; - $team2 = TeamRecord::finder()->withPlayers($criteria)->findByPk('Team b'); - $this->assertEqual(count($team2->players),3); - //ordered by age - $this->assertEqual($team2->players[0]->age, 55); - $this->assertEqual($team2->players[1]->age, 25); - $this->assertEqual($team2->players[2]->age, 18); - } - - function test_add_belongs_to() - { - TeamRecord::finder()->deleteByPk('Team c'); - PlayerRecord::finder()->deleteAll("player_id > ?", 3); - - $player = new PlayerRecord(array('age'=>27)); - $player->team = new TeamRecord(array('name'=>'Team c', 'location'=>'Sydney')); - $player->save(); - - //test insert - $player1 = PlayerRecord::finder()->withTeam()->findByAge(27); - $this->assertNotNull($player1); - $this->assertNotNull($player1->team); - $this->assertEqual($player1->team->name, 'Team c'); - $this->assertEqual($player1->team->location, 'Sydney'); - } - - function test_add_many_via_association() - { - PlayerRecord::finder()->deleteAll("player_id > ?", 3); - SkillRecord::finder()->deleteAll("skill_id > ?", 3); - - $player = new PlayerRecord(array('age'=>37)); - $player->skills[] = new SkillRecord(array('name'=>'Bash')); - $player->skills[] = new SkillRecord(array('name'=>'Jump')); - $player->save(); - - //test insert - $player2 = PlayerRecord::finder()->withSkills()->findByAge(37); - $this->assertNotNull($player2); - $this->assertEqual(count($player2->skills), 2); - $this->assertEqual($player2->skills[0]->name, 'Bash'); - $this->assertEqual($player2->skills[1]->name, 'Jump'); - - //test update - $player2->skills[1]->name = "Skip"; - $player2->skills[] = new SkillRecord(array('name'=>'Push')); - $player2->save(); - - $criteria = new TActiveRecordCriteria(); - $criteria->OrdersBy['name'] = 'asc'; - $player3 = PlayerRecord::finder()->withSkills($criteria)->findByAge(37); - $this->assertNotNull($player3); - $this->assertEqual(count($player3->skills), 3); - $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'); - } -//*/ -} - +OnExecuteCommand[] = array($this,'logger'); + } + return $conn; + } + + function logger($sender,$param) + { + } +} + +class TeamRecord extends BaseFkRecord +{ + const TABLE='teams'; + public $name; + public $location; + + public $players=array(); + + //define the $player member having has many relationship with PlayerRecord + public static $RELATIONS=array + ( + 'players' => array(self::HAS_MANY, 'PlayerRecord'), + ); + + public static function finder($className=__CLASS__) + { + return parent::finder($className); + } +} + +class PlayerRecord extends BaseFkRecord +{ + const TABLE='players'; + public $player_id; + public $age; + public $team_name; + + public $team; + private $_skills; + public $profile; + + public static $RELATIONS=array + ( + 'skills' => array(self::MANY_TO_MANY, 'SkillRecord', 'player_skills'), + 'team' => array(self::BELONGS_TO, 'TeamRecord'), + 'profile' => array(self::HAS_ONE, 'ProfileRecord'), + ); + + public static function finder($className=__CLASS__) + { + 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 +{ + const TABLE='profiles'; + public $fk_player_id; + public $salary; + + public $player; + + public static $RELATIONS=array + ( + 'player' => array(self::BELONGS_TO, 'PlayerRecord'), + ); + + public static function finder($className=__CLASS__) + { + return parent::finder($className); + } +} + +class SkillRecord extends BaseFkRecord +{ + const TABLE='skills'; + public $skill_id; + public $name; + + public $players=array(); + + public static $RELATIONS=array + ( + 'players' => array(self::MANY_TO_MANY, 'PlayerRecord', 'player_skills'), + ); + + public static function finder($className=__CLASS__) + { + return parent::finder($className); + } + + +} + +class ForeignObjectUpdateTest extends UnitTestCase +{ + function test_add_has_one() + { + ProfileRecord::finder()->deleteByPk(3); + + $player = PlayerRecord::finder()->findByPk(3); + $player->profile = new ProfileRecord(array('salary'=>50000)); + $player->save(); + + //test insert + $player2 = PlayerRecord::finder()->withProfile()->findByPk(3); + $this->assertEqual($player2->profile->salary,50000); + + $player2->profile->salary = 45000; + $player2->save(); + $this->assertEqual($player2->profile->salary,45000); + + //test update + $player3 = PlayerRecord::finder()->withProfile()->findByPk(3); + $this->assertEqual($player3->profile->salary,45000); + } + + function test_add_many() + { + PlayerRecord::finder()->deleteAll("player_id > ?", 3); + + $team = TeamRecord::finder()->findByPk('Team b'); + $team->players[] = new PlayerRecord(array('age'=>20)); + $team->players[] = new PlayerRecord(array('age'=>25)); + $team->save(); + + //test insert + $team1 = TeamRecord::finder()->withPlayers()->findByPk('Team b'); + $this->assertEqual(count($team1->players),3); + $this->assertEqual($team1->players[0]->age, 18); + $this->assertEqual($team1->players[1]->age, 20); + $this->assertEqual($team1->players[2]->age, 25); + + //test update + $team1->players[1]->age = 55; + $team1->save(); + + $this->assertEqual($team1->players[0]->age, 18); + $this->assertEqual($team1->players[1]->age, 55); + $this->assertEqual($team1->players[2]->age, 25); + + $criteria = new TActiveRecordCriteria(); + $criteria->OrdersBy['age'] = 'desc'; + $team2 = TeamRecord::finder()->withPlayers($criteria)->findByPk('Team b'); + $this->assertEqual(count($team2->players),3); + //ordered by age + $this->assertEqual($team2->players[0]->age, 55); + $this->assertEqual($team2->players[1]->age, 25); + $this->assertEqual($team2->players[2]->age, 18); + } + + function test_add_belongs_to() + { + TeamRecord::finder()->deleteByPk('Team c'); + PlayerRecord::finder()->deleteAll("player_id > ?", 3); + + $player = new PlayerRecord(array('age'=>27)); + $player->team = new TeamRecord(array('name'=>'Team c', 'location'=>'Sydney')); + $player->save(); + + //test insert + $player1 = PlayerRecord::finder()->withTeam()->findByAge(27); + $this->assertNotNull($player1); + $this->assertNotNull($player1->team); + $this->assertEqual($player1->team->name, 'Team c'); + $this->assertEqual($player1->team->location, 'Sydney'); + } + + function test_add_many_via_association() + { + PlayerRecord::finder()->deleteAll("player_id > ?", 3); + SkillRecord::finder()->deleteAll("skill_id > ?", 3); + + $player = new PlayerRecord(array('age'=>37)); + $player->skills[] = new SkillRecord(array('name'=>'Bash')); + $player->skills[] = new SkillRecord(array('name'=>'Jump')); + $player->save(); + + //test insert + $player2 = PlayerRecord::finder()->withSkills()->findByAge(37); + $this->assertNotNull($player2); + $this->assertEqual(count($player2->skills), 2); + $this->assertEqual($player2->skills[0]->name, 'Bash'); + $this->assertEqual($player2->skills[1]->name, 'Jump'); + + //test update + $player2->skills[1]->name = "Skip"; + $player2->skills[] = new SkillRecord(array('name'=>'Push')); + $player2->save(); + + $criteria = new TActiveRecordCriteria(); + $criteria->OrdersBy['name'] = 'asc'; + $player3 = PlayerRecord::finder()->withSkills($criteria)->findByAge(37); + $this->assertNotNull($player3); + $this->assertEqual(count($player3->skills), 3); + $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'); + } +//*/ +} + ?> \ No newline at end of file -- cgit v1.2.3