diff --git a/src/Search.php b/src/Search.php index fc91a90c17f1ed1f932702cdb1e400b3780e4832..b8d83d6ff86cbf8e93a03e76a4a9f4eb48e7a0c5 100644 --- a/src/Search.php +++ b/src/Search.php @@ -78,6 +78,11 @@ class Search */ private $searchType; + /** + * @var string + */ + private $requestCache; + /** * @var bool */ @@ -640,6 +645,31 @@ class Search return $this->searchType; } + + /** + * Set request cache. + * + * @param string $requestCache + * + * @return $this + */ + public function setRequestCache($requestCache) + { + $this->requestCache = $requestCache; + + return $this; + } + + /** + * Returns request cache. + * + * @return string + */ + public function getRequestCache() + { + return $this->requestCache; + } + /** * Setter for preference. * @@ -691,6 +721,7 @@ class Search [ 'scroll' => $this->getScroll(), 'search_type' => $this->getSearchType(), + 'request_cache' => $this->getRequestCache(), 'preference' => $this->getPreference(), ] ); diff --git a/tests/SearchTest.php b/tests/SearchTest.php index 4646edb2001043085fa1a153eea8053acf4b780e..764a61bdf405dc75a03db46d5f21cd7cdf2dff99 100644 --- a/tests/SearchTest.php +++ b/tests/SearchTest.php @@ -104,4 +104,48 @@ class SearchTest extends \PHPUnit_Framework_TestCase $search->toArray() ); } + + /** + * Data provider for test testSettingQueryParams() + * + * @return array + */ + public function getTestSettingQueryParamsData() + { + $cases = []; + + $search = new Search(); + $search->setSearchType('dfs_query_then_fetch'); + $cases['Only search_type is set'] = [ + $search, + [ + 'search_type' => 'dfs_query_then_fetch', + ], + ]; + + $search = new Search(); + $search->setRequestCache(true); + $cases['Only request_cache is set'] = [ + $search, + [ + 'request_cache' => true, + ], + ]; + + return $cases; + } + + /** + * @dataProvider getTestSettingQueryParamsData() + * + * @param Search $search + * @param array $expected + */ + public function testSettingQueryParams($search, $expected) + { + $this->assertEquals( + $expected, + $search->getQueryParams() + ); + } }