QueueProvider   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 57
Duplicated Lines 0 %

Test Coverage

Coverage 88.46%

Importance

Changes 0
Metric Value
eloc 22
dl 0
loc 57
ccs 23
cts 26
cp 0.8846
rs 10
c 0
b 0
f 0
wmc 4

4 Methods

Rating   Name   Duplication   Size   Complexity  
A delete() 0 4 1
A declare() 0 11 1
A __construct() 0 3 1
A bind() 0 9 1
1
<?php
2
3
4
namespace Xervice\RabbitMQ\Business\Model\Core;
5
6
7
use DataProvider\RabbitMqQueueBindDataProvider;
8
use DataProvider\RabbitMqQueueDataProvider;
9
use PhpAmqpLib\Channel\AMQPChannel;
10
11
class QueueProvider implements QueueProviderInterface
12
{
13
    /**
14
     * @var \PhpAmqpLib\Channel\AMQPChannel
15
     */
16
    private $channel;
17
18
    /**
19
     * Exchange constructor.
20
     *
21
     * @param \PhpAmqpLib\Channel\AMQPChannel $channel
22
     */
23 2
    public function __construct(AMQPChannel $channel)
24
    {
25 2
        $this->channel = $channel;
26 2
    }
27
28
    /**
29
     * @param \DataProvider\RabbitMqQueueDataProvider $queueDataProvider
30
     */
31 2
    public function declare(RabbitMqQueueDataProvider $queueDataProvider): void
32
    {
33 2
        $this->channel->queue_declare(
34 2
            $queueDataProvider->getName(),
35 2
            $queueDataProvider->getPassive(),
36 2
            $queueDataProvider->getDurable(),
37 2
            $queueDataProvider->getExclusive(),
38 2
            $queueDataProvider->getAutoDelete(),
39 2
            $queueDataProvider->getNoWait(),
40 2
            $queueDataProvider->getArgument(),
41 2
            $queueDataProvider->getTicket()
42
        );
43 2
    }
44
45
46
    /**
47
     * @param \DataProvider\RabbitMqQueueBindDataProvider $bindDataProvider
48
     */
49 2
    public function bind(RabbitMqQueueBindDataProvider $bindDataProvider): void
50
    {
51 2
        $this->channel->queue_bind(
52 2
            $bindDataProvider->getQueue()->getName(),
53 2
            $bindDataProvider->getExchange()->getName(),
54 2
            $bindDataProvider->getRoutingKey(),
55 2
            $bindDataProvider->getNoWait(),
56 2
            $bindDataProvider->getArgument(),
57 2
            $bindDataProvider->getTicket()
58
        );
59 2
    }
60
61
    /**
62
     * @param \DataProvider\RabbitMqQueueDataProvider $queueDataProvider
63
     */
64
    public function delete(RabbitMqQueueDataProvider $queueDataProvider): void
65
    {
66
        $this->channel->queue_delete(
67
            $queueDataProvider->getName()
68
        );
69
    }
70
71
72
}