Example #1
0
 public function testBuild()
 {
     $pattern = new Pattern('/base/path/:arg1/:arg2');
     $pattern->setPlaceholder('arg1', Pattern::ALPHA_NUM);
     $pattern->setPlaceholder('arg2', Pattern::DIGITS);
     $this->assertEquals('/base/path/id/123', $pattern->build(['arg1' => 'id', 'arg2' => 123]));
 }
Example #2
0
 public function testIsValidPattern()
 {
     $pattern = new Pattern('/test/:id');
     $pattern->setPlaceholder('id', Pattern::DIGITS);
     $route = new HttpControllerRoute($pattern, $this->createController());
     $this->assertTrue($route->isValid($this->createRequest('GET', '/test/123')));
     $this->assertFalse($route->isValid($this->createRequest('GET', '/dasdas')));
     $this->assertTrue($route->isValid($this->createRequest('GET', '/test/1123/test')));
     $this->assertFalse($route->isValid($this->createRequest('GET', '/test/1123/test2')));
 }
Example #3
0
 public function testExecute()
 {
     $pattern = new Pattern('/base/path/:arg1/:arg2');
     $pattern->setPlaceholder('arg1', Pattern::ALPHA_NUM);
     $pattern->setPlaceholder('arg2', Pattern::DIGITS);
     $outerMatches = null;
     $outerRequest = null;
     $request = $this->createRequest('POST', '/base/path/id/123');
     $route = new Route($pattern, function ($matches, Request $request) use(&$outerRequest, &$outerMatches) {
         $outerMatches = $matches;
         $outerRequest = $request;
     }, Route::METHOD_POST);
     $route->execute($request);
     $this->assertSame($request, $outerRequest);
     $this->assertEquals([0 => '/base/path/id/123', 1 => 'id', 'arg1' => 'id', 2 => '123', 'arg2' => '123'], $outerMatches);
 }
Example #4
0
 public function execute(Request $request)
 {
     return call_user_func_array($this->callback, array($this->pattern->matches($request->getUri(false)), $request));
 }