Phalcon\Test\Unit\Mvc\Router\AnnotationsTest::testRouterFullResources PHP Method

testRouterFullResources() public method

    public function testRouterFullResources()
    {
        $this->specify("The Annotations Router doesn't work properly", function ($uri, $method, $controller, $action, $params) {
            $router = new Annotations(false);
            $router->setDI($this->_getDI());
            $router->addResource("Robots", "/");
            $router->addResource("Products", "/products");
            $router->addResource("About", "/about");
            $router->handle("/products");
            expect($router->getRoutes())->count(6);
            $router = new Annotations(false);
            $router->setDI($this->_getDI());
            $router->addResource("Robots", "/");
            $router->addResource("Products", "/products");
            $router->addResource("About", "/about");
            $router->handle("/about");
            expect($router->getRoutes())->count(5);
            $router = new Annotations(false);
            $router->setDI($this->_getDI());
            $router->setDefaultNamespace("MyNamespace\\Controllers");
            $router->addResource("NamespacedAnnotation", "/namespaced");
            $router->handle("/namespaced");
            expect($router->getRoutes())->count(1);
            $router = new Annotations(false);
            $router->setDI($this->_getDI());
            $router->addResource("MyNamespace\\Controllers\\NamespacedAnnotation", "/namespaced");
            $router->handle("/namespaced/");
            $router = new Annotations(false);
            $router->setDI($this->_getDI());
            $router->addResource("Robots");
            $router->addResource("Products");
            $router->addResource("About");
            $router->addResource("Main");
            $router->handle();
            expect($router->getRoutes())->count(9);
            $route = $router->getRouteByName("save-robot");
            expect(is_object($route))->true();
            expect($route)->isInstanceOf(Route::class);
            $route = $router->getRouteByName("save-product");
            expect(is_object($route))->true();
            expect($route)->isInstanceOf(Route::class);
            $_SERVER["REQUEST_METHOD"] = $method;
            $router->handle($uri);
            expect($router->getControllerName())->equals($controller);
            expect($router->getActionName())->equals($action);
            expect($router->getParams())->equals($params);
            expect($router->isExactControllerName())->true();
        }, ['examples' => [["uri" => "/products/save", "method" => "PUT", "controller" => "products", "action" => "save", "params" => []], ["uri" => "/products/save", "method" => "POST", "controller" => "products", "action" => "save", "params" => []], ["uri" => "/products/edit/100", "method" => "GET", "controller" => "products", "action" => "edit", "params" => ["id" => "100"]], ["uri" => "/products", "method" => "GET", "controller" => "products", "action" => "index", "params" => []], ["uri" => "/robots/edit/100", "method" => "GET", "controller" => "robots", "action" => "edit", "params" => ["id" => "100"]], ["uri" => "/robots", "method" => "GET", "controller" => "robots", "action" => "index", "params" => []], ["uri" => "/robots/save", "method" => "PUT", "controller" => "robots", "action" => "save", "params" => []], ["uri" => "/about/team", "method" => "GET", "controller" => "about", "action" => "team", "params" => []], ["uri" => "/about/team", "method" => "POST", "controller" => "about", "action" => "teampost", "params" => []], ["uri" => "/", "method" => "GET", "controller" => "main", "action" => "index", "params" => []]]]);
    }