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 FulfilledPromiseTest extends TestCase |
|
{ |
|
use PromiseTest\PromiseSettledTestTrait, |
|
PromiseTest\PromiseFulfilledTestTrait; |
|
|
|
public function getPromiseTestAdapter(callable $canceller = null) |
|
{ |
|
$promise = null; |
|
|
|
return new CallbackPromiseAdapter([ |
|
'promise' => function () use (&$promise) { |
|
if (!$promise) { |
|
throw new \LogicException('FulfilledPromise must be resolved before obtaining the promise'); |
|
} |
|
|
|
return $promise; |
|
}, |
|
'resolve' => function ($value = null) use (&$promise) { |
|
if (!$promise) { |
|
$promise = new FulfilledPromise($value); |
|
} |
|
}, |
|
'reject' => function () { |
|
throw new \LogicException('You cannot call reject() for React\Promise\FulfilledPromise'); |
|
}, |
|
'notify' => function () { |
|
// no-op |
|
}, |
|
'settle' => function ($value = null) use (&$promise) { |
|
if (!$promise) { |
|
$promise = new FulfilledPromise($value); |
|
} |
|
}, |
|
]); |
|
} |
|
|
|
/** @test */ |
|
public function shouldThrowExceptionIfConstructedWithAPromise() |
|
{ |
|
$this->setExpectedException('\InvalidArgumentException'); |
|
|
|
return new FulfilledPromise(new FulfilledPromise()); |
|
} |
|
}
|
|
|