Example #1
0
 public function testDispatch()
 {
     $router = new Router();
     $getMock = Mockery::mock(ServerRequestInterface::class);
     $getMock->shouldReceive('getParsedBody')->andReturn([]);
     $getMock->shouldReceive('getMethod')->andReturn('GET');
     $getMock->shouldReceive('getUri->getPath')->andReturn('/');
     $getMock->shouldReceive('setArguments')->with([]);
     $postMock = Mockery::mock(ServerRequestInterface::class);
     $postMock->shouldReceive('getParsedBody')->andReturn([]);
     $postMock->shouldReceive('getMethod')->andReturn('POST');
     $postMock->shouldReceive('getUri->getPath')->andReturn('/');
     $postMock->shouldReceive('setArguments')->with([]);
     $getCalled = 0;
     $postCalled = 0;
     $router->get('', function (ServerRequestInterface $req, \Closure $next) {
         return $next($req) . ' getMiddleware';
     }, function (ServerRequestInterface $req) use(&$getCalled) {
         $getCalled++;
         return 'get';
     });
     $router->post('', function (ServerRequestInterface $req, \Closure $next) {
         return $next($req) . ' postMiddleware';
     }, function (ServerRequestInterface $req) use(&$postCalled) {
         $postCalled++;
         return 'post';
     });
     $this->assertEquals('get getMiddleware', $router->dispatch($getMock));
     $this->assertEquals(1, $getCalled);
     $this->assertEquals(0, $postCalled);
     $this->assertEquals('post postMiddleware', $router->dispatch($postMock));
     $this->assertEquals(1, $getCalled);
     $this->assertEquals(1, $postCalled);
 }