Completed
Push — master ( cef50b...fa3cc9 )
by Thomas Mauro
02:58
created

ConsumerCallback::getMessageMapper()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 7
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 2.0625

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 7
ccs 3
cts 4
cp 0.75
rs 9.4285
cc 2
eloc 4
nc 2
nop 0
crap 2.0625
1
<?php
2
3
namespace AMQPAL\Adapter\PhpAmqpLib;
4
5
use PhpAmqpLib\Message\AMQPMessage;
6
7
class ConsumerCallback
8
{
9
    /**
10
     * @var callable
11
     */
12
    protected $callback;
13
    /**
14
     * @var Queue
15
     */
16
    protected $queue;
17
    /**
18
     * @var MessageMapper
19
     */
20
    protected $messageMapper;
21
22
    /**
23
     * ConsumerCallback constructor.
24
     *
25
     * @param callable $callback
26
     * @param Queue    $queue
27
     */
28 4
    public function __construct(callable $callback, Queue $queue)
29
    {
30 4
        $this->callback = $callback;
31 4
        $this->queue = $queue;
32 4
    }
33
34
    /**
35
     * @param AMQPMessage $message
36
     * @throws \OutOfBoundsException
37
     */
38 1
    public function __invoke(AMQPMessage $message)
39
    {
40 1
        $convertedMessage = $this->getMessageMapper()->toMessage($message);
41 1
        call_user_func($this->callback, $convertedMessage, $this->queue);
42 1
    }
43
44
    /**
45
     * @return MessageMapper
46
     */
47 1
    public function getMessageMapper()
48
    {
49 1
        if (!$this->messageMapper) {
50
            $this->messageMapper = new MessageMapper();
51
        }
52 1
        return $this->messageMapper;
53
    }
54
55
    /**
56
     * @param MessageMapper $messageMapper
57
     * @return $this
58
     */
59 4
    public function setMessageMapper($messageMapper)
60
    {
61 4
        $this->messageMapper = $messageMapper;
62 4
        return $this;
63
    }
64
}
65