diff --git a/src/Aggregation/AvgAggregation.php b/src/Aggregation/AvgAggregation.php new file mode 100644 index 0000000..67633fa --- /dev/null +++ b/src/Aggregation/AvgAggregation.php @@ -0,0 +1,13 @@ +assertEquals([ + 'avg' => [ + 'field' => 'avg_price', + ], + ], $query->build()); + } + + public function testItBuildTheAggregationUsingAField(): void + { + $query = new AvgAggregation('avg_price'); + $query->setField('price'); + + $this->assertEquals([ + 'avg' => [ + 'field' => 'price', + ], + ], $query->build()); + } + + public function testItBuildTheAggregationUsingAScript(): void + { + $query = new AvgAggregation('avg_price', new SourceScript('doc.price.value')); + + $this->assertEquals([ + 'avg' => [ + 'script' => [ + 'source' => 'doc.price.value', + ], + ], + ], $query->build()); + } + + public function testItBuildTheAggregationUsingAScriptViaSet(): void + { + $query = new AvgAggregation('avg_price'); + $query->setScript('doc.price.value'); + + $this->assertEquals([ + 'avg' => [ + 'script' => [ + 'source' => 'doc.price.value', + ], + ], + ], $query->build()); + } + + public function testItBuildTheAggregationWithMissingValue(): void + { + $query = new AvgAggregation('avg_price'); + $query->setField('price'); + $query->setMissing(10); + + $this->assertEquals([ + 'avg' => [ + 'field' => 'price', + 'missing' => 10, + ], + ], $query->build()); + } +}