/**
* @group functional
*/
public function testFilterAggregation()
{
$agg = new Filters('by_color');
$agg->addFilter(new Term(array('color' => 'blue')), 'blue');
$agg->addFilter(new Term(array('color' => 'red')), 'red');
$avg = new Avg('avg_price');
$avg->setField('price');
$agg->addAggregation($avg);
$query = new Query();
$query->addAggregation($agg);
$results = $this->_getIndexForTest()->search($query)->getAggregation('by_color');
$resultsForBlue = $results['buckets']['blue'];
$resultsForRed = $results['buckets']['red'];
$this->assertEquals(2, $resultsForBlue['doc_count']);
$this->assertEquals(1, $resultsForRed['doc_count']);
$this->assertEquals((5 + 8) / 2, $resultsForBlue['avg_price']['value']);
$this->assertEquals(1, $resultsForRed['avg_price']['value']);
}