mirror of
https://github.com/danog/amp.git
synced 2025-01-22 05:11:42 +01:00
Always set and restore error handler in setUp / tearDown instead of in tests
This commit is contained in:
parent
0c77b964fe
commit
46fcbce2fc
26
src/Test.php
26
src/Test.php
@ -5,6 +5,8 @@ namespace AsyncInterop\Promise;
|
|||||||
use AsyncInterop\Promise;
|
use AsyncInterop\Promise;
|
||||||
|
|
||||||
abstract class Test extends \PHPUnit_Framework_TestCase {
|
abstract class Test extends \PHPUnit_Framework_TestCase {
|
||||||
|
private $originalErrorHandler;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An Promise to use for a test with resolution methods.
|
* An Promise to use for a test with resolution methods.
|
||||||
* Note that the callables shall take care of the Promise being resolved in any case. Example: The actual implementation delays resolution to the next loop tick. The callables then must run one tick of the loop in order to ensure resolution.
|
* Note that the callables shall take care of the Promise being resolved in any case. Example: The actual implementation delays resolution to the next loop tick. The callables then must run one tick of the loop in order to ensure resolution.
|
||||||
@ -13,6 +15,16 @@ abstract class Test extends \PHPUnit_Framework_TestCase {
|
|||||||
*/
|
*/
|
||||||
abstract function promise();
|
abstract function promise();
|
||||||
|
|
||||||
|
function setUp() {
|
||||||
|
$this->originalErrorHandler = Promise\ErrorHandler::set(function ($e) {
|
||||||
|
throw $e;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function tearDown() {
|
||||||
|
Promise\ErrorHandler::set($this->originalErrorHandler);
|
||||||
|
}
|
||||||
|
|
||||||
function provideSuccessValues() {
|
function provideSuccessValues() {
|
||||||
return [
|
return [
|
||||||
["string"],
|
["string"],
|
||||||
@ -184,13 +196,14 @@ abstract class Test extends \PHPUnit_Framework_TestCase {
|
|||||||
|
|
||||||
function testThrowingInCallback() {
|
function testThrowingInCallback() {
|
||||||
$invoked = 0;
|
$invoked = 0;
|
||||||
$original = Promise\ErrorHandler::set(function () use (&$invoked) {
|
|
||||||
|
Promise\ErrorHandler::set(function () use (&$invoked) {
|
||||||
$invoked++;
|
$invoked++;
|
||||||
});
|
});
|
||||||
|
|
||||||
list($promise, $succeeder) = $this->promise();
|
list($promise, $succeeder) = $this->promise();
|
||||||
$succeeder(true);
|
$succeeder(true);
|
||||||
$promise->when(function($e, $v) use (&$invoked, &$ranDefer, &$handled, $promise) {
|
$promise->when(function($e, $v) use (&$invoked, $promise) {
|
||||||
$this->assertSame(null, $e);
|
$this->assertSame(null, $e);
|
||||||
$this->assertSame(true, $v);
|
$this->assertSame(true, $v);
|
||||||
$invoked++;
|
$invoked++;
|
||||||
@ -198,9 +211,8 @@ abstract class Test extends \PHPUnit_Framework_TestCase {
|
|||||||
throw new \Exception;
|
throw new \Exception;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
list($promise, $succeeder) = $this->promise();
|
list($promise, $succeeder) = $this->promise();
|
||||||
$promise->when(function($e, $v) use (&$invoked, &$ranDefer, &$handled, $promise) {
|
$promise->when(function($e, $v) use (&$invoked, $promise) {
|
||||||
$this->assertSame(null, $e);
|
$this->assertSame(null, $e);
|
||||||
$this->assertSame(true, $v);
|
$this->assertSame(true, $v);
|
||||||
$invoked++;
|
$invoked++;
|
||||||
@ -216,7 +228,7 @@ abstract class Test extends \PHPUnit_Framework_TestCase {
|
|||||||
|
|
||||||
function testThrowingInCallbackOnFailure() {
|
function testThrowingInCallbackOnFailure() {
|
||||||
$invoked = 0;
|
$invoked = 0;
|
||||||
$original = Promise\ErrorHandler::set(function () use (&$invoked) {
|
Promise\ErrorHandler::set(function () use (&$invoked) {
|
||||||
$invoked++;
|
$invoked++;
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -243,8 +255,6 @@ abstract class Test extends \PHPUnit_Framework_TestCase {
|
|||||||
$failer($exception);
|
$failer($exception);
|
||||||
|
|
||||||
$this->assertEquals(4, $invoked);
|
$this->assertEquals(4, $invoked);
|
||||||
|
|
||||||
Promise\ErrorHandler::set($original);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user