. */ /** * Doctrine_Search_Query_TestCase * * @package Doctrine * @author Konsta Vesterinen * @license http://www.opensource.org/licenses/lgpl-license.php LGPL * @category Object Relational Mapping * @link www.phpdoctrine.com * @since 1.0 * @version $Revision$ */ class Doctrine_Search_Query_TestCase extends Doctrine_UnitTestCase { public function prepareTables() { $this->tables = array('SearchTest', 'SearchTestIndex'); parent::prepareTables(); } public function prepareData() { } public function testInitData() { $e = new SearchTest(); $e->title = 'Once there was an ORM framework'; $e->content = 'There are many ORM frameworks, but nevertheless we decided to create one.'; $e->save(); $e = new SearchTest(); $e->title = 'Doctrine development continues'; $e->content = 'The development has been going well so far.'; $e->save(); } public function testQuerying() { $q = new Doctrine_Query(); $q->select('s.*') ->from('SearchTest s'); $sq = new Doctrine_Search_Query($q); $sq->addAlias('i'); $sq->search('ORM framework'); //print $q->getDql(); //$coll = $sq->execute(); //$this->assertEqual($coll[0]->relevancy, 2); //$this->assertEqual($coll[1]->relevancy, 0); } public function testGettingRelevancyValues() { $dql = 'SELECT s.*, (SELECT COUNT(o.position) FROM SearchTestIndex o WHERE o.keyword = ? AND s.id = o.searchtest_id) relevancy FROM SearchTest s LEFT JOIN s.SearchTestIndex i2 WHERE i2.keyword = ?'; $q = new Doctrine_Query(); $q->parseQuery($dql); $coll = $q->execute(array('orm', 'orm'), Doctrine_Hydrate::HYDRATE_ARRAY); //print_r($coll); //$this->assertEqual($coll[0]->relevancy, 2); //$this->assertEqual($coll[1]->relevancy, 0); } /** public function testGettingWeightedRelevancyValues() { $dql = "SELECT s.*, ((SELECT COUNT(i.id) FROM SearchTestIndex i WHERE i.keyword = ? AND i.searchtest_id = s.id AND i.field = 'title') * 2 + (SELECT COUNT(i.id) FROM SearchTestIndex i WHERE i.keyword = ? AND i.searchtest_id = s.id AND i.field = 'content')) relevancy FROM SearchTest s"; $q = new Doctrine_Query(); $q->parseQuery($dql); $coll = $q->execute(array('orm')); $this->assertEqual($coll[0]->relevancy, 2); $this->assertEqual($coll[1]->relevancy, 0); } */ }