LogRabbitMqBusinessFactory   A
last analyzed

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