Completed
Push — master ( 5f4179...916f6e )
by Richard
11s
created

BehatExtension   A

Complexity

Total Complexity 9

Size/Duplication

Total Lines 49
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Importance

Changes 0
Metric Value
wmc 9
lcom 1
cbo 4
dl 0
loc 49
rs 10
c 0
b 0
f 0

6 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 7 1
A process() 0 6 2
A initialize() 0 6 2
A load() 0 6 2
A getConfigKey() 0 4 1
A configure() 0 10 1
1
<?php
2
3
namespace RMiller\BehatSpec\Extension\BehatSpecExtension;
4
5
use Behat\Testwork\ServiceContainer\Extension;
6
use Behat\Testwork\ServiceContainer\ExtensionManager;
7
use RMiller\BehatSpec\Extension\ErrorExtension\ErrorExtension;
8
use RMiller\BehatSpec\Extension\PhpSpecExtension\PhpSpecExtension as BehatPhpSpecExtension;
9
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
10
use Symfony\Component\DependencyInjection\ContainerBuilder;
11
12
class BehatExtension implements Extension
13
{
14
    private $extensions = [];
15
16
    public function __construct()
17
    {
18
        $this->extensions = [
19
            new BehatPhpSpecExtension(),
20
            new ErrorExtension(),
21
        ];
22
    }
23
24
    public function process(ContainerBuilder $container)
25
    {
26
        foreach ($this->extensions as $extension) {
27
            $extension->process($container);
28
        }
29
    }
30
31
    public function initialize(ExtensionManager $extensionManager)
32
    {
33
        foreach ($this->extensions as $extension) {
34
            $extension->initialize($extensionManager);
35
        }
36
    }
37
38
    public function load(ContainerBuilder $container, array $config)
39
    {
40
        foreach ($this->extensions as $extension) {
41
            $extension->load($container, $config);
42
        }
43
    }
44
45
    public function getConfigKey()
46
    {
47
        return 'behatspec';
48
    }
49
50
    public function configure(ArrayNodeDefinition $builder)
51
    {
52
        $builder
53
            ->addDefaultsIfNotSet()
54
            ->children()
55
                ->scalarNode('path')->defaultValue('bin/phpspec')->end()
56
                ->scalarNode('config')->defaultNull()->end()
57
            ->end()
58
         ->end();
59
    }
60
}
61