/**
  * @test
  */
 public function shouldSentNackSignal()
 {
     // Create message
     $message = $this->queueTemplate->createMessage(['msg' => 'blaat']);
     $message->delivery_info = ['channel' => $this->queueTemplate->channel(), 'delivery_tag' => 123];
     // Create a failing consumer instance. This instance will return false. A nack signal should be sent.
     $consumer = new CleanFailConsumer($this->queueTemplate);
     // Execute consumer
     call_user_func($consumer, $message);
     // Assert that the ack signal was sent
     $this->assertEquals(1, $this->basicNackInvocations->getInvocationCount());
     // Create a failing consumer instance. This instance will return false. A nack signal should be sent.
     $consumer = new FailWithExceptionConsumer($this->queueTemplate);
     // Execute consumer
     try {
         call_user_func($consumer, $message);
     } catch (\Exception $e) {
         // Make sure no exception is thrown here.
     }
     // Assert that the ack signal was sent
     $this->assertEquals(1, $this->basicNackInvocations->getInvocationCount());
 }
 /**
  * @return bool
  */
 public function isBusy()
 {
     return count($this->queueTemplate->channel()->callbacks) > 0;
 }
 /**
  * @param QueueTemplate $queueTemplate
  * @param array $data
  *
  * @return AMQPMessage
  */
 public function createMessage(QueueTemplate $queueTemplate, array $data)
 {
     return new AMQPMessage($queueTemplate->getSerializer()->serialize($data), ['delivery_mode' => RabbitMQ::DELIVERY_MODE_PERSISTENT]);
 }
 /**
  * @return AMQPChannel
  */
 public function getChannel()
 {
     // Create channel or reuse the existing one...
     return $this->queueTemplate->channel();
 }
Esempio n. 5
0
 /**
  * @param QueueTemplate $queueTemplate
  * @param array $data
  *
  * @return AMQPMessage
  */
 public function createMessage(QueueTemplate $queueTemplate, array $data)
 {
     return new AMQPMessage($queueTemplate->getSerializer()->serialize($data));
 }