diff --git a/tests/Executor/ExecutorTest.php b/tests/Executor/ExecutorTest.php index 335e6ab..df2a33f 100644 --- a/tests/Executor/ExecutorTest.php +++ b/tests/Executor/ExecutorTest.php @@ -3,11 +3,11 @@ namespace GraphQL\Tests\Executor; require_once __DIR__ . '/TestClasses.php'; +use GraphQL\Deferred; use GraphQL\Error\Error; use GraphQL\Executor\ExecutionResult; use GraphQL\Executor\Executor; use GraphQL\Error\FormattedError; -use GraphQL\Executor\Promise\Adapter\ReactPromiseAdapter; use GraphQL\Language\Parser; use GraphQL\Language\SourceLocation; use GraphQL\Schema; @@ -18,7 +18,6 @@ use GraphQL\Type\Definition\ResolveInfo; use GraphQL\Type\Definition\Type; use GraphQL\Type\Definition\UnionType; use GraphQL\Utils; -use React\Promise\Promise; class ExecutorTest extends \PHPUnit_Framework_TestCase { @@ -34,13 +33,12 @@ class ExecutorTest extends \PHPUnit_Framework_TestCase */ public function testExecutesArbitraryCode() { - Executor::setPromiseAdapter(new ReactPromiseAdapter()); $deepData = null; $data = null; $promiseData = function () use (&$data) { - return new Promise(function (callable $resolve) use (&$data) { - return $resolve($data); + return new Deferred(function () use (&$data) { + return $data; }); }; @@ -165,7 +163,7 @@ class ExecutorTest extends \PHPUnit_Framework_TestCase ]); $schema = new Schema(['query' => $dataType]); - $this->assertEquals($expected, self::awaitPromise(Executor::execute($schema, $ast, $data, null, ['size' => 100], 'Example'))); + $this->assertEquals($expected, Executor::execute($schema, $ast, $data, null, ['size' => 100], 'Example')->toArray()); } /** @@ -397,27 +395,37 @@ class ExecutorTest extends \PHPUnit_Framework_TestCase ]; }, 'async' => function() { - return new Promise(function(callable $resolve) { return $resolve('async'); }); + return new Deferred(function() { return 'async'; }); }, 'asyncReject' => function() { - return new Promise(function($_, callable $reject) { return $reject('Error getting asyncReject'); }); + return new Deferred(function() { throw new \Exception('Error getting asyncReject'); }); }, 'asyncRawReject' => function () { - return \React\Promise\reject('Error getting asyncRawReject'); + return new Deferred(function() { + throw new \Exception('Error getting asyncRawReject'); + }); }, 'asyncEmptyReject' => function () { - return \React\Promise\reject(); + return new Deferred(function() { + throw new \Exception(); + }); }, 'asyncError' => function() { - return new Promise(function() { throw new \Exception('Error getting asyncError'); }); + return new Deferred(function() { + throw new \Exception('Error getting asyncError'); + }); }, // inherited from JS reference implementation, but make no sense in this PHP impl // leaving it just to simplify migrations from newer js versions 'asyncRawError' => function() { - return new Promise(function() { throw new \Exception('Error getting asyncRawError'); }); + return new Deferred(function() { + throw new \Exception('Error getting asyncRawError'); + }); }, 'asyncReturnError' => function() { - return \React\Promise\resolve(new \Exception('Error getting asyncReturnError')); + return new Deferred(function() { + throw new \Exception('Error getting asyncReturnError'); + }); }, ]; @@ -516,10 +524,9 @@ class ExecutorTest extends \PHPUnit_Framework_TestCase ] ]; - Executor::setPromiseAdapter(new ReactPromiseAdapter()); - $result = Executor::execute($schema, $docAst, $data); + $result = Executor::execute($schema, $docAst, $data)->toArray(); - $this->assertEquals($expected, self::awaitPromise($result)); + $this->assertEquals($expected, $result); } /** @@ -743,8 +750,6 @@ class ExecutorTest extends \PHPUnit_Framework_TestCase public function testCorrectFieldOrderingDespiteExecutionOrder() { - Executor::setPromiseAdapter(new ReactPromiseAdapter()); - $doc = '{ a, b, @@ -757,13 +762,13 @@ class ExecutorTest extends \PHPUnit_Framework_TestCase return 'a'; }, 'b' => function () { - return new Promise(function (callable $resolve) { return $resolve('b'); }); + return new Deferred(function () { return 'b'; }); }, 'c' => function () { return 'c'; }, 'd' => function () { - return new Promise(function (callable $resolve) { return $resolve('d'); }); + return new Deferred(function () { return 'd'; }); }, 'e' => function () { return 'e'; @@ -794,7 +799,7 @@ class ExecutorTest extends \PHPUnit_Framework_TestCase ] ]; - $this->assertEquals($expected, self::awaitPromise(Executor::execute($schema, $ast, $data))); + $this->assertEquals($expected, Executor::execute($schema, $ast, $data)->toArray()); } /** @@ -1091,17 +1096,4 @@ class ExecutorTest extends \PHPUnit_Framework_TestCase ] ], $result->toArray()); } - - /** - * @param \GraphQL\Executor\Promise\Promise $promise - * @return array - */ - private static function awaitPromise($promise) - { - $results = null; - $promise->then(function (ExecutionResult $executionResult) use (&$results) { - $results = $executionResult->toArray(); - }); - return $results; - } } diff --git a/tests/Executor/ListsTest.php b/tests/Executor/ListsTest.php index 07ca108..7cb98bb 100644 --- a/tests/Executor/ListsTest.php +++ b/tests/Executor/ListsTest.php @@ -117,7 +117,9 @@ class ListsTest extends \PHPUnit_Framework_TestCase // Returns null $this->checkHandlesNullableLists( - \React\Promise\resolve(null), + new Deferred(function() { + return null; + }), [ 'data' => [ 'nest' => [ 'test' => null ] ] ] ); @@ -361,7 +363,9 @@ class ListsTest extends \PHPUnit_Framework_TestCase // Returns null $this->checkHandlesListOfNonNulls( - \React\Promise\resolve(null), + new Deferred(function() { + return null; + }), [ 'data' => [ 'nest' => [ 'test' => null ] ] ] ); @@ -405,7 +409,11 @@ class ListsTest extends \PHPUnit_Framework_TestCase // Contains null $this->checkHandlesListOfNonNulls( - [ \React\Promise\resolve(1), \React\Promise\resolve(null), \React\Promise\resolve(2) ], + [ + new Deferred(function() {return 1;}), + new Deferred(function() {return null;}), + new Deferred(function() {return 2;}) + ], [ 'data' => [ 'nest' => [ 'test' => null ] ] ] ); diff --git a/tests/Executor/MutationsTest.php b/tests/Executor/MutationsTest.php index 3a0fc71..3a580ba 100644 --- a/tests/Executor/MutationsTest.php +++ b/tests/Executor/MutationsTest.php @@ -1,29 +1,18 @@ assertEquals($expected, self::awaitPromise($mutationResult)); + $this->assertEquals($expected, $mutationResult->toArray()); } /** @@ -127,20 +116,7 @@ class MutationsTest extends \PHPUnit_Framework_TestCase ) ] ]; - $this->assertArraySubset($expected, self::awaitPromise($mutationResult)); - } - - /** - * @param \GraphQL\Executor\Promise\Promise $promise - * @return array - */ - private static function awaitPromise($promise) - { - $results = null; - $promise->then(function (ExecutionResult $executionResult) use (&$results) { - $results = $executionResult->toArray(); - }); - return $results; + $this->assertArraySubset($expected, $mutationResult->toArray()); } private function schema() @@ -227,12 +203,12 @@ class Root { /** * @param $newNumber * - * @return Promise + * @return Deferred */ public function promiseToChangeTheNumber($newNumber) { - return new Promise(function (callable $resolve) use ($newNumber) { - return $resolve($this->immediatelyChangeTheNumber($newNumber)); + return new Deferred(function () use ($newNumber) { + return $this->immediatelyChangeTheNumber($newNumber); }); } @@ -245,12 +221,12 @@ class Root { } /** - * @return Promise + * @return Deferred */ public function promiseAndFailToChangeTheNumber() { - return new Promise(function (callable $resolve, callable $reject) { - return $reject(new \Exception("Cannot change the number")); + return new Deferred(function () { + throw new \Exception("Cannot change the number"); }); } }