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