/** * @group mysql */ public function testHavingWithColumn() { $c = new ModelCriteria('bookstore', 'Propel\\Tests\\Bookstore\\Book'); $c->withColumn('SUBSTRING(Book.Title, 1, 4)', 'title_start'); $c->having('title_start = ?', 'foo', \PDO::PARAM_STR); $sql = $this->getSql('SELECT book.id, book.title, book.isbn, book.price, book.publisher_id, book.author_id, SUBSTRING(book.title, 1, 4) AS title_start FROM book HAVING title_start = :p1'); $params = array(array('table' => null, 'type' => 2, 'value' => 'foo')); $this->assertCriteriaTranslation($c, $sql, $params, 'having() accepts a string clause'); $c->find($this->con); $expected = $this->getSql('SELECT book.id, book.title, book.isbn, book.price, book.publisher_id, book.author_id, SUBSTRING(book.title, 1, 4) AS title_start FROM book HAVING title_start = \'foo\''); $this->assertEquals($expected, $this->con->getLastExecutedQuery()); }
public function testHavingWithColumn() { $c = new ModelCriteria('bookstore', 'Propel\\Tests\\Bookstore\\Book'); $c->withColumn('SUBSTRING(Book.Title, 1, 4)', 'title_start'); $c->having('title_start = ?', 'foo', \PDO::PARAM_STR); if (in_array($this->getDriver(), array('mysql'))) { $sql = 'SELECT book.ID, book.TITLE, book.ISBN, book.PRICE, book.PUBLISHER_ID, book.AUTHOR_ID, SUBSTRING(book.TITLE, 1, 4) AS title_start FROM `book` HAVING title_start = :p1'; } else { $sql = 'SELECT book.ID, book.TITLE, book.ISBN, book.PRICE, book.PUBLISHER_ID, book.AUTHOR_ID, SUBSTRING(book.TITLE, 1, 4) AS title_start FROM book HAVING title_start = :p1'; } $params = array(array('table' => null, 'type' => 2, 'value' => 'foo')); $this->assertCriteriaTranslation($c, $sql, $params, 'having() accepts a string clause'); $c->find($this->con); if (in_array($this->getDriver(), array('mysql'))) { $expected = 'SELECT book.ID, book.TITLE, book.ISBN, book.PRICE, book.PUBLISHER_ID, book.AUTHOR_ID, SUBSTRING(book.TITLE, 1, 4) AS title_start FROM `book` HAVING title_start = \'foo\''; } else { $expected = 'SELECT book.ID, book.TITLE, book.ISBN, book.PRICE, book.PUBLISHER_ID, book.AUTHOR_ID, SUBSTRING(book.TITLE, 1, 4) AS title_start FROM book HAVING title_start = \'foo\''; } $this->assertEquals($expected, $this->con->getLastExecutedQuery()); }