/**
  * Tests interface validation in non-production environment.
  *
  * @expectedException \Symfony\Component\DependencyInjection\Exception\LogicException
  * @covers ::process
  */
 public function testProcessInterfaceMismatch()
 {
     $container = $this->buildContainer();
     $container->register('consumer_id', __NAMESPACE__ . '\\ValidConsumer')->addTag('service_collector');
     $container->register('handler1', __NAMESPACE__ . '\\InvalidHandler')->addTag('consumer_id');
     $container->register('handler2', __NAMESPACE__ . '\\ValidHandler')->addTag('consumer_id', array('priority' => 10));
     $handler_pass = new TaggedHandlersPass();
     $handler_pass->process($container);
 }
예제 #2
0
 /**
  * Tests consumer method with priority and extra parameters in different order.
  *
  * @covers ::process
  */
 public function testProcessWithDifferentArgumentsOrderAndDefaultValue()
 {
     $container = $this->buildContainer();
     $container->register('consumer_id', __NAMESPACE__ . '\\ValidConsumerWithExtraArguments')->addTag('service_collector', array('call' => 'addWithDifferentOrder'));
     $container->register('handler1', __NAMESPACE__ . '\\ValidHandler')->addTag('consumer_id', array('priority' => 0, 'extra1' => 'extra1', 'extra3' => 'extra3'));
     $handler_pass = new TaggedHandlersPass();
     $handler_pass->process($container);
     $method_calls = $container->getDefinition('consumer_id')->getMethodCalls();
     $this->assertCount(5, $method_calls[0][1]);
     $expected = [new Reference('handler1'), 'extra1', 0, 'default2', 'extra3'];
     $this->assertEquals($expected, array_values($method_calls[0][1]));
 }