/**
  * @see testDoDeleteCompositePK()
  */
 private function createReaderWithId($id)
 {
     $con = Propel::getServiceContainer()->getConnection(BookReaderTableMap::DATABASE_NAME);
     $r = BookReaderQuery::create()->findPk($id);
     if (!$r) {
         $r = new BookReader();
         $r->setName('Reader' . $id)->save();
         $r1Id = $r->getId();
         $sql = "UPDATE " . BookReaderTableMap::TABLE_NAME . " SET id = ? WHERE id = ?";
         $stmt = $con->prepare($sql);
         $stmt->bindValue(1, $id);
         $stmt->bindValue(2, $r1Id);
         $stmt->execute();
     }
 }
예제 #2
0
 /**
  * Test copying when an object has composite primary key.
  * @link http://propel.phpdb.org/trac/ticket/618
  */
 public function testCopy_CompositePK()
 {
     $br = new BookReader();
     $br->setName("TestReader");
     $br->save();
     $br->copy();
     $b = new Book();
     $b->setTitle("TestBook");
     $b->setISBN("XX-XX-XX-XX");
     $b->save();
     $op = new BookOpinion();
     $op->setBookReader($br);
     $op->setBook($b);
     $op->setRating(10);
     $op->setRecommendToFriend(true);
     $op->save();
     $br2 = $br->copy(true);
     $this->assertNull($br2->getId());
     $opinions = $br2->getBookOpinions();
     $this->assertEquals(1, count($opinions), "Expected to have a related BookOpinion after copy()");
     // We DO expect the reader_id to be null
     $this->assertNull($opinions[0]->getReaderId());
     // but we DO NOT expect the book_id to be null
     $this->assertEquals($op->getBookId(), $opinions[0]->getBookId());
 }
예제 #3
0
 /**
  * Testing foreign keys with multiple referrer columns.
  * @link       http://propel.phpdb.org/trac/ticket/606
  */
 public function testMultiColFk()
 {
     $con = Propel::getServiceContainer()->getConnection(BookPeer::DATABASE_NAME);
     ReaderFavoritePeer::doDeleteAll();
     $b1 = new Book();
     $b1->setTitle("Book1");
     $b1->setISBN("ISBN-1");
     $b1->save();
     $r1 = new BookReader();
     $r1->setName("Me");
     $r1->save();
     $bo1 = new BookOpinion();
     $bo1->setBookId($b1->getId());
     $bo1->setReaderId($r1->getId());
     $bo1->setRating(9);
     $bo1->setRecommendToFriend(true);
     $bo1->save();
     $rf1 = new ReaderFavorite();
     $rf1->setReaderId($r1->getId());
     $rf1->setBookId($b1->getId());
     $rf1->save();
     $c = new Criteria(ReaderFavoritePeer::DATABASE_NAME);
     $c->add(ReaderFavoritePeer::BOOK_ID, $b1->getId());
     $c->add(ReaderFavoritePeer::READER_ID, $r1->getId());
     $results = ReaderFavoritePeer::doSelectJoinBookOpinion($c);
     $this->assertEquals(1, count($results), "Expected 1 result");
 }