3 use AsyncInterop\Promise
;
6 class APITest
extends BaseTest
8 function provideHttpMethodAndAPI() {
18 foreach ($this->provideAPI() as $name => list($api)) {
19 foreach ($methods as $method) {
20 $data["$method $name"] = [$api, $method];
28 * @dataProvider provideAPI
30 function testReturnsApiOnPropertyAccess($api) {
31 $this->assertInstanceOf(API
::class, $api->foo
);
36 * @dataProvider provideAPI
38 function testReturnsCloneOnPropertyAccess($api) {
39 $this->assertNotEquals($api, $api->bar
);
44 * @dataProvider provideAPI
46 function testReturnsPromiseOnMethodCall($api) {
47 $this->assertInstanceOf(Promise
::class, $api->baz());
51 * @dataProvider provideHttpMethodAndAPI
53 function testProvidesMethodForStandardHttpMethod($api, $method) {
54 $this->assertTrue(method_exists($api, $method));
58 * @dataProvider provideHttpMethodAndAPI
60 function testReturnsPromiseOnMethodCallForStandardHttpMethod($api, $method) {
61 $this->assertInstanceOf(Promise
::class, $api->$method());
66 * @dataProvider provideAPI
67 * @depends testProvidesMethodForStandardHttpMethod
68 * @depends testReturnsPromiseOnMethodCallForStandardHttpMethod
70 function testProvidesMethodsForStandardHttpMethods($api) {
71 $this->assertTrue(true);