Completed
Push — master ( a8ea5a...738f6f )
by Mike
02:06
created

EventRabbitMqFactory::getRabbitMqClient()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

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