/** * @dataProvider rawSearchParametersProvider */ public function test_SearchParameters_Prepares_Data_For_Search_API($rawParameters) { $searchParameters = new SearchParameters($rawParameters); $expectedKeys = ['signature', 'marker', 'host', 'user_ip', 'locale', 'trip_class', 'passengers', 'adults', 'children', 'infants', 'segments', 'origin', 'destination', 'date']; $actualSearchParameters = $searchParameters->getApiParams(); $assert = function ($data) use($expectedKeys, &$assert) { foreach ($data as $key => $value) { if (is_array($data[$key])) { $assert($data[$key]); continue; } $this->assertContains($key, $expectedKeys, "Asserting that {$key} is valid"); } }; $assert($actualSearchParameters); }
/** * Returns the searchID * @return string */ public function run() { $searchParams = $this->searchParameters->getApiParams(); $response = $this->executeRequest($searchParams); return $response->getSearchID(); }