summaryrefslogtreecommitdiff
path: root/vendor/ruflin/elastica/test/lib/Elastica/Test/Aggregation/FilterTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/ruflin/elastica/test/lib/Elastica/Test/Aggregation/FilterTest.php')
-rw-r--r--vendor/ruflin/elastica/test/lib/Elastica/Test/Aggregation/FilterTest.php95
1 files changed, 65 insertions, 30 deletions
diff --git a/vendor/ruflin/elastica/test/lib/Elastica/Test/Aggregation/FilterTest.php b/vendor/ruflin/elastica/test/lib/Elastica/Test/Aggregation/FilterTest.php
index dd4d4c2d..9198bb95 100644
--- a/vendor/ruflin/elastica/test/lib/Elastica/Test/Aggregation/FilterTest.php
+++ b/vendor/ruflin/elastica/test/lib/Elastica/Test/Aggregation/FilterTest.php
@@ -1,8 +1,6 @@
<?php
-
namespace Elastica\Test\Aggregation;
-
use Elastica\Aggregation\Avg;
use Elastica\Aggregation\Filter;
use Elastica\Document;
@@ -12,67 +10,104 @@ use Elastica\Query;
class FilterTest extends BaseAggregationTest
{
- protected function setUp()
+ protected function _getIndexForTest()
{
- parent::setUp();
- $this->_index = $this->_createIndex("filter");
- $docs = array(
- new Document("1", array("price" => 5, "color" => "blue")),
- new Document("2", array("price" => 8, "color" => "blue")),
- new Document("3", array("price" => 1, "color" => "red")),
- new Document("4", array("price" => 3, "color" => "green")),
- );
- $this->_index->getType("test")->addDocuments($docs);
- $this->_index->refresh();
+ $index = $this->_createIndex();
+
+ $index->getType('test')->addDocuments(array(
+ new Document(1, array('price' => 5, 'color' => 'blue')),
+ new Document(2, array('price' => 8, 'color' => 'blue')),
+ new Document(3, array('price' => 1, 'color' => 'red')),
+ new Document(4, array('price' => 3, 'color' => 'green')),
+ ));
+
+ $index->refresh();
+
+ return $index;
}
+ /**
+ * @group unit
+ */
public function testToArray()
{
$expected = array(
- "filter" => array("range" => array("stock" => array("gt" => 0))),
- "aggs" => array(
- "avg_price" => array("avg" => array("field" => "price"))
- )
+ 'filter' => array('range' => array('stock' => array('gt' => 0))),
+ 'aggs' => array(
+ 'avg_price' => array('avg' => array('field' => 'price')),
+ ),
);
- $agg = new Filter("in_stock_products");
- $agg->setFilter(new Range("stock", array("gt" => 0)));
- $avg = new Avg("avg_price");
- $avg->setField("price");
+ $agg = new Filter('in_stock_products');
+ $agg->setFilter(new Range('stock', array('gt' => 0)));
+ $avg = new Avg('avg_price');
+ $avg->setField('price');
$agg->addAggregation($avg);
$this->assertEquals($expected, $agg->toArray());
}
+ /**
+ * @group functional
+ */
public function testFilterAggregation()
{
- $agg = new Filter("filter");
- $agg->setFilter(new Term(array("color" => "blue")));
- $avg = new Avg("price");
- $avg->setField("price");
+ $agg = new Filter('filter');
+ $agg->setFilter(new Term(array('color' => 'blue')));
+ $avg = new Avg('price');
+ $avg->setField('price');
$agg->addAggregation($avg);
$query = new Query();
$query->addAggregation($agg);
- $results = $this->_index->search($query)->getAggregation("filter");
+ $results = $this->_getIndexForTest()->search($query)->getAggregation('filter');
$results = $results['price']['value'];
$this->assertEquals((5 + 8) / 2.0, $results);
}
+ /**
+ * @group functional
+ */
public function testFilterNoSubAggregation()
{
- $agg = new Avg("price");
- $agg->setField("price");
+ $agg = new Avg('price');
+ $agg->setField('price');
$query = new Query();
$query->addAggregation($agg);
- $results = $this->_index->search($query)->getAggregation("price");
+ $results = $this->_getIndexForTest()->search($query)->getAggregation('price');
$results = $results['value'];
$this->assertEquals((5 + 8 + 1 + 3) / 4.0, $results);
}
+
+ /**
+ * @group unit
+ */
+ public function testConstruct()
+ {
+ $agg = new Filter('foo', new Term(array('color' => 'blue')));
+
+ $expected = array(
+ 'filter' => array(
+ 'term' => array(
+ 'color' => 'blue',
+ ),
+ ),
+ );
+
+ $this->assertEquals($expected, $agg->toArray());
+ }
+
+ /**
+ * @group unit
+ */
+ public function testConstructWithoutFilter()
+ {
+ $agg = new Filter('foo');
+ $this->assertEquals('foo', $agg->getName());
+ }
}
- \ No newline at end of file