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

BehatExtension::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 7
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 4
nc 1
nop 0
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