public function testRouters()
{
$this->specify("CLI Router doesn't match the correct paths", function () {
$di = new CliFactoryDefault();
$di->set("data", function () {
return "data";
});
$router = new Router();
$router->handle([]);
expect($router->getModuleName())->null();
expect($router->getTaskName())->null();
expect($router->getActionName())->null();
expect($router->getParams())->equals([]);
$router->handle(["task" => "main"]);
expect($router->getModuleName())->null();
expect($router->getTaskName())->equals("main");
expect($router->getActionName())->null();
expect($router->getParams())->equals([]);
$router->handle(["task" => "echo"]);
expect($router->getModuleName())->null();
expect($router->getTaskName())->equals("echo");
expect($router->getActionName())->null();
expect($router->getParams())->equals([]);
$router->handle(["task" => "main", "action" => "hello"]);
expect($router->getModuleName())->null();
expect($router->getTaskName())->equals("main");
expect($router->getActionName())->equals("hello");
expect($router->getParams())->equals([]);
$router->handle(["task" => "main", "action" => "hello", "arg1", "arg2"]);
expect($router->getModuleName())->null();
expect($router->getTaskName())->equals("main");
expect($router->getActionName())->equals("hello");
expect($router->getParams())->equals(["arg1", "arg2"]);
$router->handle(["module" => "devtools", "task" => "main", "action" => "hello", "arg1", "arg2"]);
expect($router->getModuleName())->equals("devtools");
expect($router->getTaskName())->equals("main");
expect($router->getActionName())->equals("hello");
expect($router->getParams())->equals(["arg1", "arg2"]);
$router->handle(["module" => "devtools", "task" => "echo", "action" => "hello", "arg1", "arg2"]);
expect($router->getModuleName())->equals("devtools");
expect($router->getTaskName())->equals("echo");
expect($router->getActionName())->equals("hello");
expect($router->getParams())->equals(["arg1", "arg2"]);
});
}