Exemplo n.º 1
0
 /**
  * @test
  */
 public function receiveAsynchronous2()
 {
     $messageBody = 'message binding using two separate connections. ' . microtime(TRUE);
     $routingKey = 'txqueue_unit_routing';
     $this->service->setPersistentDeliveryMode(FALSE);
     $this->admin->declareExchange(new Tx_Amqp_Messaging_DirectExchange(self::TEST_EXCHANGE, FALSE, TRUE));
     $queue = $this->admin->declareQueue();
     $binding = new Tx_Amqp_Messaging_Binding($queue->getName(), Tx_Amqp_Messaging_Binding::DESTINATION_QUEUE, self::TEST_EXCHANGE, $routingKey);
     $this->admin->declareBinding($binding);
     $producerService = new Tx_Amqp_Messaging_AMQPService($this->connectionFactory);
     $producerService->send(new \PhpAmqpLib\Message\AMQPMessage($messageBody), self::TEST_EXCHANGE, $routingKey);
     $listener = new Tx_Amqp_Messaging_AMQPMessageListener($this->connectionFactory);
     $self = $this;
     $listener->listen($queue->getName(), function (\PhpAmqpLib\Message\AMQPMessage $message) use($self, $messageBody) {
         $self->assertEquals($messageBody, $message->body);
         // skip listening
         Tx_Amqp_Messaging_AMQPUtils::cancelListening($message);
     });
 }