예제 #1
0
 /**
  * @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);
 }
예제 #2
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);
     });
 }