Test Failed
Push — master ( 2530ac...3f2955 )
by Vincent
10:10 queued 07:25
created

Container::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 1 Features 0
Metric Value
cc 1
eloc 1
c 1
b 1
f 0
nc 1
nop 1
dl 0
loc 3
rs 10
1
<?php
2
3
namespace Bdf\QueueBundle\Tests\Consumption;
4
5
use Bdf\Instantiator\Instantiator;
6
use Bdf\Instantiator\InstantiatorInterface;
7
use Bdf\Queue\Consumer\Receiver\Builder\ReceiverBuilder;
8
use Bdf\Queue\Consumer\Receiver\MemoryLimiterReceiver;
9
use Bdf\Queue\Consumer\Receiver\MessageCountLimiterReceiver;
10
use Bdf\Queue\Consumer\Receiver\MessageLoggerReceiver;
11
use Bdf\Queue\Consumer\Receiver\NoFailureReceiver;
12
use Bdf\Queue\Consumer\Receiver\ProcessorReceiver;
13
use Bdf\Queue\Consumer\Receiver\RateLimiterReceiver;
14
use Bdf\Queue\Consumer\Receiver\RetryMessageReceiver;
15
use Bdf\QueueBundle\Consumption\ReceiverLoader;
16
use PHPUnit\Framework\TestCase;
17
use Psr\Container\ContainerInterface;
18
19
/**
20
 *
21
 */
22
class ReceiverLoaderTest extends TestCase
23
{
24
    /**
25
     *
26
     */
27
    public function test_default_build()
28
    {
29
        $container = $this->createMock(ContainerInterface::class);
30
31
        $loader = new ReceiverLoader($container, []);
32
        $builder = $loader->load('foo');
33
34
        $this->assertEquals(new ReceiverBuilder($container), $builder);
35
    }
36
37
    /**
38
     *
39
     */
40
    public function test_config()
41
    {
42
        $container = new Container();
43
        $container->set(InstantiatorInterface::class, new Instantiator($container));
44
45
        $loader = new ReceiverLoader($container, [
46
            'foo' => [
47
                'retry' => '1',
48
                'limit' => '2',
49
                'no_failure' => true,
50
                'stop_when_empty' => '',
51
                'max' => '1',
52
                'memory' => '128',
53
            ]
54
        ]);
55
        $builder = $loader->load('foo');
56
57
        $chain = MemoryLimiterReceiver::class.'->'.MessageCountLimiterReceiver::class.'->'.NoFailureReceiver::class.'->'
58
            .RateLimiterReceiver::class.'->'.RetryMessageReceiver::class.'->'.MessageLoggerReceiver::class.'->'.ProcessorReceiver::class;
59
60
        $this->assertEquals($chain, (string)$builder->build());
61
    }
62
}
63
64
65
class Container implements \Psr\Container\ContainerInterface
66
{
67
    private $service;
68
69
    public function __construct(array $service = [])
70
    {
71
        $this->service = $service;
72
    }
73
74
    /**
75
     * @param string $id
76
     * @param mixed $service
77
     */
78
    public function set($id, $service): void
79
    {
80
        $this->service[$id] = $service;
81
    }
82
83
    /**
84
     * @inheritDoc
85
     */
86
    public function get($id)
87
    {
88
        return $this->service[$id];
89
    }
90
91
    /**
92
     * @inheritDoc
93
     */
94
    public function has($id)
95
    {
96
        return isset($this->service[$id]);
97
    }
98
}