mirror of
https://github.com/danog/amp.git
synced 2024-11-30 04:29:08 +01:00
Add failing Coroutine test
This commit is contained in:
parent
a660af794b
commit
aeb5de16d9
@ -13,6 +13,7 @@ use Amp\Success;
|
|||||||
use PHPUnit\Framework\TestCase;
|
use PHPUnit\Framework\TestCase;
|
||||||
use React\Promise\FulfilledPromise as FulfilledReactPromise;
|
use React\Promise\FulfilledPromise as FulfilledReactPromise;
|
||||||
use React\Promise\Promise as ReactPromise;
|
use React\Promise\Promise as ReactPromise;
|
||||||
|
use function Amp\call;
|
||||||
|
|
||||||
class CoroutineTest extends TestCase
|
class CoroutineTest extends TestCase
|
||||||
{
|
{
|
||||||
@ -476,6 +477,37 @@ class CoroutineTest extends TestCase
|
|||||||
$this->assertSame($exception, $reason);
|
$this->assertSame($exception, $reason);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @depends testGeneratorThrowingExceptionWithFinallyFailsCoroutine
|
||||||
|
*/
|
||||||
|
public function testGeneratorThrowingExceptionWithFinallyBlockAndReturnThrowing()
|
||||||
|
{
|
||||||
|
$exception = new \Exception;
|
||||||
|
|
||||||
|
$generator = function () use ($exception) {
|
||||||
|
yield new Success;
|
||||||
|
|
||||||
|
return call(function () use ($exception) {
|
||||||
|
return new class($exception)
|
||||||
|
{
|
||||||
|
private $exception;
|
||||||
|
|
||||||
|
public function __construct(\Throwable $exception)
|
||||||
|
{
|
||||||
|
$this->exception = $exception;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function __destruct()
|
||||||
|
{
|
||||||
|
throw $this->exception;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
new Coroutine($generator());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @depends testYieldSuccessfulPromise
|
* @depends testYieldSuccessfulPromise
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user