public function build($dsn = null, $user = null, $pass = null, $adapter = null) { if (null === $dsn) { $dsn = 'sqlite::memory:'; } if (null === $adapter) { $adapter = new DBSQLite(); } $con = new PropelPDO($dsn, $user, $pass); $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); $this->buildSQL($con); $this->buildClasses(); $name = $this->getDatabase()->getName(); if (!Propel::isInit()) { Propel::setConfiguration(array()); } Propel::setDB($name, $adapter); Propel::setConnection($name, $con, Propel::CONNECTION_READ); Propel::setConnection($name, $con, Propel::CONNECTION_WRITE); return $con; }
protected function tearDown() { Propel::setDB(null, $this->savedAdapter); parent::tearDown(); }
public function testOrderByIgnoreCase() { $originalDB = Propel::getDB(); Propel::setDB(null, new DBMySQL()); $criteria = new Criteria(); $criteria->setIgnoreCase(true); $criteria->addAscendingOrderByColumn(BookPeer::TITLE); BookPeer::addSelectColumns($criteria); $params = array(); $sql = BasePeer::createSelectSql($criteria, $params); $expectedSQL = 'SELECT book.ID, book.TITLE, book.ISBN, book.PRICE, book.PUBLISHER_ID, book.AUTHOR_ID, UPPER(book.TITLE) FROM `book` ORDER BY UPPER(book.TITLE) ASC'; $this->assertEquals($expectedSQL, $sql); Propel::setDB(null, $originalDB); }
/** * @return \PropelPDO */ protected function getMockPropelConnection() { if (!class_exists('Lexik\\Bundle\\TranslationBundle\\Propel\\om\\BaseFile')) { // classes are built in-memory. $builder = new \PropelQuickBuilder(); $builder->setSchema(file_get_contents(__DIR__ . '/../../Resources/config/propel/schema.xml')); $builder->setClassTargets(array('tablemap', 'peer', 'object', 'query')); $con = $builder->build(); } else { // in memory-classes already exist, create connection and SQL manually $dsn = 'sqlite::memory:'; $adapter = new \DBSQLite(); $con = new \PropelPDO($dsn, null, null); $con->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_WARNING); $name = 'default'; if (!\Propel::isInit()) { \Propel::setConfiguration(array('datasources' => array('default' => $name))); } \Propel::setDB($name, $adapter); \Propel::setConnection($name, $con, \Propel::CONNECTION_READ); \Propel::setConnection($name, $con, \Propel::CONNECTION_WRITE); // don't rebuild classes $builder = new \PropelQuickBuilder(); $builder->setSchema(file_get_contents(__DIR__ . '/../../Resources/config/propel/schema.xml')); $builder->buildSQL($con); } return $con; }
/** * Test Criterion.setIgnoreCase(). * As the output is db specific the test just prints the result to * System.out */ public function testCriterionIgnoreCase() { $adapters = array(new DBMySQL(), new DBPostgres()); $expectedIgnore = array("UPPER(TABLE.COLUMN) LIKE UPPER(:p1)", "TABLE.COLUMN ILIKE :p1"); $i = 0; foreach ($adapters as $adapter) { Propel::setDB(null, $adapter); $myCriteria = new Criteria(); $myCriterion = $myCriteria->getNewCriterion("TABLE.COLUMN", "FoObAr", Criteria::LIKE); $sb = ""; $params = array(); $myCriterion->appendPsTo($sb, $params); $expected = "TABLE.COLUMN LIKE :p1"; $this->assertEquals($expected, $sb); $ignoreCriterion = $myCriterion->setIgnoreCase(true); $sb = ""; $params = array(); $ignoreCriterion->appendPsTo($sb, $params); // $expected = "UPPER(TABLE.COLUMN) LIKE UPPER(?)"; $this->assertEquals($expectedIgnore[$i], $sb); $i++; } }
public function testOrderByIgnoreCaseWithWhereClause() { $originalDB = Propel::getDB(); Propel::setDB(null, new DBMySQL()); $criteria = new Criteria(); $criteria->setIgnoreCase(true); $criteria->addAscendingOrderByColumn(BookPeer::TITLE); $criteria->add('book.title', false); BookPeer::addSelectColumns($criteria); $params = array(); $sql = BasePeer::createSelectSql($criteria, $params); $expectedSQL = 'SELECT book.id, book.title, book.isbn, book.price, book.publisher_id, book.author_id, UPPER(book.title) FROM `book` WHERE UPPER(book.title)=UPPER(:p1) ORDER BY UPPER(book.title) ASC'; $this->assertEquals($expectedSQL, $sql); Propel::setDB(null, $originalDB); }