TestKernel   A
last analyzed

Complexity

Total Complexity 10

Size/Duplication

Total Lines 65
Duplicated Lines 0 %

Coupling/Cohesion

Components 2
Dependencies 1

Importance

Changes 0
Metric Value
wmc 10
lcom 2
cbo 1
dl 0
loc 65
rs 10
c 0
b 0
f 0

6 Methods

Rating   Name   Duplication   Size   Complexity  
A addBundleClasses() 0 6 2
A addBundleClass() 0 4 1
A addConfigFiles() 0 6 2
A addConfigFile() 0 4 1
A registerBundles() 0 10 2
A registerContainerConfiguration() 0 7 2
1
<?php declare(strict_types = 1);
2
3
namespace TomCizek\SymfonyInteropContainer\Tests;
4
5
use Symfony\Component\Config\Loader\LoaderInterface;
6
use Symfony\Component\HttpKernel\Bundle\BundleInterface;
7
use Symfony\Component\HttpKernel\Kernel;
8
use TomCizek\SymfonyInteropContainer\Tests\Configurators\ConfigFile;
9
10
class TestKernel extends Kernel
11
{
12
	/** @var string[] */
13
	private $bundlesToRegister = [];
14
	/** @var ConfigFile[] */
15
	private $configFilesToAdd = [];
16
17
	/**
18
	 * @param string[] $classNames
19
	 */
20
	public function addBundleClasses(array $classNames): void
21
	{
22
		foreach ($classNames as $className) {
23
			$this->addBundleClass($className);
24
		}
25
	}
26
27
	public function addBundleClass(string $className): void
28
	{
29
		$this->bundlesToRegister[] = $className;
30
	}
31
32
	/**
33
	 * @param ConfigFile[] $configFiles
34
	 */
35
	public function addConfigFiles(array $configFiles): void
36
	{
37
		foreach ($configFiles as $configFile) {
38
			$this->addConfigFile($configFile);
39
		}
40
	}
41
42
	public function addConfigFile(ConfigFile $configFile): void
43
	{
44
		$this->configFilesToAdd[] = $configFile;
45
	}
46
47
	/**
48
	 * Returns an array of bundles to register.
49
	 * @return BundleInterface[] An array of bundle instances
50
	 */
51
	public function registerBundles()
52
	{
53
		$instances = [];
54
		foreach ($this->bundlesToRegister as $className) {
55
			$instances[] = new $className();
56
		}
57
58
		return $instances;
59
60
	}
61
62
	/**
63
	 * Loads the container configuration.
64
	 *
65
	 * @param LoaderInterface $loader A LoaderInterface instance
66
	 */
67
	public function registerContainerConfiguration(LoaderInterface $loader)
68
	{
69
		foreach ($this->configFilesToAdd as $configFileToAdd) {
70
71
			$loader->load($configFileToAdd->getPath(), $configFileToAdd->getType());
72
		}
73
	}
74
}
75