public function testQueryParser() { $sql = 'SELECT {p.*} FROM photos p'; $query = new Doctrine_RawSql($this->connection); $query->parseDqlQuery($sql); $this->assertEqual($query->getSqlQueryPart('from'), array('photos p')); $sql = 'SELECT {p.*} FROM (SELECT p.* FROM photos p LEFT JOIN photos_tags t ON t.photo_id = p.id WHERE t.tag_id = 65) p LEFT JOIN photos_tags t ON t.photo_id = p.id WHERE p.can_see = -1 AND t.tag_id = 62 LIMIT 200'; $query->parseDqlQuery($sql); $this->assertEqual($query->getSqlQueryPart('from'), array('(SELECT p.* FROM photos p LEFT JOIN photos_tags t ON t.photo_id = p.id WHERE t.tag_id = 65) p LEFT JOIN photos_tags t ON t.photo_id = p.id')); $this->assertEqual($query->getSqlQueryPart('where'), array('p.can_see = -1 AND t.tag_id = 62')); $this->assertEqual($query->getSqlQueryPart('limit'), array(200)); }