public function testOrWhereConditions() { $c = new ModelCriteria('bookstore', 'Book'); $c->where('Book.Id = ?', 12); $c->condition('cond1', 'Book.Title <> ?', 'foo'); $c->condition('cond2', 'Book.Title like ?', '%bar%'); $c->orWhere(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', 'Book'); $c->where('Book.Id = ?', 12); $c->condition('cond1', 'Book.Title <> ?', 'foo'); $c->condition('cond2', 'Book.Title like ?', '%bar%'); $c->orWhere(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'); }