$this->fail('->getController() throws an \InvalidArgumentException if the _controller attribute is not well-formatted');
}catch(\Exception$e){
$this->assertInstanceOf('\InvalidArgumentException',$e,'->getController() throws an \InvalidArgumentException if the _controller attribute is not well-formatted');
$this->fail('->getController() throws an \InvalidArgumentException if the _controller attribute contains a non-existent class');
}catch(\Exception$e){
$this->assertInstanceOf('\InvalidArgumentException',$e,'->getController() throws an \InvalidArgumentException if the _controller attribute contains a non-existent class');
$this->fail('->getController() throws an \InvalidArgumentException if the _controller attribute contains a non-existent method');
}catch(\Exception$e){
$this->assertInstanceOf('\InvalidArgumentException',$e,'->getController() throws an \InvalidArgumentException if the _controller attribute contains a non-existent method');
}
}
publicfunctiontestGetArguments()
{
$resolver=newControllerResolver();
$request=Request::create('/');
$controller=array(newself(),'testGetArguments');
$this->assertEquals(array(),$resolver->getArguments($request,$controller),'->getArguments() returns an empty array if the method takes no arguments');
$request=Request::create('/');
$request->attributes->set('foo','foo');
$controller=array(newself(),'controllerMethod1');
$this->assertEquals(array('foo'),$resolver->getArguments($request,$controller),'->getArguments() returns an array of arguments for the controller method');
$request=Request::create('/');
$request->attributes->set('foo','foo');
$controller=array(newself(),'controllerMethod2');
$this->assertEquals(array('foo',null),$resolver->getArguments($request,$controller),'->getArguments() uses default values if present');
$request->attributes->set('bar','bar');
$this->assertEquals(array('foo','bar'),$resolver->getArguments($request,$controller),'->getArguments() overrides default values if provided in the request attributes');