diff --git a/tests/Aggregation/Pipeline/BucketScriptAggregationTest.php b/tests/Aggregation/Pipeline/BucketScriptAggregationTest.php new file mode 100644 index 0000000000000000000000000000000000000000..5dd8a05aa20f2f81696a978f19a7550350c39400 --- /dev/null +++ b/tests/Aggregation/Pipeline/BucketScriptAggregationTest.php @@ -0,0 +1,63 @@ +<?php + +/* + * This file is part of the ONGR package. + * + * (c) NFQ Technologies UAB <info@nfq.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace ONGR\ElasticsearchDSL\Tests\Aggregation\Pipeline; + +use ONGR\ElasticsearchDSL\Aggregation\Pipeline\BucketScriptAggregation; + +/** + * Unit test for bucket script pipeline aggregation. + */ +class BucketScriptAggregationTest extends \PHPUnit_Framework_TestCase +{ + /** + * Tests toArray method. + */ + public function testToArray() + { + $aggregation = new BucketScriptAggregation( + 'test', + [ + 'my_var1' => 'foo', + 'my_var2' => 'bar', + ] + ); + $aggregation->setScript('test script'); + $aggregation->addParameter('gap_policy', 'insert_zeros'); + + $expected = [ + 'bucket_script' => [ + 'buckets_path' => [ + 'my_var1' => 'foo', + 'my_var2' => 'bar', + ], + 'script' => 'test script', + 'gap_policy' => 'insert_zeros', + ], + ]; + + $this->assertEquals($expected, $aggregation->toArray()); + } + + /** + * Tests if the exception is thrown in getArray method if no + * buckets_path or script is set + * + * @expectedException \LogicException + * @expectedExceptionMessage `test` aggregation must have script set. + */ + public function testGetArrayException() + { + $agg = new BucketScriptAggregation('test', []); + + $agg->getArray(); + } +}