/** * Test the clearing of related object collection via a many-to-many association. * @link http://www.propelorm.org/ticket/1374 */ public function testClearCrossFk() { $book = new Book(); $bookClub = new BookClubList(); $book->addBookClubList($bookClub); $this->assertEquals(1, count($book->getBookClubLists())); $book->clear(); $this->assertEquals(0, count($book->getBookClubLists())); }
public function testManyToManySetterIsNotLoosingAnyReference() { $list1 = new BookClubList(); $list2 = new BookClubList(); $book = new Book(); $book->addBookClubList($list1); $book->addBookClubList($list2); $lists = $book->getBookClubLists(); $this->assertCount(2, $lists, 'setRelCol is losing references to referenced object'); $rels = $book->getBookListRels(); $this->assertCount(2, $rels, 'setRelCol is losing references to relation object'); foreach ($rels as $rel) { $this->assertNotNull($rel->getBook(), 'setRelCol is losing backreference on set relation to local object'); $this->assertNotNull($rel->getBookClubList(), 'setRelCol is losing backreference on set relation to referenced object'); } foreach ($lists as $list) { $this->assertCount(1, $list->getBooks(), 'setRelCol is losing backreference on set objects'); } }