/** * Test for reverse nested terms aggregation. * * @param AbstractAggregation $aggregation * @param AbstractAggregation $reverseAggregation * @param array $expectedResult * @param array $mapping * * @dataProvider getReverseNestedAggregationData */ public function testReverseNestedAggregation($aggregation, $reverseAggregation, $expectedResult, $mapping) { $repository = $this->getManager('default', true, $mapping)->getRepository('AcmeTestBundle:Product'); $revereNestedAggregation = new ReverseNestedAggregation('test_reverse_nested_agg'); $revereNestedAggregation->addAggregation($reverseAggregation); $aggregation->addAggregation($revereNestedAggregation); $nestedAggregation = new NestedAggregation('test_nested_agg'); $nestedAggregation->setPath('sub_products'); $nestedAggregation->addAggregation($aggregation); $search = $repository->createSearch()->addAggregation($nestedAggregation); $results = $repository->execute($search, Repository::RESULTS_RAW); $this->assertArrayHasKey('aggregations', $results); $this->assertArraySubset($expectedResult, $results['aggregations']['agg_test_nested_agg']); }