Failed Conditions
Pull Request — master (#13)
by Adrien
05:33 queued 02:11
created

TestWithContainer   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 31
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 11
c 1
b 0
f 0
dl 0
loc 31
rs 10
wmc 3

3 Methods

Rating   Name   Duplication   Size   Complexity  
A createContainer() 0 8 1
A createDefaultFelixContainer() 0 7 1
A tearDown() 0 4 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace EcodevTests\Felix\Traits;
6
7
use Ecodev\Felix\ConfigProvider;
8
use Laminas\ConfigAggregator\ConfigAggregator;
9
use Laminas\ServiceManager\ServiceManager;
10
11
/**
12
 * Trait to easily set up container.
13
 */
14
trait TestWithContainer
15
{
16
    protected function tearDown(): void
17
    {
18
        global $container;
19
        $container = null;
20
    }
21
22
    /**
23
     * Create the global `$container` variable with Felix default configuration.
24
     */
25
    private function createDefaultFelixContainer(): void
26
    {
27
        $defaultFelixConfiguration = new ConfigAggregator([
28
            ConfigProvider::class,
29
        ]);
30
31
        $this->createContainer($defaultFelixConfiguration);
32
    }
33
34
    /**
35
     * Create the global `$container` variable with the given configuration.
36
     */
37
    private function createContainer(ConfigAggregator $aggregator): void
38
    {
39
        $config = $aggregator->getMergedConfig();
40
        $dependencies = $config['dependencies'];
41
        $dependencies['services']['config'] = $config;
42
43
        global $container;
44
        $container = new ServiceManager($dependencies);
45
    }
46
}
47