/** * Testing foreign keys with multiple referrer columns. * @link http://propel.phpdb.org/trac/ticket/606 */ public function testMultiColFk() { $con = Propel::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"); }
/** * Test the effect of typecast on primary key values and instance pool retrieval. */ public function testObjectInstancePoolTypecasting() { $reader = new BookReader(); $reader->setName("Tester"); $reader->save(); $readerId = $reader->getId(); $book = new Book(); $book->setTitle("BookTest"); $book->setISBN("TEST"); $book->save(); $bookId = $book->getId(); $opinion = new BookOpinion(); $opinion->setBookId((string) $bookId); $opinion->setReaderId((string) $readerId); $opinion->setRating(5); $opinion->setRecommendToFriend(false); $opinion->save(); $opinion2 = BookOpinionPeer::retrieveByPK($bookId, $readerId); $this->assertSame($opinion, $opinion2, "Expected same object to be retrieved from differently type-casted primary key values."); }
/** * @see testDoDeleteCompositePK() */ private function createReaderWithId($id) { $con = Propel::getConnection(BookReaderPeer::DATABASE_NAME); $r = BookReaderPeer::retrieveByPK($id); if (!$r) { $r = new BookReader(); $r->setName('Reader' . $id)->save(); $r1Id = $r->getId(); $sql = "UPDATE " . BookReaderPeer::TABLE_NAME . " SET id = ? WHERE id = ?"; $stmt = $con->prepare($sql); $stmt->bindValue(1, $id); $stmt->bindValue(2, $r1Id); $stmt->execute(); } }