/**
  * @test definition parameter format ""|"type"|"type:name" will find definitions and pass to configurator
  * @dataProvider definitions
  */
 public function definitionConfigurator($name, $definitions)
 {
     $configurator = $this->getMock('EventBand\\Transport\\TransportConfigurator');
     $configurator->expects($this->once())->method('setUpDefinition')->with($definitions);
     $this->container->expects($this->any())->method('get')->will($this->returnCallback(function ($id) use($configurator) {
         if ($id === EventBandExtension::getTransportConfiguratorId()) {
             return $configurator;
         }
         return 'object_' . $id;
     }));
     $this->container->expects($this->once())->method('getParameter')->with('event_band.transport_definitions')->will($this->returnValue(['test' => ['name1' => 'id1', 'name2' => 'id2']]));
     $this->tester->execute(['command' => 'event-band:setup', 'definition' => $name]);
 }
예제 #2
0
 /**
  * {@inheritDoc}
  */
 protected function getConfigurator()
 {
     return $this->getContainer()->get(EventBandExtension::getTransportConfiguratorId());
 }
 /**
  * @test amqp registers configurator for each connection
  */
 public function amqpConfigurator()
 {
     $config = ['transports' => ['amqp' => ['connections' => ['foo' => []]]]];
     $this->loadExtension($config);
     /** @var DelegatingTransportConfigurator $configurator */
     $configurator = $this->container->get(EventBandExtension::getTransportConfiguratorId());
     $configurators = $configurator->getConfigurators();
     $this->assertCount(2, $configurators);
     $this->assertArrayHasKey('amqp.default', $configurators);
     $this->assertArrayHasKey('amqp.foo', $configurators);
     $configurator = $configurators['amqp.foo'];
     $this->assertInstanceOf('EventBand\\Transport\\Amqp\\AmqpConfigurator', $configurator);
     $this->assertEquals(['amqp' => ['default' => EventBandExtension::getTransportDefinitionId('amqp', 'default'), 'foo' => EventBandExtension::getTransportDefinitionId('amqp', 'foo')]], $this->container->getParameter('event_band.transport_definitions'));
 }