From a1bc763a16ee8be109de5c9053fbc5eded53824e Mon Sep 17 00:00:00 2001 From: Igor Scheller Date: Sat, 25 Aug 2018 21:16:20 +0200 Subject: Added nikic/fast-route as routing dispatcher --- tests/Unit/Middleware/DispatcherTest.php | 58 +++++++------------------------- 1 file changed, 13 insertions(+), 45 deletions(-) (limited to 'tests/Unit/Middleware/DispatcherTest.php') diff --git a/tests/Unit/Middleware/DispatcherTest.php b/tests/Unit/Middleware/DispatcherTest.php index c01c5029..4e1c51a7 100644 --- a/tests/Unit/Middleware/DispatcherTest.php +++ b/tests/Unit/Middleware/DispatcherTest.php @@ -5,7 +5,6 @@ namespace Engelsystem\Test\Unit\Middleware; use Engelsystem\Application; use Engelsystem\Middleware\Dispatcher; use Engelsystem\Test\Unit\Middleware\Stub\NotARealMiddleware; -use Engelsystem\Test\Unit\Middleware\Stub\ReturnResponseMiddleware; use InvalidArgumentException; use LogicException; use PHPUnit\Framework\TestCase; @@ -158,14 +157,14 @@ class DispatcherTest extends TestCase /** @var Dispatcher|MockObject $dispatcher */ $dispatcher = $this->getMockBuilder(Dispatcher::class) - ->setConstructorArgs([[MiddlewareInterface::class]]) + ->setConstructorArgs([[MiddlewareInterface::class, MiddlewareInterface::class]]) ->setMethods(['resolveMiddleware']) ->getMock(); - $dispatcher->expects($this->once()) + $dispatcher->expects($this->exactly(2)) ->method('resolveMiddleware') ->with(MiddlewareInterface::class) - ->willReturn($middleware); + ->willReturnOnConsecutiveCalls($middleware, null); $middleware->expects($this->once()) ->method('process') @@ -174,57 +173,26 @@ class DispatcherTest extends TestCase $return = $dispatcher->handle($request); $this->assertEquals($response, $return); + + $this->expectException(InvalidArgumentException::class); + $dispatcher->handle($request); } /** - * @covers \Engelsystem\Middleware\Dispatcher::resolveMiddleware * @covers \Engelsystem\Middleware\Dispatcher::setContainer */ - public function testResolveMiddleware() + public function testSetContainer() { /** @var Application|MockObject $container */ $container = $this->createMock(Application::class); - /** @var ServerRequestInterface|MockObject $request */ - $request = $this->createMock(ServerRequestInterface::class); - /** @var ResponseInterface|MockObject $response */ - $response = $this->createMock(ResponseInterface::class); - - $returnResponseMiddleware = new ReturnResponseMiddleware($response); - - $container->expects($this->exactly(2)) - ->method('has') - ->withConsecutive([ReturnResponseMiddleware::class], ['middleware']) - ->willReturnOnConsecutiveCalls(false, true); - - $container->expects($this->once()) - ->method('make') - ->with(ReturnResponseMiddleware::class) - ->willReturn($returnResponseMiddleware); - - $container->expects($this->once()) - ->method('get') - ->with('middleware') - ->willReturn($returnResponseMiddleware); - - $dispatcher = new Dispatcher([ReturnResponseMiddleware::class]); - $dispatcher->setContainer($container); - $dispatcher->handle($request); - $dispatcher = new Dispatcher(['middleware'], $container); - $dispatcher->handle($request); - } + $middleware = new Dispatcher(); + $middleware->setContainer($container); - /** - * @covers \Engelsystem\Middleware\Dispatcher::resolveMiddleware - */ - public function testResolveMiddlewareNoContainer() - { - /** @var ServerRequestInterface|MockObject $request */ - $request = $this->createMock(ServerRequestInterface::class); - - $this->expectException(InvalidArgumentException::class); + $reflection = new Reflection(get_class($middleware)); + $property = $reflection->getProperty('container'); + $property->setAccessible(true); - $dispatcher = new Dispatcher([ReturnResponseMiddleware::class]); - $dispatcher->handle($request); + $this->assertEquals($container, $property->getValue($middleware)); } } -- cgit v1.2.3-54-g00ecf