Passed
Push — master ( caaf65...a9856f )
by Yo
01:56
created

Configuration::getConfigTreeBuilder()   B

Complexity

Conditions 1
Paths 1

Size

Total Lines 42
Code Lines 34

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 35
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 42
ccs 35
cts 35
cp 1
rs 8.8571
c 0
b 0
f 0
cc 1
eloc 34
nc 1
nop 0
crap 1
1
<?php
2
namespace Yoanm\SymfonyJsonRpcHttpServer\DependencyInjection;
3
4
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
5
use Symfony\Component\Config\Definition\ConfigurationInterface;
6
7
class Configuration implements ConfigurationInterface
8
{
9 5
    public function getConfigTreeBuilder()
10
    {
11 5
        $treeBuilder = new TreeBuilder();
12
13 5
        $rootNode = $treeBuilder->root(JsonRpcHttpServerExtension::EXTENSION_IDENTIFIER);
14
15
        $rootNode
16 5
            ->children()
17 5
                ->variableNode('method_resolver')
18 5
                    ->info('Your custom method resolver service')
19 5
                    ->treatNullLike(false)
20 5
                    ->defaultFalse()
21 5
                ->end()
22 5
                ->arrayNode('methods_mapping')
23 5
                    ->requiresAtLeastOneElement()
24 5
                    ->normalizeKeys(false)
25 5
                    ->arrayPrototype()
26 5
                        ->beforeNormalization()
27
                            // Convert simple string to an array with the string as service
28 5
                            ->ifString()->then(function ($v) {
29 1
                                return ['service' => $v];
30 5
                            })
31 5
                        ->end()
32 5
                        ->children()
33 5
                            ->scalarNode('service')
34 5
                                ->isRequired()
35 5
                                ->cannotBeEmpty()
36 5
                            ->end()
37 5
                            ->arrayNode('aliases')
38 5
                                ->requiresAtLeastOneElement()
39 5
                                ->beforeNormalization()
40 5
                                    ->castToArray()
41 5
                                ->end()
42 5
                                ->scalarPrototype()->end()
43 5
                            ->end()
44 5
                        ->end()
45 5
                    ->end()
46 5
                ->end()
47 5
            ->end()
48
        ;
49
50 5
        return $treeBuilder;
51
    }
52
}
53