<?php namespace React\Promise; use React\Promise\PromiseAdapter\CallbackPromiseAdapter; class RejectedPromiseTest extends TestCase { use PromiseTest\PromiseSettledTestTrait, PromiseTest\PromiseRejectedTestTrait; public function getPromiseTestAdapter(callable $canceller = null) { $promise = null; return new CallbackPromiseAdapter([ 'promise' => function () use (&$promise) { if (!$promise) { throw new \LogicException('RejectedPromise must be rejected before obtaining the promise'); } return $promise; }, 'resolve' => function () { throw new \LogicException('You cannot call resolve() for React\Promise\RejectedPromise'); }, 'reject' => function ($reason = null) use (&$promise) { if (!$promise) { $promise = new RejectedPromise($reason); } }, 'notify' => function () { // no-op }, 'settle' => function ($reason = null) use (&$promise) { if (!$promise) { $promise = new RejectedPromise($reason); } }, ]); } /** @test */ public function shouldThrowExceptionIfConstructedWithAPromise() { $this->setExpectedException('\InvalidArgumentException'); return new RejectedPromise(new RejectedPromise()); } /** @test */ public function shouldNotLeaveGarbageCyclesWhenRemovingLastReferenceToRejectedPromiseWithAlwaysFollowers() { gc_collect_cycles(); $promise = new RejectedPromise(1); $promise->always(function () { throw new \RuntimeException(); }); unset($promise); $this->assertSame(0, gc_collect_cycles()); } /** @test */ public function shouldNotLeaveGarbageCyclesWhenRemovingLastReferenceToRejectedPromiseWithThenFollowers() { gc_collect_cycles(); $promise = new RejectedPromise(1); $promise = $promise->then(null, function () { throw new \RuntimeException(); }); unset($promise); $this->assertSame(0, gc_collect_cycles()); } }
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 | 3.08 KB | 0644 |
|
FulfilledPromiseTest.php | File | 2.24 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 | 8.59 KB | 0644 |
|
RejectedPromiseTest.php | File | 2.24 KB | 0644 |
|
TestCase.php | File | 895 B | 0644 |
|
bootstrap.php | File | 192 B | 0644 |
|