Beispiel #1
0
 /**
  * @group convert
  */
 public function testConvertions()
 {
     require_once 'tests/module/Application/src/Router/ConvertId.php';
     Route::reset();
     $router = new Router($this->getDi());
     $router->addRoute('edit-closure', ['route' => '/edit/([1-9][0-9]*)', 'definitions' => ['controller' => 'posts', 'action' => 'edit', 'id' => 1], 'convertions' => ['id' => function ($id) {
         return intval($id);
     }]]);
     $router->addRoute('edit-classname', ['route' => '/edit2/([1-9][0-9]*)', 'definitions' => ['controller' => 'posts2', 'action' => 'edit2', 'id' => 1], 'convertions' => ['id' => ['class_name' => \Application\Router\ConvertId::class]]]);
     $routes = ['/edit/100', '/edit2/100'];
     foreach ($routes as $route) {
         $router->handle($route);
         $this->assertTrue($router->wasMatched());
         $id = $router->getParams()['id'];
         $this->assertInternalType('int', $id);
         $this->assertTrue($id === 100);
     }
 }