コード例 #1
0
 public function testManyToManyAdd()
 {
     $list = new BookClubList();
     $list->setGroupLeader('Archimedes Q. Porter');
     $book = new Book();
     $book->setTitle("Jungle Expedition Handbook");
     $book->setISBN('TEST');
     $list->addBook($book);
     $this->assertEquals(1, $list->countBooks(), 'addCrossFk() sets the internal collection properly');
     $this->assertEquals(1, $list->countBookListRels(), 'addCrossFk() sets the internal cross reference collection properly');
     $list->save();
     $this->assertFalse($book->isNew(), 'related object is saved if added');
     $rels = $list->getBookListRels();
     $rel = $rels[0];
     $this->assertFalse($rel->isNew(), 'cross object is saved if added');
     $list->clearBookListRels();
     $list->clearBooks();
     $books = $list->getBooks();
     $expected = new PropelObjectCollection(array($book));
     $expected->setModel('Book');
     $this->assertEquals($expected, $books, 'addCrossFk() adds the object properly');
     $this->assertEquals(1, $list->countBookListRels());
 }
コード例 #2
0
 /**
  * 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())));
 }