/**
  * Check if aggregation returns the expected array.
  */
 public function testToArray()
 {
     $sorts = new Sorts();
     $aggregation = new TopHitsAggregation('test', 0, 1);
     $expectedAgg = new \stdClass();
     $expectedAgg->size = 0;
     $expectedAgg->from = 1;
     $expectedAgg->sort = $sorts->toArray();
     $expected = ['agg_test' => ['top_hits' => $expectedAgg]];
     $this->assertEquals($expected, $aggregation->toArray());
 }
 /**
  * @return Search
  */
 public function getTestSubAggregationsData()
 {
     $out = [];
     // Case 0: top hits aggregation inside ranges.
     $search = new Search();
     $rangeAgg = new RangeAggregation('range');
     $rangeAgg->setField('price');
     $rangeAgg->addRange(null, 15);
     $rangeAgg->addRange(15);
     $topHitsAgg = new TopHitsAggregation('top_hits');
     $topHitsAgg->setSort(new Sorts(new Sort('price', Sort::ORDER_DESC)));
     $rangeAgg->addAggregation($topHitsAgg);
     $search->addAggregation($rangeAgg);
     $expectedTopHits = [[1], [2, 3]];
     $out[] = [$search, $expectedTopHits];
     return $out;
 }