Commit cbe9a496 authored by Bas de Nooijer's avatar Bas de Nooijer

- fixed configuration issue in select query

- added new unittests for configuration mode
- updated config mode unittest for select query to better test all config options
parent 30003238
......@@ -456,7 +456,9 @@ class Solarium_Query_Select extends Solarium_Query
foreach ($filterQueries AS $key => $filterQuery) {
// in case of a config array: add key to config
if(is_array($filterQuery)) $filterQuery['key'] = $key;
if (is_array($filterQuery) && !isset($filterQuery['key'])) {
$filterQuery['key'] = $key;
}
$this->addFilterQuery($filterQuery);
}
......@@ -566,8 +568,10 @@ class Solarium_Query_Select extends Solarium_Query
{
foreach ($facets AS $key => $facet) {
// in case of a config array: add key to config
if(is_array($facet)) $facet['key'] = $key;
// in case of a config array: add key to config
if (is_array($facet) && !isset($facet['key'])) {
$facet['key'] = $key;
}
$this->addFacet($facet);
}
......
......@@ -83,6 +83,12 @@ class Solarium_Query_Select_FacetTest extends PHPUnit_Framework_TestCase
$this->_facet = new TestFacet(array('exclude' => array('e1','e2')));
$this->assertEquals(array('e1','e2'), $this->_facet->getExcludes());
}
public function testConstructorWithConfigSingleValueExclude()
{
$this->_facet = new TestFacet(array('exclude' => 'e1'));
$this->assertEquals(array('e1'), $this->_facet->getExcludes());
}
}
class TestFacet extends Solarium_Query_Select_Facet{
......
......@@ -83,4 +83,22 @@ class Solarium_Query_Select_FilterQueryTest extends PHPUnit_Framework_TestCase
$this->_filterQuery->setTags(array('t3','t4'));
$this->assertEquals(array('t3','t4'), $this->_filterQuery->getTags());
}
public function testConstructorWithConfig()
{
$fq = new Solarium_Query_Select_FilterQuery(array('tag' => array('t1','t2'),'key' => 'k1','query'=> 'id:[10 TO 20]'));
$this->assertEquals(array('t1','t2'), $fq->getTags());
$this->assertEquals('k1', $fq->getKey());
$this->assertEquals('id:[10 TO 20]', $fq->getQuery());
}
public function testConstructorWithConfigSingleValueTag()
{
$fq = new Solarium_Query_Select_FilterQuery(array('tag' => 't1','key' => 'k1','query'=> 'id:[10 TO 20]'));
$this->assertEquals(array('t1'), $fq->getTags());
$this->assertEquals('k1', $fq->getKey());
$this->assertEquals('id:[10 TO 20]', $fq->getQuery());
}
}
......@@ -490,11 +490,12 @@ class Solarium_Query_SelectTest extends PHPUnit_Framework_TestCase
'rows' => 100,
'start' => 200,
'filterquery' => array(
array('key' => 'pub', 'tag' => array('pub'),'query' => 'published:true')
array('key' => 'pub', 'tag' => array('pub'),'query' => 'published:true'),
'online' => array('tag' => 'onl','query' => 'online:true')
),
'facet' => array(
array('type' => 'field', 'key' => 'categories', 'field' => 'category'),
array('type' => 'query', 'key' => 'category13', 'query' => 'category:13')
'category13' => array('type' => 'query', 'query' => 'category:13')
),
);
$query = new Solarium_Query_Select($config);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment