示例#1
0
 /**
  * @covers                   AMQPy\AbstractConsumer::always
  *
  * @expectedException \Exception
  * @expectedExceptionMessage Always exception
  */
 public function testAlwaysException()
 {
     $e = new \Exception('Always exception');
     $listener = $this->getMock('AMQPy\\AbstractListener', [], [], '', false);
     $delivery = $this->getMock('\\AMQPy\\Client\\Delivery', [], [], '', false);
     $this->object->always('consumer result', 'mixed payload goes here', $delivery, $listener, $e);
 }
示例#2
0
 public function feed(Delivery $delivery, AbstractConsumer $consumer)
 {
     $consumer->before($delivery, $this);
     $consumer_exception = null;
     $consume_result = null;
     $consume_payload = null;
     try {
         $consume_payload = $this->getSerializers()->get($delivery->getProperties()->getContentType())->parse($delivery->getBody());
         $consume_result = $consumer->consume($consume_payload, $delivery, $this);
     } catch (Exception $e) {
         $consumer_exception = $e;
     }
     if ($consumer_exception) {
         $consumer->failure($consumer_exception, $delivery, $this);
     } else {
         $consumer->after($consume_result, $delivery, $this);
     }
     $consumer->always($consume_result, $consume_payload, $delivery, $this, $consumer_exception);
 }