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))])]); }