Completed
Push — master ( a1d3b0...f47b8c )
by Nikola
02:43
created

ParametrizedObjectConfig::validate()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 5
ccs 4
cts 4
cp 1
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
crap 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace MonologFactory\Config;
6
7
class ParametrizedObjectConfig extends BaseConfig
8
{
9
    public const NAME = 'name';
10
    public const PARAMETERS = 'params';
11
12
    /** @var string */
13
    protected $name;
14
15
    /** @var array */
16
    protected $parameters;
17
18 9
    protected function __construct(string $name, array $parameters)
19
    {
20 9
        $this->name = $name;
21 9
        $this->parameters = $parameters;
22 9
    }
23
24 5
    public static function fromArray(array $config)
25
    {
26 5
        $config = self::filter($config);
27
28 5
        return new static($config[self::NAME], $config[self::PARAMETERS]);
29
    }
30
31 10
    protected static function defaults(): array
32
    {
33
        return [
34 10
            self::NAME => '',
35 10
            self::PARAMETERS => [],
36
        ];
37
    }
38
39 10
    protected static function validate(array $config): void
40
    {
41 10
        ConfigAssertion::notEmptyString($config[self::NAME], "'" . self::NAME . "' is required and cannot be empty");
42 10
        ConfigAssertion::isArray($config[self::PARAMETERS], "'" . self::PARAMETERS . "' must be an array");
43 10
    }
44
45 9
    public function getName(): string
46
    {
47 9
        return $this->name;
48
    }
49
50 9
    public function getParameters(): array
51
    {
52 9
        return $this->parameters;
53
    }
54
}
55