summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/ErrorHandler.php2
-rw-r--r--tests/ErrorHandler/MiddlewareTest.php59
-rw-r--r--tests/ErrorHandlerTest.php11
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