Test Failed
Push — master ( 1a6b60...537cfd )
by Mike
03:18
created

getEventFacade()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 1
dl 0
loc 3
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
4
namespace Xervice\EventRabbitMq;
5
6
7
use DataProvider\RabbitMqExchangeDataProvider;
8
use DataProvider\RabbitMqQueueBindDataProvider;
9
use DataProvider\RabbitMqQueueDataProvider;
10
use Xervice\Core\Business\Model\Factory\AbstractCommunicationFactory;
11
use Xervice\Event\Business\EventFacade;
12
use Xervice\RabbitMQ\Business\RabbitMQFacade;
13
14
/**
15
 * @method \Xervice\EventRabbitMq\EventRabbitMqConfig getConfig()
16
 */
17
class EventRabbitMqCommunicationFactory extends AbstractCommunicationFactory
18
{
19
20
    /**
21
     * @return \DataProvider\RabbitMqQueueBindDataProvider
22
     */
23
    public function createBindQueue(): RabbitMqQueueBindDataProvider
24
    {
25
        return (new RabbitMqQueueBindDataProvider())
26
            ->setQueue(
27
                $this->createEventQueue()
28
            )
29
            ->setExchange(
30
                $this->createEventExchange()
31
            );
32
    }
33
34
    public function createEventExchange(): RabbitMqExchangeDataProvider
35
    {
36
        return (new RabbitMqExchangeDataProvider())
37
            ->setName(
38
                $this->getConfig()->getExchangeName()
39
            )
40
            ->setAutoDelete(false)
41
            ->setType('fanout');
42
    }
43
44
    /**
45
     * @return \DataProvider\RabbitMqQueueDataProvider
46
     */
47
    public function createEventQueue(): RabbitMqQueueDataProvider
48
    {
49
        return (new RabbitMqQueueDataProvider())
50
            ->setName($this->getConfig()->getQueueName())
51
            ->setAutoDelete(false);
52
    }
53
54
    /**
55
     * @return \Xervice\RabbitMQ\Business\RabbitMQFacade
56
     */
57
    public function getRabbitMqFacade(): RabbitMQFacade
58
    {
59
        return $this->getDependency(EventRabbitMqDependencyProvider::RABBITMQ_FACADE);
60
    }
61
62
    /**
63
     * @return \Xervice\Event\Business\EventFacade
64
     */
65
    public function getEventFacade(): EventFacade
66
    {
67
        return $this->getDependency(EventRabbitMqDependencyProvider::EVENT_FACADE);
68
    }
69
}