/** * @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(); } }