/**
  * 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']);
 }