public function testItAddsMiddlewareToANamedRouteUsingAWildcard()
{
// Reverse instantation
$route1 = $this->mock('mockedRoute');
$route1->shouldReceive('getName')->andReturn('route.group');
$route1->shouldReceive('middleware')->with(['middlewareA', 'middlewareB'])->once();
$route2 = $this->mock('mockedRoute');
$route2->shouldReceive('getName')->andReturn('route.group');
$route2->shouldReceive('middleware')->with(['middlewareA', 'middlewareB'])->once();
$route3 = $this->mock('mockedRoute');
$route3->shouldReceive('getName')->andReturn('route3');
$route3->shouldReceive('middleware')->never();
// Route setup
$routes = [$route1, $route2, $route3];
// Intermediate route collection setup
$collection = $this->mock('collection');
$collection->shouldReceive('getIterator')->andReturn($routes);
$router = $this->createExtendedRouter();
$router->shouldReceive('getRoutes')->andReturn($collection);
// Use the real method instead of mocking it
$router->shouldReceive('addMiddlewareToRoute')->passthru();
$router->addMiddlewareToRoute('route.*', ['middlewareA', 'middlewareB']);
}