示例#1
0
 public function testDebugLog()
 {
     $con = Propel::getServiceContainer()->getConnection(BookPeer::DATABASE_NAME);
     $config = Propel::getConfiguration(Registry::TYPE_OBJECT);
     // save data to return to normal state after test
     $logger = $con->getLogger();
     $testLog = new myLogger();
     $con->setLogger($testLog);
     $logEverything = array('exec', 'query', 'beginTransaction', 'commit', 'rollBack', 'statement_execute');
     Propel::getConfiguration(Registry::TYPE_OBJECT)->setParameter("debugpdo.logging.methods", $logEverything, false);
     $con->useDebug(true);
     $con->beginTransaction();
     // test transaction log
     $this->assertEquals('log: Begin transaction', $testLog->latestMessage, 'PropelPDO logs begin transation in debug mode');
     $con->commit();
     $this->assertEquals('log: Commit transaction', $testLog->latestMessage, 'PropelPDO logs commit transation in debug mode');
     $con->beginTransaction();
     $con->rollBack();
     $this->assertEquals('log: Rollback transaction', $testLog->latestMessage, 'PropelPDO logs rollback transation in debug mode');
     $con->beginTransaction();
     $testLog->latestMessage = '';
     $con->beginTransaction();
     $this->assertEquals('', $testLog->latestMessage, 'PropelPDO does not log nested begin transation in debug mode');
     $con->commit();
     $this->assertEquals('', $testLog->latestMessage, 'PropelPDO does not log nested commit transation in debug mode');
     $con->beginTransaction();
     $con->rollBack();
     $this->assertEquals('', $testLog->latestMessage, 'PropelPDO does not log nested rollback transation in debug mode');
     $con->rollback();
     // test query log
     $con->beginTransaction();
     $c = new Criteria();
     $c->add(BookPeer::TITLE, 'Harry%s', Criteria::LIKE);
     $books = BookPeer::doSelect($c, $con);
     $latestExecutedQuery = "SELECT book.ID, book.TITLE, book.ISBN, book.PRICE, book.PUBLISHER_ID, book.AUTHOR_ID FROM `book` WHERE book.TITLE LIKE 'Harry%s'";
     $this->assertEquals('log: ' . $latestExecutedQuery, $testLog->latestMessage, 'PropelPDO logs queries and populates bound parameters in debug mode');
     BookPeer::doDeleteAll($con);
     $latestExecutedQuery = "DELETE FROM `book`";
     $this->assertEquals('log: ' . $latestExecutedQuery, $testLog->latestMessage, 'PropelPDO logs deletion queries in debug mode');
     $latestExecutedQuery = 'DELETE FROM book WHERE 1=1';
     $con->exec($latestExecutedQuery);
     $this->assertEquals('log: ' . $latestExecutedQuery, $testLog->latestMessage, 'PropelPDO logs exec queries in debug mode');
     $con->commit();
     // return to normal state after test
     $con->setLogger($logger);
     $config->setParameter("debugpdo.logging.methods", array('PropelPDO::exec', 'PropelPDO::query', 'DebugPDOStatement::execute'));
 }
示例#2
0
 /**
  * Get the runtime configuration
  *
  * @return    PropelConfiguration
  */
 public function getConfiguration()
 {
     if (null === $this->configuration) {
         $this->configuration = Propel::getConfiguration(PropelConfiguration::TYPE_OBJECT);
     }
     return $this->configuration;
 }