FieldMessage::merge()   A
last analyzed

Complexity

Conditions 3
Paths 3

Size

Total Lines 10
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 7
CRAP Score 3

Importance

Changes 0
Metric Value
cc 3
eloc 6
nc 3
nop 1
dl 0
loc 10
ccs 7
cts 7
cp 1
crap 3
rs 10
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types = 1);
4
5
namespace Hop\Validator\Message;
6
7
final class FieldMessage implements MessageInterface
8
{
9
    /**
10
     * @var string[]
11
     */
12
    private $messages = [];
13
14
    /**
15
     * @param string $code
16
     * @param string $name
17
     * @return FieldMessage
18
     */
19 12
    public function attachMessage(string $code, string $name): self
20
    {
21 12
        $this->messages[$code] = $name;
22 12
        return $this;
23
    }
24
25
    /**
26
     * @inheritdoc
27
     */
28 8
    public function toArray(): array
29
    {
30 8
        return $this->messages;
31
    }
32
33
    /**
34
     * @return int
35
     */
36 11
    public function count(): int
37
    {
38 11
        return \count($this->messages);
39
    }
40
41 3
    public function merge(MessageInterface $message): MessageInterface
42
    {
43 3
        $messageContainer = clone $this;
44 3
        if (!$message instanceof static) {
45 1
            throw new \InvalidArgumentException('Message must be a field message');
46
        }
47 2
        foreach ($message->toArray() as $error => $text) {
48 2
            $messageContainer->attachMessage($error, $text);
49
        }
50 2
        return $messageContainer;
51
    }
52
}
53