/** * Test for geo bounds aggregation with match query. */ public function testGeoBoundsAggregation() { $repo = $this->getManager()->getRepository('AcmeTestBundle:Product'); $query = new MatchQuery('price', 100); $agg = new GeoBoundsAggregation('test_agg'); $agg->setWrapLongitude(false); $agg->setField('location'); $search = $repo->createSearch()->addQuery($query); $search->addAggregation($agg); $results = $repo->execute($search, $repo::RESULTS_RAW)['aggregations']; $expectedResult = ['agg_test_agg' => ['bounds' => ['top_left' => ['lat' => 55.55, 'lon' => -80.66], 'bottom_right' => ['lat' => 40, 'lon' => -66.66]]]]; $this->assertEquals($expectedResult, $results); }
/** * Tests getArray method. */ public function testGeoBoundsAggregationGetArray() { $agg = new GeoBoundsAggregation('foo'); $agg->setField('bar'); $agg->setWrapLongitude(true); $result = ['agg_foo' => ['geo_bounds' => ['field' => 'bar', 'wrap_longitude' => true]]]; $this->assertEquals($result, $agg->toArray(), 'when wraplongitude is true'); $agg->setWrapLongitude(false); $result = ['agg_foo' => ['geo_bounds' => ['field' => 'bar', 'wrap_longitude' => false]]]; $this->assertEquals($result, $agg->toArray(), 'when wraplongitude is false'); }