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