/**
  * Tests getArray method.
  *
  * @param array $filterData
  * @param array $expected
  *
  * @dataProvider testGeoDistanceAggregationGetArrayDataProvider
  */
 public function testGeoDistanceAggregationGetArray($filterData, $expected)
 {
     $aggregation = new GeoDistanceAggregation('foo');
     $aggregation->setOrigin($filterData['origin']);
     $aggregation->setField($filterData['field']);
     $aggregation->setUnit($filterData['unit']);
     $aggregation->setDistanceType($filterData['distance_type']);
     $aggregation->addRange($filterData['ranges'][0], $filterData['ranges'][1]);
     $result = $aggregation->getArray();
     $this->assertEquals($result, $expected);
 }
 /**
  * Test for geo distance aggregation.
  *
  * @param array $queryData
  * @param array $expectedResults
  *
  * @dataProvider getGeoDistanceAggregationData
  */
 public function testGeoDistanceAggregation($queryData, $expectedResults)
 {
     $repo = $this->getManager()->getRepository('AcmeTestBundle:Product');
     $agg = new GeoDistanceAggregation('test_agg');
     $agg->setField($queryData['field']);
     $agg->setUnit($queryData['unit']);
     $agg->addRange($queryData['range'][0], $queryData['range'][1]);
     $agg->setOrigin($queryData['origin']);
     if (array_key_exists('distance_type', $queryData)) {
         $agg->setDistanceType($queryData['distance_type']);
     }
     $search = $repo->createSearch()->addAggregation($agg);
     $results = $repo->execute($search, Repository::RESULTS_RAW)['aggregations']['agg_test_agg'];
     $this->assertEquals($expectedResults, $results['buckets']);
 }