test_default_method_inflector_can_be_overrided()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 23

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 23
rs 9.552
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
declare(strict_types=1);
3
4
namespace League\Tactician\Bundle\Tests\DependencyInjection\Compiler\BusBuilder;
5
6
use PHPUnit\Framework\TestCase;
7
use League\Tactician\Bundle\DependencyInjection\Compiler\BusBuilder\BusBuilder;
8
use League\Tactician\Bundle\DependencyInjection\Compiler\BusBuilder\BusBuildersFromConfig;
9
10
final class BusBuildersFromConfigTest extends TestCase
11
{
12
    public function test_config_leads_to_builder_with_default_for_each_commandbus()
13
    {
14
        $builders = BusBuildersFromConfig::convert([
15
            'commandbus' => [
16
                'default' => [
17
                    'middleware' => [
18
                        'my.middleware',
19
                    ],
20
                ],
21
                'other' => [
22
                    'middleware' => [
23
                        'my.other.middleware',
24
                    ],
25
                ],
26
            ],
27
        ]);
28
29
        $this->assertEquals(
30
            new BusBuilder('default', BusBuildersFromConfig::DEFAULT_METHOD_INFLECTOR, ['my.middleware']),
31
            $builders->getIterator()['default']
32
        );
33
        $this->assertEquals(
34
            new BusBuilder('other', BusBuildersFromConfig::DEFAULT_METHOD_INFLECTOR, ['my.other.middleware']),
35
            $builders->getIterator()['other']
36
        );
37
    }
38
39
    public function test_default_method_inflector_can_be_overrided()
40
    {
41
        $builders = BusBuildersFromConfig::convert([
42
            'method_inflector' => 'other.inflector',
43
            'commandbus' => [
44
                'default' => [
45
                    'middleware' => [
46
                        'my.middleware',
47
                    ],
48
                ],
49
                'other' => [
50
                    'middleware' => [
51
                        'my.other.middleware',
52
                    ],
53
                ],
54
            ],
55
        ]);
56
57
        $this->assertEquals(
58
            new BusBuilder('default', 'other.inflector', ['my.middleware']),
59
            $builders->getIterator()['default']
60
        );
61
    }
62
63
    public function test_method_inflector_of_each_bus_can_be_overrided()
64
    {
65
        $builders = BusBuildersFromConfig::convert([
66
            'method_inflector' => 'other.inflector',
67
            'commandbus' => [
68
                'default' => [
69
                    'middleware' => [
70
                        'my.middleware',
71
                    ],
72
                ],
73
                'other' => [
74
                    'method_inflector' => 'bus2.inflector',
75
                    'middleware' => [
76
                        'my.other.middleware',
77
                    ],
78
                ],
79
            ],
80
        ]);
81
82
        $this->assertEquals(
83
            new BusBuilder('other', 'bus2.inflector', ['my.other.middleware']),
84
            $builders->getIterator()['other']
85
        );
86
    }
87
88
    public function test_default_bus_is_set()
89
    {
90
        $builders = BusBuildersFromConfig::convert([
91
            'commandbus' => [
92
                'default' => [
93
                    'middleware' => [
94
                        'my.middleware',
95
                    ],
96
                ],
97
                'other' => [
98
                    'middleware' => [
99
                        'my.other.middleware',
100
                    ],
101
                ],
102
            ],
103
        ]);
104
105
        $this->assertEquals(
106
            new BusBuilder('default', BusBuildersFromConfig::DEFAULT_METHOD_INFLECTOR, ['my.middleware']),
107
            $builders->defaultBus()
108
        );
109
    }
110
111
    public function test_default_bus_can_be_overrided()
112
    {
113
        $builders = BusBuildersFromConfig::convert([
114
            'default_bus' => 'other',
115
            'commandbus' => [
116
                'default' => [
117
                    'middleware' => [
118
                        'my.middleware',
119
                    ],
120
                ],
121
                'other' => [
122
                    'middleware' => [
123
                        'my.other.middleware',
124
                    ],
125
                ],
126
            ],
127
        ]);
128
129
        $this->assertEquals(
130
            new BusBuilder('other', BusBuildersFromConfig::DEFAULT_METHOD_INFLECTOR, ['my.other.middleware']),
131
            $builders->defaultBus()
132
        );
133
    }
134
}
135