Example #1
0
 public function testConverters()
 {
     $this->specify("CLI Router doesn't work with converters", function ($route, $paths) {
         Route::reset();
         $router = new Router();
         $router->add('{task:[a-z\\-]+} {action:[a-z\\-]+} this-is-a-country')->convert('task', function ($task) {
             return str_replace('-', '', $task);
         })->convert('action', function ($action) {
             return str_replace('-', '', $action);
         });
         $router->add('([A-Z]+) ([0-9]+)', array('task' => 1, 'action' => 'default', 'id' => 2))->convert('task', function ($task) {
             return strtolower($task);
         })->convert('action', function ($action) {
             if ($action == 'default') {
                 return 'index';
             }
             return $action;
         })->convert('id', function ($id) {
             return strrev($id);
         });
         $router->handle($route);
         expect($router->wasMatched())->true();
         expect($paths['task'])->equals($router->getTaskName());
         expect($paths['action'])->equals($router->getActionName());
     }, ["examples" => array(["route" => 'some-controller my-action-name this-is-a-country', "paths" => array('task' => 'somecontroller', 'action' => 'myactionname', 'params' => array('this-is-a-country'))], ["route" => 'BINARY 1101', "paths" => array('task' => 'binary', 'action' => 'index', 'params' => array(1011))])]);
 }