public function testOrWhereConditions() { $c = new ModelCriteria('bookstore', 'Propel\\Tests\\Bookstore\\Book'); $c->where('Propel\\Tests\\Bookstore\\Book.Id = ?', 12); $c->condition('cond1', 'Propel\\Tests\\Bookstore\\Book.Title <> ?', 'foo'); $c->condition('cond2', 'Propel\\Tests\\Bookstore\\Book.Title like ?', '%bar%'); $c->_or()->where(array('cond1', 'cond2')); $sql = "SELECT FROM `book` WHERE (book.ID = :p1 OR (book.TITLE <> :p2 AND book.TITLE like :p3))"; $params = array(array('table' => 'book', 'column' => 'ID', 'value' => 12), array('table' => 'book', 'column' => 'TITLE', 'value' => 'foo'), array('table' => 'book', 'column' => 'TITLE', 'value' => '%bar%')); $this->assertCriteriaTranslation($c, $sql, $params, 'orWhere() accepts an array of named conditions'); $c = new ModelCriteria('bookstore', 'Propel\\Tests\\Bookstore\\Book'); $c->where('Propel\\Tests\\Bookstore\\Book.Id = ?', 12); $c->condition('cond1', 'Propel\\Tests\\Bookstore\\Book.Title <> ?', 'foo'); $c->condition('cond2', 'Propel\\Tests\\Bookstore\\Book.Title like ?', '%bar%'); $c->_or()->where(array('cond1', 'cond2'), Criteria::LOGICAL_OR); $sql = "SELECT FROM `book` WHERE (book.ID = :p1 OR (book.TITLE <> :p2 OR book.TITLE like :p3))"; $this->assertCriteriaTranslation($c, $sql, $params, 'orWhere() accepts an array of named conditions with operator'); }
public function testWhereUsesDefaultOperator() { $c = new ModelCriteria('bookstore', 'Book'); $c->where('Book.Id = ?', 12); $c->_or(); $c->where('Book.Title = ?', 'foo'); $sql = 'SELECT FROM `book` WHERE (book.ID = :p1 OR book.TITLE = :p2)'; $params = array(array('table' => 'book', 'column' => 'ID', 'value' => '12'), array('table' => 'book', 'column' => 'TITLE', 'value' => 'foo')); $this->assertCriteriaTranslation($c, $sql, $params, 'where() uses the default operator'); }