diff options
-rw-r--r-- | src/ErrorHandler.php | 2 | ||||
-rw-r--r-- | tests/ErrorHandler/MiddlewareTest.php | 59 | ||||
-rw-r--r-- | tests/ErrorHandlerTest.php | 11 |
3 files changed, 56 insertions, 16 deletions
diff --git a/src/ErrorHandler.php b/src/ErrorHandler.php index b6cb3a8..9eabfd7 100644 --- a/src/ErrorHandler.php +++ b/src/ErrorHandler.php @@ -72,7 +72,7 @@ class ErrorHandler implements LoggerAwareInterface */ public function setError($error) { - if (!$error instanceof \Error && !$error instanceof \Exception) { + if (isset($error) && !$error instanceof \Error && !$error instanceof \Exception) { $type = (is_object($error) ? get_class($error) . ' ' : '') . gettype($error); trigger_error("Excpeted an Error or Exception, got a $type", E_USER_WARNING); return; diff --git a/tests/ErrorHandler/MiddlewareTest.php b/tests/ErrorHandler/MiddlewareTest.php index d16b239..891ed73 100644 --- a/tests/ErrorHandler/MiddlewareTest.php +++ b/tests/ErrorHandler/MiddlewareTest.php @@ -2,13 +2,43 @@ namespace Jasny\ErrorHandler; +use Jasny\ErrorHandler; +use Jasny\ErrorHandler\Middleware; + +use Psr\Log\LoggerInterface; +use Psr\Log\LogLevel; + +use Psr\Http\Message\ServerRequestInterface; +use Psr\Http\Message\ResponseInterface; +use Psr\Http\Message\StreamInterface; + +use PHPUnit_Framework_MockObject_MockObject as MockObject; + /** - * Description of MiddlewareTest - * - * @author arnold + * @covers Jasny\ErrorHandler\Middleware */ -class MiddlewareTest +class MiddlewareTest extends \PHPUnit_Framework_TestCase { + /** + * @var ErrorHandler|MockObject + */ + protected $errorHandler; + + /** + * @var Middleware + */ + protected $middleware; + + public function setUp() + { + $this->errorHandler = $this->getMockBuilder(ErrorHandler::class) + ->setMethods(['errorReporting', 'errorGetLast', 'setErrorHandler', 'setExceptionHandler', + 'registerShutdownFunction', 'clearOutputBuffer']) + ->getMock(); + + $this->middleware = new Middleware($this->errorHandler); + } + /** * Test invoke with invalid 'next' param @@ -20,9 +50,9 @@ class MiddlewareTest $request = $this->createMock(ServerRequestInterface::class); $response = $this->createMock(ResponseInterface::class); - $errorHandler = $this->errorHandler; + $middleware = $this->middleware; - $errorHandler($request, $response, 'not callable'); + $middleware($request, $response, 'not callable'); } /** @@ -39,9 +69,9 @@ class MiddlewareTest ->with($request, $response) ->willReturn($finalResponse); - $errorHandler = $this->errorHandler; + $middleware = $this->middleware; - $result = $errorHandler($request, $response, $next); + $result = $middleware($request, $response, $next); $this->assertSame($finalResponse, $result); } @@ -70,7 +100,9 @@ class MiddlewareTest $errorHandler = $this->errorHandler; - $result = $errorHandler($request, $response, $next); + $middleware = $this->middleware; + + $result = $middleware($request, $response, $next); $this->assertSame($errorResponse, $result); $this->assertSame($exception, $errorHandler->getError()); @@ -103,8 +135,9 @@ class MiddlewareTest }); $errorHandler = $this->errorHandler; + $middleware = $this->middleware; - $result = $errorHandler($request, $response, $next); + $result = $middleware($request, $response, $next); $this->assertSame($errorResponse, $result); @@ -133,11 +166,13 @@ class MiddlewareTest $errorHandler = $this->errorHandler; $errorHandler->setLogger($logger); + $middleware = $this->middleware; + $next = $this->getMockBuilder(\stdClass::class)->setMethods(['__invoke'])->getMock(); $next->expects($this->once())->method('__invoke') ->with($request, $response) ->willThrowException($exception); - $errorHandler($request, $response, $next); + $middleware($request, $response, $next); } -}
\ No newline at end of file +} diff --git a/tests/ErrorHandlerTest.php b/tests/ErrorHandlerTest.php index fdd3f74..e6372d3 100644 --- a/tests/ErrorHandlerTest.php +++ b/tests/ErrorHandlerTest.php @@ -3,9 +3,6 @@ namespace Jasny; use Jasny\ErrorHandler; -use Psr\Http\Message\ServerRequestInterface; -use Psr\Http\Message\ResponseInterface; -use Psr\Http\Message\StreamInterface; use Psr\Log\LoggerInterface; use Psr\Log\LogLevel; @@ -40,6 +37,14 @@ class ErrorHandlerTest extends \PHPUnit_Framework_TestCase $this->errorHandler->setError($exception); $this->assertSame($exception, $this->errorHandler->getError()); } + + public function testAsMiddleware() + { + $middleware = $this->errorHandler->asMiddleware(); + + $this->assertInstanceOf(ErrorHandler\Middleware::class, $middleware); + $this->assertAttributeSame($this->errorHandler, 'errorHandler', $middleware); + } /** * @expectedException PHPUnit_Framework_Error_Warning |