5 class CallTest
extends BaseTest
12 * @dataProvider provideAPI
14 function testResolvesPromiseWithResultAfterCallCompletes($api) {
15 $m6w6 = $this->assertSuccess($api->users
->m6w6
);
16 $this->assertInstanceOf(API
::class, $m6w6);
21 * @dataProvider provideAPI
23 function testExportsArrayWithKeysDataAndUrlAndTypeAndLinksAndHeaders($api) {
24 $m6w6 = $this->assertSuccess($api->users
->m6w6
);
25 $export = $m6w6->export();
26 $this->assertArrayHasKey("data", $export);
27 $this->assertArrayHasKey("url", $export);
28 $this->assertArrayHasKey("type", $export);
29 $this->assertArrayHasKey("links", $export);
30 $this->assertArrayHasKey("headers", $export);
35 * @dataProvider provideAPI
37 function testFetchedDataIsAccessibleOnPropertyAccess($api) {
38 $m6w6 = $this->assertSuccess($api->users
->m6w6
);
39 $this->assertEquals("m6w6", $m6w6->login
);
44 * @dataProvider provideAPI
46 function testFetchedDataIsAccessibleOnPropertyAccessDespiteUrlSuffixAvailable($api) {
47 $m6w6 = $this->assertSuccess($api->users
->m6w6
);
48 $this->assertGreaterThan(0, (int) (string) $m6w6->followers
);
53 * @dataProvider provideAPI
55 function testFetchUrlSuffix($api) {
56 $m6w6 = $this->assertSuccess($api->users
->m6w6
);
57 $followers = $this->assertSuccess($api->users
->m6w6
->followers
);
58 $data = $followers->export()["data"];
59 $this->assertInternalType("array", $data);
60 $this->assertInternalType("object", $data[0]);
61 $this->assertInternalType("object", $followers->{0});
62 $this->assertGreaterThan(30, (string) $m6w6->followers
);
63 $this->assertGreaterThan(0, count($followers));
68 * @dataProvider provideAPI
70 function testFetchExplicitUrlSuffix($api) {
71 $m6w6 = $this->assertSuccess($api->users
->m6w6
);
72 $followers = $this->assertSuccess($m6w6->followers_url
);
73 $data = $followers->export()["data"];
74 $this->assertInternalType("array", $data);
75 $this->assertInternalType("object", $data[0]);
76 $this->assertInternalType("object", $followers->{0});
77 $this->assertGreaterThan(30, (string) $m6w6->followers
);
78 $this->assertGreaterThan(0, count($followers));
83 * @dataProvider provideAPI
85 function testFetchImplicitUrlSuffix($api) {
86 $m6w6 = $this->assertSuccess($api->users
->m6w6
);
87 $promise = $m6w6->followers();
88 $this->consumePromise($promise, $errors, $results);
90 $this->assertEmpty($errors);
91 $this->assertNotEmpty($results);
92 $followers = $results[0];
93 $this->assertInstanceOf(API
::class, $followers);
94 $data = $followers->export()["data"];
95 $this->assertInternalType("array", $data);
96 $this->assertGreaterThan(0, count($data));
101 * @dataProvider provideAPI
103 function testFetchParallelFromIterator($api) {
104 $m6w6 = $this->assertSuccess($api->users
->m6w6
);
105 foreach ($m6w6 as $key => $val) {
111 if (substr($key, -4) === "_url") {
116 $results = $this->assertAllSuccess($batch);
117 $this->assertGreaterThan(2, $results);