public function testHaving()
{
$query = new Query(array('type' => 'read', 'model' => $this->_model, 'having' => array('or' => array('id' => 'value1', 'title' => 'value2', 'and' => array('author_id' => '1', 'created' => '2012-05-25 23:41:00'), array('title' => 'value2'), array('title' => null)), 'id' => '3', 'author_id' => false)));
$sql = "SELECT * FROM {mock_database_posts} AS {MockDatabasePost} HAVING ";
$sql .= "({MockDatabasePost}.{id} = 0 OR {MockDatabasePost}.{title} = 'value2' OR ";
$sql .= "({MockDatabasePost}.{author_id} = 1 AND {MockDatabasePost}.{created} = ";
$sql .= "'2012-05-25 23:41:00') OR ({MockDatabasePost}.{title} = 'value2') OR ";
$sql .= "({MockDatabasePost}.{title} IS NULL)) AND {MockDatabasePost}.{id} = 3 AND ";
$sql .= "{MockDatabasePost}.{author_id} = 0;";
$this->assertEqual($sql, $this->_db->renderCommand($query));
$query = new Query(array('type' => 'read', 'model' => $this->_model, 'having' => array('title' => array('0900'))));
$sql = 'SELECT * FROM {mock_database_posts} AS {MockDatabasePost}';
$sql .= ' HAVING {title} IN (\'0900\');';
$this->assertEqual($sql, $this->_db->renderCommand($query));
}