function testManyToManyRelationWithCriteria() { $user = $this->creator->initUser(); $g1 = $this->creator->createGroup('foo'); $g2 = $this->creator->createGroup('bar'); $g3 = $this->creator->createGroup('condition'); $this->assertEqual('condition', $g3->getTitle()); $user->setGroups(array($g1, $g2, $g3)); $user->save(); $user = new UserForTest($user->id); $arr = $user->getCgroups()->getArray(); $this->assertIsA($arr[0], 'GroupForTest'); $this->assertEqual(sizeof($arr), 1); $this->assertEqual($arr[0]->getTitle(), $g3->getTitle()); }
protected function _initUser($groups = array()) { $user = new UserForTest(); $user->setFirstName('User' . mt_rand()); if (sizeof($groups)) { foreach ($groups as $group) { $user->getGroups()->add($group); } } return $user; }
function initUser($linked_object = null) { $user = new UserForTest(); $user->setFirstName('User_' . rand(0, 1000)); if ($linked_object) { $user->setLinkedObject($linked_object); } return $user; }
function testImportWhereMany2ManyCollectionIsMixedArray() { $user1 = new UserForTest(); $user1->setFirstName('Bob'); $g1 = new GroupForTest(); $g1->setTitle('vp1'); $g2 = new GroupForTest(); $g2->setTitle('vp1'); $user1->addToGroups($g1); $user1->addToGroups($g2); $user1->save(); $source = array('first_name' => $user1->getFirstName(), 'groups' => array($g1->getId(), $g2)); $user2 = new UserForTest(); $user2->import($source); $this->assertEqual($user2->getFirstName(), $user1->getFirstName()); $this->assertEqual($user2->getGroups()->count(), 2); $this->assertEqual($user2->getGroups()->at(0)->getTitle(), $g1->getTitle()); $this->assertEqual($user2->getGroups()->at(1)->getTitle(), $g2->getTitle()); }