/** * @test */ public function declareExchangeToExchangeBinding() { $this->admin->declareQueue(new Tx_Amqp_Messaging_Queue(self::TEST_QUEUE, FALSE, FALSE, TRUE)); $this->admin->declareExchange(new Tx_Amqp_Messaging_DirectExchange(self::TEST_EXCHANGE, FALSE, TRUE)); $exchangeToQueueBinding = new Tx_Amqp_Messaging_Binding(self::TEST_QUEUE, Tx_Amqp_Messaging_Binding::DESTINATION_QUEUE, self::TEST_EXCHANGE, 'testRoutingKey'); $this->admin->declareBinding($exchangeToQueueBinding); $exchange2 = self::TEST_EXCHANGE . '2'; $this->admin->declareExchange(new Tx_Amqp_Messaging_DirectExchange($exchange2, FALSE, TRUE)); $exchangeToExchangeBinding = new Tx_Amqp_Messaging_Binding($exchange2, Tx_Amqp_Messaging_Binding::DESTINATION_EXCHANGE, self::TEST_EXCHANGE, 'testRoutingKey'); $this->admin->declareBinding($exchangeToExchangeBinding); $this->admin->deleteBinding($exchangeToQueueBinding); $this->admin->deleteExchange(self::TEST_EXCHANGE); $this->admin->deleteExchange($exchange2); $this->admin->deleteQueue(self::TEST_QUEUE); }
/** * @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); }); }