<?php namespace React\Promise; use React\Promise\PromiseAdapter\CallbackPromiseAdapter; class LazyPromiseTest extends TestCase { use PromiseTest\FullTestTrait; public function getPromiseTestAdapter(callable $canceller = null) { $d = new Deferred($canceller); $factory = function () use ($d) { return $d->promise(); }; return new CallbackPromiseAdapter([ 'promise' => function () use ($factory) { return new LazyPromise($factory); }, 'resolve' => [$d, 'resolve'], 'reject' => [$d, 'reject'], 'notify' => [$d, 'progress'], 'settle' => [$d, 'resolve'], ]); } /** @test */ public function shouldNotCallFactoryIfThenIsNotInvoked() { $factory = $this->createCallableMock(); $factory ->expects($this->never()) ->method('__invoke'); new LazyPromise($factory); } /** @test */ public function shouldCallFactoryIfThenIsInvoked() { $factory = $this->createCallableMock(); $factory ->expects($this->once()) ->method('__invoke'); $p = new LazyPromise($factory); $p->then(); } /** @test */ public function shouldReturnPromiseFromFactory() { $factory = $this->createCallableMock(); $factory ->expects($this->once()) ->method('__invoke') ->will($this->returnValue(new FulfilledPromise(1))); $onFulfilled = $this->createCallableMock(); $onFulfilled ->expects($this->once()) ->method('__invoke') ->with($this->identicalTo(1)); $p = new LazyPromise($factory); $p->then($onFulfilled); } /** @test */ public function shouldReturnPromiseIfFactoryReturnsNull() { $factory = $this->createCallableMock(); $factory ->expects($this->once()) ->method('__invoke') ->will($this->returnValue(null)); $p = new LazyPromise($factory); $this->assertInstanceOf('React\\Promise\\PromiseInterface', $p->then()); } /** @test */ public function shouldReturnRejectedPromiseIfFactoryThrowsException() { $exception = new \Exception(); $factory = $this->createCallableMock(); $factory ->expects($this->once()) ->method('__invoke') ->will($this->throwException($exception)); $onRejected = $this->createCallableMock(); $onRejected ->expects($this->once()) ->method('__invoke') ->with($this->identicalTo($exception)); $p = new LazyPromise($factory); $p->then($this->expectCallableNever(), $onRejected); } }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
PromiseAdapter | Folder | 0755 |
|
|
PromiseTest | Folder | 0755 |
|
|
Stub | Folder | 0755 |
|
|
fixtures | Folder | 0755 |
|
|
CancellationQueueTest.php | File | 2.46 KB | 0644 |
|
DeferredTest.php | File | 1 KB | 0644 |
|
FulfilledPromiseTest.php | File | 1.48 KB | 0644 |
|
FunctionAllTest.php | File | 2.76 KB | 0644 |
|
FunctionAnyTest.php | File | 5.24 KB | 0644 |
|
FunctionCheckTypehintTest.php | File | 3.45 KB | 0644 |
|
FunctionMapTest.php | File | 4.63 KB | 0644 |
|
FunctionRaceTest.php | File | 5.03 KB | 0644 |
|
FunctionReduceTest.php | File | 8.21 KB | 0644 |
|
FunctionRejectTest.php | File | 1.4 KB | 0644 |
|
FunctionResolveTest.php | File | 4.04 KB | 0644 |
|
FunctionSomeTest.php | File | 6.53 KB | 0644 |
|
LazyPromiseTest.php | File | 2.77 KB | 0644 |
|
PromiseTest.php | File | 2.29 KB | 0644 |
|
RejectedPromiseTest.php | File | 1.48 KB | 0644 |
|
TestCase.php | File | 895 B | 0644 |
|
bootstrap.php | File | 192 B | 0644 |
|