public function testReEnteringAScope() {
$event = new Event();
$service1 = $this
->getMock('Symfony\\Component\\EventDispatcher\\Tests\\Service');
$service1
->expects($this
->exactly(2))
->method('onEvent')
->with($event);
$scope = new Scope('scope');
$container = new Container();
$container
->addScope($scope);
$container
->enterScope('scope');
$container
->set('service.listener', $service1, 'scope');
$dispatcher = new ContainerAwareEventDispatcher($container);
$dispatcher
->addListenerService('onEvent', array(
'service.listener',
'onEvent',
));
$dispatcher
->dispatch('onEvent', $event);
$service2 = $this
->getMock('Symfony\\Component\\EventDispatcher\\Tests\\Service');
$service2
->expects($this
->once())
->method('onEvent')
->with($event);
$container
->enterScope('scope');
$container
->set('service.listener', $service2, 'scope');
$dispatcher
->dispatch('onEvent', $event);
$container
->leaveScope('scope');
$dispatcher
->dispatch('onEvent');
}