diff --git a/tests/Query/FunctionScoreQueryTest.php b/tests/Query/FunctionScoreQueryTest.php index fb83cf0470533132dfa395da9b5689cec54e4ad8..85c034da46fb0d7d5597c2ccf19f855bb9f2de4d 100644 --- a/tests/Query/FunctionScoreQueryTest.php +++ b/tests/Query/FunctionScoreQueryTest.php @@ -13,6 +13,7 @@ namespace ONGR\ElasticsearchDSL\Tests\Unit\DSL\Query; use ONGR\ElasticsearchDSL\BuilderInterface; use ONGR\ElasticsearchDSL\Query\FunctionScoreQuery; +use ONGR\ElasticsearchDSL\Query\MatchAllQuery; use PHPUnit_Framework_MockObject_MockObject as MockObject; /** @@ -20,6 +21,60 @@ use PHPUnit_Framework_MockObject_MockObject as MockObject; */ class FunctionScoreQueryTest extends \PHPUnit_Framework_TestCase { + /** + * Data provider for testAddRandomFunction. + * + * @return array + */ + public function addRandomFunctionProvider() + { + return [ + // Case #0. No seed. + [ + 'seed' => null, + 'expectedArray' => [ + 'query' => [ null => null ], + 'functions' => [ + [ + 'random_score' => new \stdClass(), + ], + ], + ], + ], + // Case #1. With seed. + [ + 'seed' => 'someSeed', + 'expectedArray' => [ + 'query' => [ null => null ], + 'functions' => [ + [ + 'random_score' => [ 'seed' => 'someSeed'], + ], + ], + ], + ], + ]; + } + + /** + * Tests addRandomFunction method. + * + * @param mixed $seed + * @param array $expectedArray + * + * @dataProvider addRandomFunctionProvider + */ + public function testAddRandomFunction($seed, $expectedArray) + { + /** @var MatchAllQuery|MockObject $matchAllQuery */ + $matchAllQuery = $this->getMock('ONGR\ElasticsearchDSL\Query\MatchAllQuery'); + + $functionScoreQuery = new FunctionScoreQuery($matchAllQuery); + $functionScoreQuery->addRandomFunction($seed); + + $this->assertEquals($expectedArray, $functionScoreQuery->toArray()); + } + /** * Tests default argument values. */