Commit 30e879b1 authored by Bas de Nooijer's avatar Bas de Nooijer

Merge pull request #102 from bendavies/develop

Expose and passthrough add parameter in FacetSet createFacet* helpers
parents 6981a90c 3148507f
...@@ -411,44 +411,48 @@ class Solarium_Query_Select_Component_FacetSet extends Solarium_Query_Select_Com ...@@ -411,44 +411,48 @@ class Solarium_Query_Select_Component_FacetSet extends Solarium_Query_Select_Com
* Get a facet field instance * Get a facet field instance
* *
* @param mixed $options * @param mixed $options
* @param bool $add
* @return Solarium_Query_Select_Component_Facet_Field * @return Solarium_Query_Select_Component_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 Solarium_Query_Select_Component_Facet_Query * @return Solarium_Query_Select_Component_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 Solarium_Query_Select_Component_Facet_MultiQuery * @return Solarium_Query_Select_Component_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 Solarium_Query_Select_Component_Facet_Range * @return Solarium_Query_Select_Component_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);
} }
} }
\ No newline at end of file
...@@ -318,52 +318,72 @@ class Solarium_Query_Select_Component_FacetSetTest extends PHPUnit_Framework_Tes ...@@ -318,52 +318,72 @@ class Solarium_Query_Select_Component_FacetSetTest extends PHPUnit_Framework_Tes
$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_Query_Select_Component_FacetSet', array('createFacet')); $observer = $this->getMock('Solarium_Query_Select_Component_FacetSet', array('createFacet'));
$observer->expects($this->once()) $observer->expects($this->once())
->method('createFacet') ->method('createFacet')
->with($this->equalTo(Solarium_Query_Select_Component_FacetSet::FACET_FIELD), $this->equalTo($options)); ->with($this->equalTo(Solarium_Query_Select_Component_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_Query_Select_Component_FacetSet', array('createFacet')); $observer = $this->getMock('Solarium_Query_Select_Component_FacetSet', array('createFacet'));
$observer->expects($this->once()) $observer->expects($this->once())
->method('createFacet') ->method('createFacet')
->with($this->equalTo(Solarium_Query_Select_Component_FacetSet::FACET_QUERY), $this->equalTo($options)); ->with($this->equalTo(Solarium_Query_Select_Component_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_Query_Select_Component_FacetSet', array('createFacet')); $observer = $this->getMock('Solarium_Query_Select_Component_FacetSet', array('createFacet'));
$observer->expects($this->once()) $observer->expects($this->once())
->method('createFacet') ->method('createFacet')
->with($this->equalTo(Solarium_Query_Select_Component_FacetSet::FACET_MULTIQUERY), $this->equalTo($options)); ->with($this->equalTo(Solarium_Query_Select_Component_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_Query_Select_Component_FacetSet', array('createFacet')); $observer = $this->getMock('Solarium_Query_Select_Component_FacetSet', array('createFacet'));
$observer->expects($this->once()) $observer->expects($this->once())
->method('createFacet') ->method('createFacet')
->with($this->equalTo(Solarium_Query_Select_Component_FacetSet::FACET_RANGE), $this->equalTo($options)); ->with($this->equalTo(Solarium_Query_Select_Component_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