5 class GeneratorTest
extends BaseTest
11 * @dataProvider provideApi
13 function testIteratesOverAGeneratorOfPromises($api) {
14 $api(function($api) use(&$gists_count, &$files_count) {
15 $gists = yield
$api->users
->m6w6
->gists();
16 $gists_count = count($gists);
17 foreach ($gists as $gist) {
18 $files_count +
= count($gist->files
);
21 $this->assertGreaterThan(0, $gists_count);
22 $this->assertGreaterThanOrEqual($gists_count, $files_count);
27 * @dataProvider provideAPI
29 function testIteratesOverAGeneratorOfPromisesUsingLinks($api) {
30 $promise = $api(function($api) use(&$repos, &$first, &$next, &$last, &$prev) {
31 $repos = yield
$api->users
->m6w6
->repos(["per_page" => 1]);
32 $last = yield Links\
last($repos);
33 $prev = yield Links\
prev($last);
34 $next = yield Links\next
($prev);
35 $first = yield Links\first
($prev);
39 $this->consumePromise($promise, $errors, $results);
40 $this->assertEmpty($errors);
41 $this->assertEquals([-123], $results);
43 $first_data = $first->export()["data"];
44 $next_data = $next->export()["data"];
45 $last_data = $last->export()["data"];
46 $repos_data = $repos->export()["data"];
48 $this->assertEquals($repos_data, $first_data);
49 $this->assertEquals($last_data, $next_data);