/** * 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); }
/** * 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])); }