public function testAlternateExchangeIsPartOfArguments()
 {
     $spec = new ExchangeSpecification();
     $spec->setAlternateExchange('foobar');
     $args = $spec->getArguments();
     $this->assertArrayHasKey('alternate-exchange', $args);
     $this->assertEquals('foobar', $args['alternate-exchange']);
     $spec->setAlternateExchange(null);
     $args = $spec->getArguments();
     $this->assertArrayNotHasKey('alternate-exchange', $args);
 }
 /**
  * {@inheritdoc}
  */
 public function dispatch(RequestInterface $request, ResponseInterface $response = null)
 {
     parent::dispatch($request, $response);
     /* @var $response \Zend\Console\Response */
     $config = $this->getServiceLocator()->get('Config');
     $moduleConfig = $config['humus_amqp_module'];
     $exchanges = array();
     foreach ($moduleConfig['exchanges'] as $name => $options) {
         $spec = new ExchangeSpecification($options);
         $exchanges[$spec->getType()][] = $name;
     }
     if (empty($exchanges)) {
         $this->getConsole()->writeLine('No exchanges found', ColorInterface::RED);
         $response->setErrorLevel(1);
         return;
     }
     $this->getConsole()->writeLine('List of all exchanges', ColorInterface::GREEN);
     foreach ($exchanges as $type => $values) {
         $this->getConsole()->writeLine('Exchange-Type: ' . $type, ColorInterface::GREEN);
         foreach (array_unique($values) as $value) {
             $this->getConsole()->writeLine($value);
         }
     }
 }
Ejemplo n.º 3
0
 /**
  * @param ExchangeSpecification $specification
  * @param AMQPChannel $channel
  * @param bool $autoDeclare
  * @return AMQPExchange
  */
 public function create(ExchangeSpecification $specification, AMQPChannel $channel, $autoDeclare = true)
 {
     $exchange = new AMQPExchange($channel);
     $exchange->setArguments($specification->getArguments());
     $exchange->setName($specification->getName());
     $exchange->setFlags($specification->getFlags());
     $exchange->setType($specification->getType());
     if ($autoDeclare) {
         $exchange->declareExchange();
         // rabbitmq extension: exchange to exchange bindings
         foreach ($specification->getExchangeBindings() as $exchangeName => $routingKeys) {
             foreach ($routingKeys as $routingKey) {
                 $exchange->bind($exchangeName, $routingKey, $specification->getFlags());
             }
         }
     }
     return $exchange;
 }