From 010c0f5e0db12cf186dd19d9117461e827b6dceb Mon Sep 17 00:00:00 2001 From: juliensantos87 <julien.santos87@gmail.com> Date: Thu, 12 Mar 2015 15:32:57 +0100 Subject: [PATCH] add ReverseNestedAggregation ReverseNestedAggregation + tests --- Aggregation/ReverseNestedAggregationTest.php | 97 ++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 Aggregation/ReverseNestedAggregationTest.php diff --git a/Aggregation/ReverseNestedAggregationTest.php b/Aggregation/ReverseNestedAggregationTest.php new file mode 100644 index 0000000..e4e8eee --- /dev/null +++ b/Aggregation/ReverseNestedAggregationTest.php @@ -0,0 +1,97 @@ +<?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\ElasticsearchBundle\Tests\Unit\DSL\Aggregation; + +use ONGR\ElasticsearchBundle\DSL\Aggregation\ReverseNestedAggregation; + +class ReverseNestedAggregationTest extends \PHPUnit_Framework_TestCase +{ + /** + * Test for reverse_nested aggregation toArray() method exception. + * + * @expectedException \LogicException + */ + public function testToArrayException() + { + $aggregation = new ReverseNestedAggregation('test_agg'); + $aggregation->setPath('test_path'); + + $expectedResult = [ + 'agg_test_agg' => [ + 'reverse_nested' => ['path' => 'test_path'], + ], + ]; + + $this->assertEquals($expectedResult, $aggregation->toArray()); + } + + /** + * Test for reverse_nested aggregation toArray() method exception. + */ + public function testToArray() + { + $termMock = $this + ->getMockBuilder('ONGR\ElasticsearchBundle\DSL\Aggregation\TermsAggregation') + ->disableOriginalConstructor() + ->getMock(); + + $termMock + ->expects($this->once()) + ->method('toArray') + ->will($this->returnValue(['terms' => []])); + + $aggregation = new ReverseNestedAggregation('test_nested_agg'); + $aggregation->setPath('test_path'); + $aggregation->addAggregation($termMock); + + $expectedResult = [ + 'agg_test_nested_agg' => [ + 'reverse_nested' => ['path' => 'test_path'], + 'aggregations' => [ + 'terms' => [], + ], + ], + ]; + + $this->assertEquals($expectedResult, $aggregation->toArray()); + } + + /** + * Test for reverse_nested aggregation toArray() without path. + */ + public function testToArrayNoPath() + { + $termMock = $this + ->getMockBuilder('ONGR\ElasticsearchBundle\DSL\Aggregation\TermsAggregation') + ->disableOriginalConstructor() + ->getMock(); + + $termMock + ->expects($this->once()) + ->method('toArray') + ->will($this->returnValue(['terms' => []])); + + $aggregation = new ReverseNestedAggregation('test_nested_agg'); + $aggregation->addAggregation($termMock); + + $expectedResult = [ + 'agg_test_nested_agg' => [ + 'reverse_nested' => new \stdClass(), + 'aggregations' => [ + 'terms' => [], + ], + ], + ]; + + $this->assertEquals($expectedResult, $aggregation->toArray()); + } +} -- GitLab