public function testHavingRaw() { $c = new Criteria(); $c->addSelectColumn(BookTableMap::TITLE); $c->addAsColumn("isb_n", BookTableMap::ISBN); $c->addHaving('isb_n = ?', '1234567890123', \PDO::PARAM_STR); $expected = 'SELECT book.TITLE, book.ISBN AS isb_n FROM book HAVING isb_n = :p1'; $params = array(); $result = $c->createSelectSql($params); $this->assertEquals($expected, $result); $c->doSelect($this->con); $expected = 'SELECT book.TITLE, book.ISBN AS isb_n FROM book HAVING isb_n = \'1234567890123\''; $this->assertEquals($expected, $this->con->getLastExecutedQuery()); }
public function testMergeWithHavingConditions() { $c1 = new Criteria(); $cton = $c1->getNewCriterion(BookTableMap::COL_TITLE, 'foo', Criteria::EQUAL); $c1->addHaving($cton); $c2 = new Criteria(); $c1->mergeWith($c2); $sql = 'SELECT FROM HAVING book.TITLE=:p1'; $this->assertCriteriaTranslation($c1, $sql, 'mergeWith() does not remove an existing having condition'); $c1 = new Criteria(); $c2 = new Criteria(); $cton = $c2->getNewCriterion(BookTableMap::COL_TITLE, 'foo', Criteria::EQUAL); $c2->addHaving($cton); $c1->mergeWith($c2); $sql = 'SELECT FROM HAVING book.TITLE=:p1'; $this->assertCriteriaTranslation($c1, $sql, 'mergeWith() merges having condition to an empty having'); $c1 = new Criteria(); $cton = $c1->getNewCriterion(BookTableMap::COL_TITLE, 'foo', Criteria::EQUAL); $c1->addHaving($cton); $c2 = new Criteria(); $cton = $c2->getNewCriterion(BookTableMap::COL_TITLE, 'bar', Criteria::EQUAL); $c2->addHaving($cton); $c1->mergeWith($c2); $sql = 'SELECT FROM HAVING (book.TITLE=:p1 AND book.TITLE=:p2)'; $this->assertCriteriaTranslation($c1, $sql, 'mergeWith() combines having with AND'); }