/**
  * @test
  *
  * description hasPrevious
  */
 public function shouldHavePrevious()
 {
     $responseMock = $this->getResponseMock('<http://github.com/previous>; rel="prev"');
     $httpClient = $this->getHttpClientMock($responseMock);
     $client = $this->getClientMock($httpClient);
     $paginator = new Github\ResultPager($client);
     $paginator->postFetch();
     $this->assertEquals($paginator->hasPrevious(), true);
     $this->assertEquals($paginator->hasNext(), false);
 }
 /**
  * @param Client $client
  * @param string $method
  * @param array $params
  * @return \Generator
  */
 protected function fetchUsersAsGenerator(Client $client, $method, $params)
 {
     $paginator = new ResultPager($client);
     $userApi = $client->api('user');
     $results = $paginator->fetch($userApi, $method, $params);
     while (true) {
         foreach ($results as $result) {
             if (is_array($result) && isset($result[0]) && is_array($result[0])) {
                 foreach ($result as $user) {
                     (yield $user);
                 }
             } else {
                 (yield $result);
             }
         }
         if (!$paginator->hasNext()) {
             break;
         }
         $results = $paginator->fetchNext();
     }
 }