/**
  * @expectedException \InvalidArgumentException
  * @expectedExceptionMessage The service "foo" must be public as event subscribers are lazy-loaded.
  */
 public function testPrivateEventSubscriber()
 {
     $container = new ContainerBuilder();
     $container->register('foo', 'stdClass')->setPublic(false)->addTag('kernel.event_subscriber', array());
     $container->register('event_dispatcher', 'stdClass');
     $registerListenersPass = new RegisterListenersPass();
     $registerListenersPass->process($container);
 }
 /**
  * @expectedException \InvalidArgumentException
  * @expectedExceptionMessage The service "foo" must not be abstract as event listeners are lazy-loaded.
  */
 public function testAbstractEventListener()
 {
     $container = new ContainerBuilder();
     $container->register('foo', 'stdClass')->setAbstract(true)->addTag('kernel.event_listener', array());
     $container->register('event_dispatcher', 'stdClass');
     $registerListenersPass = new RegisterListenersPass();
     $registerListenersPass->process($container);
 }
 public function testValidEventSubscriber()
 {
     $services = array('my_event_subscriber' => array(0 => array()));
     $definition = $this->getMock('Symfony\\Component\\DependencyInjection\\Definition');
     $definition->expects($this->atLeastOnce())->method('getClass')->will($this->returnValue('Symfony\\Component\\HttpKernel\\Tests\\DependencyInjection\\SubscriberService'));
     $builder = $this->getMock('Symfony\\Component\\DependencyInjection\\ContainerBuilder');
     $builder->expects($this->any())->method('hasDefinition')->will($this->returnValue(true));
     // We don't test kernel.event_listener here
     $builder->expects($this->atLeastOnce())->method('findTaggedServiceIds')->will($this->onConsecutiveCalls(array(), $services));
     $builder->expects($this->atLeastOnce())->method('getDefinition')->will($this->returnValue($definition));
     $registerListenersPass = new RegisterListenersPass();
     $registerListenersPass->process($builder);
 }
 /**
  * @expectedException \InvalidArgumentException
  * @expectedExceptionMessage You have requested a non-existent parameter "subscriber.class"
  */
 public function testEventSubscriberUnresolvableClassName()
 {
     $container = new ContainerBuilder();
     $container->register('foo', '%subscriber.class%')->addTag('kernel.event_subscriber', array());
     $container->register('event_dispatcher', 'stdClass');
     $registerListenersPass = new RegisterListenersPass();
     $registerListenersPass->process($container);
 }