public function testPattern() { $router = new Router(); $router->addRoute("GET", "/customer/{id:number}", "Vendor\\Package\\Controller"); $router->addRoute("GET", "/customer/{name:word}", "Vendor\\Package\\Controller"); $router->addRoute("GET", "/customer/{phone:phone}", "Vendor\\Package\\Controller"); $router->addPattern("phone", "[0-9]-[0-9]{3}-[[0-9]{3}-[0-9]{4}"); // #-###-###-#### $result = $router->parse("GET", "/customer/123"); $this->assertEquals("Vendor\\Package\\Controller", $result->controller()); $this->assertEquals(123, $result->params()["id"]); $result = $router->parse("GET", "/customer/John"); $this->assertEquals("Vendor\\Package\\Controller", $result->controller()); $this->assertEquals("John", $result->params()["name"]); $result = $router->parse("GET", "/customer/1-222-333-4444"); $this->assertEquals("Vendor\\Package\\Controller", $result->controller()); $this->assertEquals("1-222-333-4444", $result->params()["phone"]); }