Completed
Push — master ( ccbe64...bcccab )
by Thomas Mauro
05:56
created

ConsumerCallbackTest::testInvokeWithCancel()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 23
Code Lines 16

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 23
rs 9.0856
cc 1
eloc 16
nc 1
nop 0
1
<?php
2
3
namespace AMQPAL\Adapter\PhpAmqpLib;
4
5
use PhpAmqpLib\Message\AMQPMessage;
6
use AMQPAL\Adapter\ConsumerInterface;
7
use AMQPAL\Adapter\Message;
8
9
class ConsumerCallbackTest extends \PHPUnit_Framework_TestCase
10
{
11
    public function testGetDefaultMessageMapper()
12
    {
13
        $callable = function () {
14
            
15
        };
16
        $queue = $this->prophesize(Queue::class);
17
18
        $consumerCallback = new ConsumerCallback($callable, $queue->reveal());
19
20
        static::assertInstanceOf(MessageMapper::class, $consumerCallback->getMessageMapper());
21
22
        $messageMapper = $this->prophesize(MessageMapper::class);
23
        $consumerCallback->setMessageMapper($messageMapper->reveal());
24
25
        static::assertSame($messageMapper->reveal(), $consumerCallback->getMessageMapper());
26
    }
27
28
    public function testInvoke()
29
    {
30
        $queue = $this->prophesize(Queue::class);
31
        $callable = $this->prophesize(ConsumerInterface::class);
32
        $libMessage = $this->prophesize(AMQPMessage::class);
33
        $message = $this->prophesize(Message::class);
34
        $messageMapper = $this->prophesize(MessageMapper::class);
35
36
        $messageMapper->toMessage($libMessage->reveal())
37
            ->shouldBeCalled()
38
            ->willReturn($message);
39
40
        $callable->__invoke($message->reveal(), $queue->reveal())
41
            ->shouldBeCalled();
42
43
        $consumerCallback = new ConsumerCallback($callable->reveal(), $queue->reveal());
44
        $consumerCallback->setMessageMapper($messageMapper->reveal());
45
46
        $consumerCallback($libMessage->reveal());
47
    }
48
49
    public function testInvokeWithCancel()
50
    {
51
        $queue = $this->prophesize(Queue::class);
52
        $callable = $this->prophesize(ConsumerInterface::class);
53
        $libMessage = $this->prophesize(AMQPMessage::class);
54
        $message = $this->prophesize(Message::class);
55
        $messageMapper = $this->prophesize(MessageMapper::class);
56
57
        $messageMapper->toMessage($libMessage->reveal())
58
            ->shouldBeCalled()
59
            ->willReturn($message);
60
61
        $callable->__invoke($message->reveal(), $queue->reveal())
62
            ->shouldBeCalled()->willReturn(false);
63
64
        $libMessage->delivery_info = ['consumer_tag' => 'foo'];
65
        $queue->cancel('foo')->shouldBeCalled();
66
67
        $consumerCallback = new ConsumerCallback($callable->reveal(), $queue->reveal());
68
        $consumerCallback->setMessageMapper($messageMapper->reveal());
69
70
        $consumerCallback($libMessage->reveal());
71
    }
72
}
73