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

Merge branch 'develop' into feature/nextgen

Conflicts:
	library/Solarium/QueryType/Select/Query/Component/FacetSet.php
	tests/Solarium/Tests/QueryType/Select/Query/Component/FacetSetTest.php
parents 48baa9be 30e879b1
...@@ -440,45 +440,49 @@ class FacetSet extends Component ...@@ -440,45 +440,49 @@ class FacetSet extends Component
/** /**
* Get a facet field instance * Get a facet field instance
* *
* @param mixed $options * @param mixed $options
* @param bool $add
* @return Facet\Field * @return Facet\Field
*/ */
public function createFacetField($options = null) public function createFacetField($options = null, $add = true)
{ {
return $this->createFacet(self::FACET_FIELD, $options); return $this->createFacet(self::FACET_FIELD, $options, $add);
} }
/** /**
* Get a facet query instance * Get a facet query instance
* *
* @param mixed $options * @param mixed $options
* @param bool $add
* @return Facet\Query * @return Facet\Query
*/ */
public function createFacetQuery($options = null) public function createFacetQuery($options = null, $add = true)
{ {
return $this->createFacet(self::FACET_QUERY, $options); return $this->createFacet(self::FACET_QUERY, $options, $add);
} }
/** /**
* Get a facet multiquery instance * Get a facet multiquery instance
* *
* @param mixed $options * @param mixed $options
* @param bool $add
* @return Facet\MultiQuery * @return Facet\MultiQuery
*/ */
public function createFacetMultiQuery($options = null) public function createFacetMultiQuery($options = null, $add = true)
{ {
return $this->createFacet(self::FACET_MULTIQUERY, $options); return $this->createFacet(self::FACET_MULTIQUERY, $options, $add);
} }
/** /**
* Get a facet range instance * Get a facet range instance
* *
* @param mixed $options * @param mixed $options
* @param bool $add
* @return Facet\Range * @return Facet\Range
*/ */
public function createFacetRange($options = null) public function createFacetRange($options = null, $add = true)
{ {
return $this->createFacet(self::FACET_RANGE, $options); return $this->createFacet(self::FACET_RANGE, $options, $add);
} }
} }
...@@ -333,52 +333,72 @@ class FacetSetTest extends \PHPUnit_Framework_TestCase ...@@ -333,52 +333,72 @@ class FacetSetTest extends \PHPUnit_Framework_TestCase
$this->facetSet->createFacet('invalidtype'); $this->facetSet->createFacet('invalidtype');
} }
public function testCreateFacetField() public function createFacetAddProvider()
{
return array(
array(true),
array(false),
);
}
/**
* @dataProvider createFacetAddProvider
*/
public function testCreateFacetField($add)
{ {
$options = array('optionA' => 1, 'optionB' => 2); $options = array('optionA' => 1, 'optionB' => 2);
$observer = $this->getMock('Solarium\QueryType\Select\Query\Component\FacetSet', array('createFacet')); $observer = $this->getMock('Solarium\QueryType\Select\Query\Component\FacetSet', array('createFacet'));
$observer->expects($this->once()) $observer->expects($this->once())
->method('createFacet') ->method('createFacet')
->with($this->equalTo(FacetSet::FACET_FIELD), $this->equalTo($options)); ->with($this->equalTo(FacetSet::FACET_FIELD), $this->equalTo($options), $add);
$observer->createFacetField($options); $observer->createFacetField($options, $add);
} }
public function testCreateFacetQuery() /**
* @dataProvider createFacetAddProvider
*/
public function testCreateFacetQuery($add)
{ {
$options = array('optionA' => 1, 'optionB' => 2); $options = array('optionA' => 1, 'optionB' => 2);
$observer = $this->getMock('Solarium\QueryType\Select\Query\Component\FacetSet', array('createFacet')); $observer = $this->getMock('Solarium\QueryType\Select\Query\Component\FacetSet', array('createFacet'));
$observer->expects($this->once()) $observer->expects($this->once())
->method('createFacet') ->method('createFacet')
->with($this->equalTo(FacetSet::FACET_QUERY), $this->equalTo($options)); ->with($this->equalTo(FacetSet::FACET_QUERY), $this->equalTo($options), $add);
$observer->createFacetQuery($options); $observer->createFacetQuery($options, $add);
} }
public function testCreateFacetMultiQuery() /**
* @dataProvider createFacetAddProvider
*/
public function testCreateFacetMultiQuery($add)
{ {
$options = array('optionA' => 1, 'optionB' => 2); $options = array('optionA' => 1, 'optionB' => 2);
$observer = $this->getMock('Solarium\QueryType\Select\Query\Component\FacetSet', array('createFacet')); $observer = $this->getMock('Solarium\QueryType\Select\Query\Component\FacetSet', array('createFacet'));
$observer->expects($this->once()) $observer->expects($this->once())
->method('createFacet') ->method('createFacet')
->with($this->equalTo(FacetSet::FACET_MULTIQUERY), $this->equalTo($options)); ->with($this->equalTo(FacetSet::FACET_MULTIQUERY), $this->equalTo($options), $add);
$observer->createFacetMultiQuery($options); $observer->createFacetMultiQuery($options, $add);
} }
public function testCreateFacetRange() /**
* @dataProvider createFacetAddProvider
*/
public function testCreateFacetRange($add)
{ {
$options = array('optionA' => 1, 'optionB' => 2); $options = array('optionA' => 1, 'optionB' => 2);
$observer = $this->getMock('Solarium\QueryType\Select\Query\Component\FacetSet', array('createFacet')); $observer = $this->getMock('Solarium\QueryType\Select\Query\Component\FacetSet', array('createFacet'));
$observer->expects($this->once()) $observer->expects($this->once())
->method('createFacet') ->method('createFacet')
->with($this->equalTo(FacetSet::FACET_RANGE), $this->equalTo($options)); ->with($this->equalTo(FacetSet::FACET_RANGE), $this->equalTo($options), $add);
$observer->createFacetRange($options); $observer->createFacetRange($options, $add);
} }
} }
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