diff options
Diffstat (limited to 'assets/php/vendor/react/promise/tests/PromiseTest.php')
-rw-r--r-- | assets/php/vendor/react/promise/tests/PromiseTest.php | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/assets/php/vendor/react/promise/tests/PromiseTest.php b/assets/php/vendor/react/promise/tests/PromiseTest.php new file mode 100644 index 0000000..dc7b733 --- /dev/null +++ b/assets/php/vendor/react/promise/tests/PromiseTest.php @@ -0,0 +1,84 @@ +<?php + +namespace React\Promise; + +use React\Promise\PromiseAdapter\CallbackPromiseAdapter; + +class PromiseTest extends TestCase +{ + use PromiseTest\FullTestTrait; + + public function getPromiseTestAdapter(callable $canceller = null) + { + $resolveCallback = $rejectCallback = $progressCallback = null; + + $promise = new Promise(function ($resolve, $reject, $progress) use (&$resolveCallback, &$rejectCallback, &$progressCallback) { + $resolveCallback = $resolve; + $rejectCallback = $reject; + $progressCallback = $progress; + }, $canceller); + + return new CallbackPromiseAdapter([ + 'promise' => function () use ($promise) { + return $promise; + }, + 'resolve' => $resolveCallback, + 'reject' => $rejectCallback, + 'notify' => $progressCallback, + 'settle' => $resolveCallback, + ]); + } + + /** @test */ + public function shouldRejectIfResolverThrowsException() + { + $exception = new \Exception('foo'); + + $promise = new Promise(function () use ($exception) { + throw $exception; + }); + + $mock = $this->createCallableMock(); + $mock + ->expects($this->once()) + ->method('__invoke') + ->with($this->identicalTo($exception)); + + $promise + ->then($this->expectCallableNever(), $mock); + } + + /** @test */ + public function shouldFulfillIfFullfilledWithSimplePromise() + { + $adapter = $this->getPromiseTestAdapter(); + + $mock = $this->createCallableMock(); + $mock + ->expects($this->once()) + ->method('__invoke') + ->with($this->identicalTo('foo')); + + $adapter->promise() + ->then($mock); + + $adapter->resolve(new SimpleFulfilledTestPromise()); + } + + /** @test */ + public function shouldRejectIfRejectedWithSimplePromise() + { + $adapter = $this->getPromiseTestAdapter(); + + $mock = $this->createCallableMock(); + $mock + ->expects($this->once()) + ->method('__invoke') + ->with($this->identicalTo('foo')); + + $adapter->promise() + ->then($this->expectCallableNever(), $mock); + + $adapter->resolve(new SimpleRejectedTestPromise()); + } +} |