Completed
Push — master ( 331c43...fab006 )
by Miloš
01:13
created

Resolver::validate()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 8

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 2.2559

Importance

Changes 0
Metric Value
cc 2
nc 2
nop 2
dl 0
loc 8
ccs 3
cts 5
cp 0.6
crap 2.2559
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace Laganica\Di\Resolver;
4
5
use InvalidArgumentException;
6
use Laganica\Di\Definition\DefinitionInterface;
7
use Psr\Container\ContainerInterface;
8
9
/**
10
 * Class Resolver
11
 *
12
 * @package Laganica\Di\Resolver
13
 */
14
abstract class Resolver implements ResolverInterface
15
{
16
    /**
17
     * @var ContainerInterface
18
     */
19
    private $container;
20
21
    /**
22
     * Resolver constructor.
23
     *
24
     * @param ContainerInterface $container
25
     */
26 7
    public function __construct(ContainerInterface $container)
27
    {
28 7
        $this->container = $container;
29 7
    }
30
31
    /**
32
     * @return ContainerInterface
33
     */
34 6
    protected function getContainer(): ContainerInterface
35
    {
36 6
        return $this->container;
37
    }
38
39
    /**
40
     * @param DefinitionInterface $definition
41
     * @param string $expectedDefinitionClass
42
     */
43 7
    protected function validate(DefinitionInterface $definition, string $expectedDefinitionClass): void
44
    {
45 7
        if (!$definition instanceof $expectedDefinitionClass) {
46
            $actualType = get_class($definition);
47
48
            throw new InvalidArgumentException("Argument \$definition must be $expectedDefinitionClass, $actualType given");
49
        }
50 7
    }
51
}
52