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