public function assertRoute(Route $route, $uri, $expectedReq, $expectedUri)
 {
     $uri = new UriScript("http://admin.texy.info{$uri}");
     $uri->scriptPath = '/';
     $uri->appendQuery(array('test' => 'testvalue', 'presenter' => 'querypresenter'));
     $httpRequest = new HttpRequest();
     $httpRequest->initialize();
     $httpRequest->setUri($uri);
     $request = $route->match($httpRequest);
     if ($request) {
         // matched
         $params = $request->getParams();
         //asort($params); asort($expectedReq['params']);
         $this->assertTrue($request->getPresenterName() === $expectedReq['presenter'] && $params === $expectedReq['params']);
         unset($params['extra']);
         $request->setParams($params);
         $result = $route->constructUrl($request, $httpRequest);
         $result = strncmp($result, 'http://admin.texy.info', 22) ? $result : substr($result, 22);
         $this->assertEquals($expectedUri, $result);
     } else {
         // not matched
         $this->assertEquals($expectedReq, $request);
     }
 }