diff --git a/tests/Search/QueryTestCase.php b/tests/Search/QueryTestCase.php new file mode 100644 index 000000000..a819157b2 --- /dev/null +++ b/tests/Search/QueryTestCase.php @@ -0,0 +1,119 @@ +. + */ + +/** + * 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') + ->innerJoin('s.SearchTestIndex i'); + + $sq = new Doctrine_Search_Query($q); + $sq->addAlias('i'); + $sq->search('ORM framework'); + $coll = $sq->execute(); + + + } + + public function testGettingRelevancyValues() + { + $dql = 'SELECT s.*, + (SELECT COUNT(i.id) + FROM SearchTestIndex i + WHERE i.keyword = ? + AND i.searchtest_id = s.id) 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); + } + /** + 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); + } + */ +}