function it_should_return_recommendations(GuzzleClient $client, ResponseParser $parser, RecommendationFactory $factory, Command $command)
 {
     $parameters = ['id' => '1', 'limit' => 30];
     $client->getCommand('recommendations', $parameters)->willReturn($command);
     $results = [['id' => '1', 'uuid' => 'abc', ['score' => ['totalScore' => 0, 'scoreParts' => []]]]];
     $client->execute($command)->willReturn($results);
     $parser->parse($results)->willReturn($results);
     $factory->getRecommendation(['id' => '1', 'uuid' => 'abc', ['score' => ['totalScore' => 0, 'scoreParts' => []]]])->willReturn(new Recommendation('1', 'abc', new Score()));
     $recommendationResult = $this->getRecommendations($parameters);
     $recommendationResult->shouldBeArray();
 }
 /**
  * @param array $parameters
  * @return \GraphAwareReco\Domain\Model\Recommendation[]
  * @throws ServerErrorException
  * @throws UnFoundItemException
  */
 public function getRecommendations(array $parameters)
 {
     $command = $this->client->getCommand('recommendations', $parameters);
     try {
         $result = $this->client->execute($command);
     } catch (CommandClientException $ex) {
         if ($ex->getResponse()->getStatusCode() == 404) {
             throw new UnFoundItemException($parameters, $ex->getResponse()->getBody());
         } elseif ($ex->getResponse()->getStatusCode() == 500) {
             throw new ServerErrorException($parameters, $ex->getResponse()->getBody());
         } else {
             throw new ServerErrorException($parameters, $ex->getResponse()->getBody());
         }
     }
     $recommendationResults = $this->parser->parse($result);
     $recommendations = [];
     foreach ($recommendationResults as $recommendation) {
         $recommendations[] = $this->factory->getRecommendation($recommendation);
     }
     return $recommendations;
 }