public function routeTests($requestUri, $expectedMatchingRouteName, $expectedControllerObjectName = null, array $expectedArguments = null)
{
$request = Request::create(new Uri($requestUri));
$matchResults = $this->router->route($request);
$actionRequest = $this->createActionRequest($request, $matchResults);
$matchedRoute = $this->router->getLastMatchedRoute();
if ($expectedMatchingRouteName === null) {
if ($matchedRoute !== null) {
$this->fail('Expected no route to match URI "' . $requestUri . '" but route "' . $matchedRoute->getName() . '" matched');
}
} else {
if ($matchedRoute === null) {
$this->fail('Expected route "' . $expectedMatchingRouteName . '" to match, but no route matched request URI "' . $requestUri . '"');
} else {
$this->assertEquals('Flow :: Functional Test: ' . $expectedMatchingRouteName, $matchedRoute->getName());
}
}
$this->assertEquals($expectedControllerObjectName, $actionRequest->getControllerObjectName());
if ($expectedArguments !== null) {
$this->assertEquals($expectedArguments, $actionRequest->getArguments());
}
}