Failed Conditions
Pull Request — master (#1)
by Yo
04:42
created

StepLoggerConfiguration::getConfigNode()   B

Complexity

Conditions 2
Paths 1

Size

Total Lines 30
Code Lines 22

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 16
CRAP Score 2.0539

Importance

Changes 0
Metric Value
dl 0
loc 30
ccs 16
cts 21
cp 0.7619
rs 8.8571
c 0
b 0
f 0
cc 2
eloc 22
nc 1
nop 0
crap 2.0539
1
<?php
2
namespace Yoanm\BehatUtilsExtension\ServiceContainer\Configuration;
3
4
use Symfony\Component\Config\Definition\Builder\NodeDefinition;
5
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
6
7
class StepLoggerConfiguration implements ConfigurationInterface
8
{
9
    /**
10
     * @return NodeDefinition
11
     */
12
    public function getConfigNode()
13
    {
14 1
        $castToBool = function ($value) {
15
            $filtered = filter_var(
16
                $value,
17
                FILTER_VALIDATE_BOOLEAN,
18
                FILTER_NULL_ON_FAILURE
19
            );
20
21
            return (null === $filtered) ? (bool) $value : $filtered;
22 1
        };
23
24 1
        $treeBuilder = new TreeBuilder();
25 1
        $rootNode = $treeBuilder->root('step_logger');
26
        $rootNode
27 1
            ->addDefaultsIfNotSet()
28 1
            ->treatFalseLike(array('enabled' => false))
29 1
            ->treatNullLike(array('enabled' => false))
30 1
            ->treatTrueLike(array('enabled' => true))
31 1
            ->children()
32 1
                ->booleanNode('enabled')
33 1
                    ->beforeNormalization()
34 1
                        ->always()
35 1
                        ->then($castToBool)
36 1
                    ->end()
37 1
                    ->defaultFalse()
38
        ;
39
40 1
        return $rootNode;
41
    }
42
}
43