/** * @param SearchOptions $searchOptions * @return ResultSet */ public function search(SearchOptions $searchOptions) { $queryParameters = QueryParameterBuilder::build($searchOptions); $queryString = http_build_query($queryParameters); $uri = (new Uri('items'))->withQuery($queryString); $request = $this->requestFactory->create('GET', $uri); $response = $this->client->sendRequest($request); $json = $response->getBody()->getContents(); $resultSet = $this->serializer->deserialize($json, ResultSet::class, 'json'); return $resultSet; }
/** * @dataProvider searchOptionsDataProvider * @param SearchOptions $searchOptions * @param array $expected */ public function testSearchOptionsBuilding(SearchOptions $searchOptions, array $expected) { $actual = QueryParameterBuilder::build($searchOptions); $this->assertEquals($actual, $expected); }