You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.5 KiB
50 lines
1.5 KiB
<?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()); |
|
} |
|
}
|
|
|