public function testFields()
{
$query = new Query(array('type' => 'read', 'model' => $this->_model, 'with' => array('MockDatabaseComment')));
$fields = array('id', 'title');
$result = $this->_db->fields($fields, $query);
$expected = '{MockDatabasePost}.{id}, {MockDatabasePost}.{title}';
$this->assertEqual($expected, $result);
$fields = array('MockDatabasePost' => array('id', 'title', 'created'), 'MockDatabaseComment' => array('body'));
$result = $this->_db->fields($fields, $query);
$expected = '{MockDatabasePost}.{id}, {MockDatabasePost}.{title},';
$expected .= ' {MockDatabasePost}.{created}, {MockDatabaseComment}.{body}';
$this->assertEqual($expected, $result);
$fields = array('MockDatabasePost', 'MockDatabaseComment');
$result = $this->_db->fields($fields, $query);
$expected = '{MockDatabasePost}.*, {MockDatabaseComment}.*';
$this->assertEqual($expected, $result);
$fields = array('MockDatabasePost.id as idPost', 'MockDatabaseComment.id AS idComment');
$result = $this->_db->fields($fields, $query);
$expected = '{MockDatabasePost}.{id} as idPost, {MockDatabaseComment}.{id} as idComment';
$this->assertEqual($expected, $result);
$expected = array('' => array('idPost'), 'MockDatabaseComment' => array('idComment'));
$this->assertEqual($expected, $query->map());
$fields = array(array('count(MockDatabasePost.id)'));
$expected = 'count(MockDatabasePost.id)';
$result = $this->_db->fields($fields, $query);
$this->assertEqual($expected, $result);
$fields = array(array((object) 'count(MockDatabasePost.id)'));
$expected = 'count(MockDatabasePost.id)';
$result = $this->_db->fields($fields, $query);
$this->assertEqual($expected, $result);
}