diff --git a/tests/Aggregation/Pipeline/BucketSelectorAggregationTest.php b/tests/Aggregation/Pipeline/BucketSelectorAggregationTest.php new file mode 100644 index 0000000000000000000000000000000000000000..559c2d9b1cebde33d39c59dd39fae96c9416f23b --- /dev/null +++ b/tests/Aggregation/Pipeline/BucketSelectorAggregationTest.php @@ -0,0 +1,61 @@ +<?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\BucketSelectorAggregation; + +/** + * Unit test for bucket selector pipeline aggregation. + */ +class BucketSelectorAggregationTest extends \PHPUnit_Framework_TestCase +{ + /** + * Tests toArray method. + */ + public function testToArray() + { + $aggregation = new BucketSelectorAggregation( + 'test', + [ + 'my_var1' => 'foo', + 'my_var2' => 'bar', + ] + ); + $aggregation->setScript('foo > bar'); + + $expected = [ + 'bucket_selector' => [ + 'buckets_path' => [ + 'my_var1' => 'foo', + 'my_var2' => 'bar', + ], + 'script' => 'foo > bar', + ], + ]; + + $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 BucketSelectorAggregation('test', []); + + $agg->getArray(); + } +}