diff options
author | Igor Scheller <igor.scheller@igorshp.de> | 2018-08-11 23:46:28 +0200 |
---|---|---|
committer | Igor Scheller <igor.scheller@igorshp.de> | 2018-08-19 13:59:39 +0200 |
commit | f3b3b6683ca90b70ec4d4daae002dc0caac9ebdd (patch) | |
tree | c550252995a46763d8c540c9bd7f41e4b1c4f246 /tests/Unit/Middleware/ExceptionHandlerTest.php | |
parent | f3f05f6cc4bef3338dbfb6eb340da4fb1c5ba1e1 (diff) |
Added middleware tests
Diffstat (limited to 'tests/Unit/Middleware/ExceptionHandlerTest.php')
-rw-r--r-- | tests/Unit/Middleware/ExceptionHandlerTest.php | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/tests/Unit/Middleware/ExceptionHandlerTest.php b/tests/Unit/Middleware/ExceptionHandlerTest.php new file mode 100644 index 00000000..6d2a20e6 --- /dev/null +++ b/tests/Unit/Middleware/ExceptionHandlerTest.php @@ -0,0 +1,58 @@ +<?php + +namespace Engelsystem\Test\Unit\Middleware; + +use Engelsystem\Application; +use Engelsystem\Exceptions\Handler; +use Engelsystem\Http\Response; +use Engelsystem\Middleware\ExceptionHandler; +use Engelsystem\Test\Unit\Middleware\Stub\ExceptionMiddlewareHandler; +use Engelsystem\Test\Unit\Middleware\Stub\ReturnResponseMiddlewareHandler; +use Illuminate\Contracts\Container\Container as ContainerInterface; +use PHPUnit\Framework\TestCase; +use PHPUnit_Framework_MockObject_MockObject as MockObject; +use Psr\Http\Message\ResponseInterface; +use Psr\Http\Message\ServerRequestInterface; + +class ExceptionHandlerTest extends TestCase +{ + /** + * @covers \Engelsystem\Middleware\ExceptionHandler::__construct + * @covers \Engelsystem\Middleware\ExceptionHandler::process + */ + public function testRegister() + { + /** @var MockObject|ContainerInterface $container */ + $container = $this->getMockForAbstractClass(ContainerInterface::class); + /** @var MockObject|ServerRequestInterface $request */ + $request = $this->getMockBuilder(ServerRequestInterface::class)->getMock(); + /** @var MockObject|ResponseInterface $response */ + $response = $this->getMockBuilder(Response::class)->getMock(); + /** @var MockObject|Handler $errorHandler */ + $errorHandler = $this->getMockBuilder(Handler::class)->getMock(); + $returnResponseHandler = new ReturnResponseMiddlewareHandler($response); + $throwExceptionHandler = new ExceptionMiddlewareHandler(); + + Application::setInstance($container); + + $container->expects($this->exactly(2)) + ->method('get') + ->withConsecutive(['error.handler'], ['psr7.response']) + ->willReturnOnConsecutiveCalls($errorHandler, $response); + + $response->expects($this->once()) + ->method('withContent') + ->willReturn($response); + $response->expects($this->once()) + ->method('withStatus') + ->with(500) + ->willReturn($response); + + $handler = new ExceptionHandler($container); + $return = $handler->process($request, $returnResponseHandler); + $this->assertEquals($response, $return); + + $return = $handler->process($request, $throwExceptionHandler); + $this->assertEquals($response, $return); + } +} |