예제 #1
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())));
 }
예제 #2
0
 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');
     }
 }