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"]); }
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); }