public function testAddPrefix() {
$collection = new RouteCollection();
$collection
->add('foo', $foo = new Route('/foo'));
$collection
->add('bar', $bar = new Route('/bar'));
$collection
->addPrefix('/{admin}', array(
'admin' => 'admin',
), array(
'admin' => '\\d+',
), array(
'foo' => 'bar',
));
$this
->assertEquals('/{admin}/foo', $collection
->get('foo')
->getPattern(), '->addPrefix() adds a prefix to all routes');
$this
->assertEquals('/{admin}/bar', $collection
->get('bar')
->getPattern(), '->addPrefix() adds a prefix to all routes');
$this
->assertEquals(array(
'admin' => 'admin',
), $collection
->get('foo')
->getDefaults(), '->addPrefix() adds a prefix to all routes');
$this
->assertEquals(array(
'admin' => 'admin',
), $collection
->get('bar')
->getDefaults(), '->addPrefix() adds a prefix to all routes');
$this
->assertEquals(array(
'admin' => '\\d+',
), $collection
->get('foo')
->getRequirements(), '->addPrefix() adds a prefix to all routes');
$this
->assertEquals(array(
'admin' => '\\d+',
), $collection
->get('bar')
->getRequirements(), '->addPrefix() adds a prefix to all routes');
$this
->assertEquals(array(
'foo' => 'bar',
'compiler_class' => 'Symfony\\Component\\Routing\\RouteCompiler',
), $collection
->get('foo')
->getOptions(), '->addPrefix() adds an option to all routes');
$this
->assertEquals(array(
'foo' => 'bar',
'compiler_class' => 'Symfony\\Component\\Routing\\RouteCompiler',
), $collection
->get('bar')
->getOptions(), '->addPrefix() adds an option to all routes');
$collection
->addPrefix('0');
$this
->assertEquals('/0/{admin}', $collection
->getPrefix(), '->addPrefix() ensures a prefix must start with a slash and must not end with a slash');
}