public function testConstraints() { // a route that matches a numeric argument only $r = new Route('/{gamma}', 'alpha/beta'); $r->constrain('gamma', '[0-9]+'); $this->assertFalse($r->match('/delta')); $this->assertTrue($r->match('/1234')); // a route that matches a partial string $r = new Route('/{gamma}', 'alpha/beta'); $r->constrain('gamma', '.+elt.+'); $this->assertFalse($r->match('/dellta')); $this->assertTrue($r->match('/delta')); // a route with multiple constraints $r = new Route('/{gamma}/import/{epsilon}', 'alpha/beta'); $r->constrain('gamma', '[0-9]+')->constrain('epsilon', 'mu|nu'); $this->assertFalse($r->match('/alpha/import/mu')); $this->assertFalse($r->match('/alpha/12/nu')); $this->assertFalse($r->match('/12/beta/nu')); $this->assertTrue($r->match('/12/import/nu')); $this->assertTrue($r->match('/0/import/mu')); }