Passed
Push — master ( 4d0252...b49d6f )
by Mike
01:47
created

LogRabbitMqFactory   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 48
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 4
eloc 16
dl 0
loc 48
ccs 19
cts 19
cp 1
rs 10
c 0
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A createLogExchange() 0 8 1
A createLogQueue() 0 7 1
A createLogQueueBind() 0 8 1
A getRabbitMqClient() 0 3 1
1
<?php
2
3
4
namespace Xervice\LogRabbitMq;
5
6
7
use DataProvider\RabbitMqExchangeDataProvider;
8
use DataProvider\RabbitMqQueueBindDataProvider;
9
use DataProvider\RabbitMqQueueDataProvider;
10
use Xervice\Core\Factory\AbstractFactory;
11
use Xervice\RabbitMQ\Core\ExchangeProvider;
12
use Xervice\RabbitMQ\RabbitMQClient;
13
14
/**
15
 * @method \Xervice\LogRabbitMq\LogRabbitMqConfig getConfig()
16
 */
17
class LogRabbitMqFactory extends AbstractFactory
18
{
19
20
    /**
21
     * @return \DataProvider\RabbitMqQueueBindDataProvider
22
     */
23 1
    public function createLogQueueBind(): RabbitMqQueueBindDataProvider
24
    {
25 1
        return (new RabbitMqQueueBindDataProvider())
26 1
            ->setExchange(
27 1
                $this->createLogExchange()
28
            )
29 1
            ->setQueue(
30 1
                $this->createLogQueue()
31
            );
32
    }
33
34
    /**
35
     * @return \DataProvider\RabbitMqQueueDataProvider
36
     */
37 1
    public function createLogQueue(): RabbitMqQueueDataProvider
38
    {
39 1
        return (new RabbitMqQueueDataProvider())
40 1
            ->setName(
41 1
                $this->getConfig()->getQueueName()
42
            )
43 1
            ->setAutoDelete(false);
44
    }
45
46
    /**
47
     * @return \DataProvider\RabbitMqExchangeDataProvider
48
     */
49 1
    public function createLogExchange(): RabbitMqExchangeDataProvider
50
    {
51 1
        return (new RabbitMqExchangeDataProvider())
52 1
            ->setName(
53 1
                $this->getConfig()->getExchangeName()
54
            )
55 1
            ->setType(ExchangeProvider::TYPE_FANOUT)
56 1
            ->setAutoDelete(false);
57
    }
58
59
    /**
60
     * @return \Xervice\RabbitMQ\RabbitMQClient
61
     */
62 1
    public function getRabbitMqClient(): RabbitMQClient
63
    {
64 1
        return $this->getDependency(LogRabbitMqDependencyProvider::RABBITMQ_CLIENT);
65
    }
66
}