/** * Tests reverse setting of relationships, saving one of the objects first. * @link http://propel.phpdb.org/trac/ticket/508 */ public function testManyToMany_Dir2_Saved() { $list = new BookClubList(); $list->setGroupLeader('Archimedes Q. Porter'); $list->save(); $book = new Book(); $book->setTitle("Jungle Expedition Handbook"); $book->setISBN('TEST'); // No save (yet) ... $this->assertEquals(0, count($list->getBookListRels())); $this->assertEquals(0, count($book->getBookListRels())); $this->assertEquals(0, count(BookListRelPeer::doSelect(new Criteria()))); // Now set the relationship from the opposite direction. $xref = new BookListRel(); $xref->setBookClubList($list); $book->addBookListRel($xref); $this->assertEquals(1, count($list->getBookListRels())); $this->assertEquals(1, count($book->getBookListRels())); $this->assertEquals(0, count(BookListRelPeer::doSelect(new Criteria()))); $book->save(); $this->assertEquals(1, count($list->getBookListRels())); $this->assertEquals(1, count($book->getBookListRels())); $this->assertEquals(1, count(BookListRelPeer::doSelect(new Criteria()))); }
public function testAddAfterRemoveKeepsReferences() { $list = new BookClubList(); $list->setGroupLeader('Archimedes Q. Porter'); $book = new Book(); $book->setTitle("Jungle Expedition Handbook"); $book->setIsbn('TEST'); $xref = new BookListRel(); $xref->setBook($book); $xref->setBookClubList($list); $xref->save(); $book->removeBookListRel($xref); $book->addBookListRel($xref); $book->save(); $this->assertCount(1, $list->getBookListRels()); $this->assertCount(1, $book->getBookListRels()); $this->assertCount(1, BookListRelPeer::doSelect(new Criteria())); $book->removeBookClubList($list); $book->addBookClubList($list); $book->save(); $this->assertCount(1, $list->getBookListRels()); $this->assertCount(1, $book->getBookListRels()); $this->assertCount(1, BookListRelPeer::doSelect(new Criteria())); }