示例#1
0
 public function testHasManyThrough()
 {
     $this->createUsersWithGroups(10, 5);
     $this->assertEqual(User::count(), 10);
     $this->assertEqual(Group::count(), 5);
     $this->assertEqual(UserAndGroupRelation::count(), 14);
     $user = User::findFirst(['conditions' => "login = '******'"]);
     // Test has_many_through collection
     $queryCount = TipyDAO::$queryCount;
     $groups = $user->groups;
     // We got a 2 new querys
     $this->assertEqual(TipyDAO::$queryCount, $queryCount + 2);
     $this->assertNotEqual($groups, null);
     $this->assertEqual(sizeof($groups), 5);
     $this->assertEqual($groups[0]->name, 'name_1');
     // Test cached association
     $this->assertNotEqual($user->associationsCache["groups"], null);
     $this->assertEqual($groups, $user->associationsCache["groups"]);
     // Test no query
     $queryCount = TipyDAO::$queryCount;
     $groupsAgain = $user->groups;
     // no more queries
     $this->assertEqual(TipyDAO::$queryCount, $queryCount);
     $this->assertEqual($groups, $groupsAgain);
     // Test has many collection with conditions
     $groups = $user->groups(["order" => " name desc"]);
     $this->assertEqual(sizeof($groups), 5);
     $this->assertEqual($groups[0]->name, 'name_5');
     // Test queries association is not cached
     $this->assertNotEqual($groups, $user->associationsCache["groups"]);
 }
示例#2
0
 public function testDependent()
 {
     $this->createUsersWithAsocs(5);
     $this->assertEqual(User::count(), 5);
     $this->assertEqual(Profile::count(), 5);
     $this->assertEqual(UserAndGroupRelation::count(), 25);
     $this->assertEqual(BlogPost::count(), 25);
     $this->assertEqual(BlogComment::count(), 125);
     $user = User::findFirst();
     $user->delete();
     $this->assertEqual(User::count(), 4);
     $this->assertEqual(Profile::count(), 5);
     $this->assertEqual(UserAndGroupRelation::count(), 20);
     $this->assertEqual(BlogPost::count(), 20);
     $this->assertEqual(BlogComment::count(), 100);
 }