/**
* Tests that having() behaves pretty much the same as the where() method
*
* @return void
*/
public function testSelectHaving()
{
$query = new Query($this->connection);
$result = $query->select(['total' => 'count(author_id)', 'author_id'])->from('articles')->join(['table' => 'authors', 'alias' => 'a', 'conditions' => 'author_id = a.id'])->group('author_id')->having(['count(author_id) <' => 2], ['count(author_id)' => 'integer'])->execute();
$expected = [['total' => 1, 'author_id' => 3]];
$this->assertEquals($expected, $result->fetchAll('assoc'));
$result = $query->having(['count(author_id)' => 2], ['count(author_id)' => 'integer'], true)->execute();
$expected = [['total' => 2, 'author_id' => 1]];
$this->assertEquals($expected, $result->fetchAll('assoc'));
$result = $query->having(function ($e) {
return $e->add('count(author_id) = 1 + 1');
}, [], true)->execute();
$expected = [['total' => 2, 'author_id' => 1]];
$this->assertEquals($expected, $result->fetchAll('assoc'));
}