Test Failed
Pull Request — master (#6)
by Laurens
01:35
created

Rgb   A

Complexity

Total Complexity 9

Size/Duplication

Total Lines 63
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 9
lcom 1
cbo 1
dl 0
loc 63
ccs 27
cts 27
cp 1
rs 10
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace LauLamanApps\ApplePassbook\Style\Color;
6
7
use LauLamanApps\ApplePassbook\Style\Color;
8
use LauLamanApps\ApplePassbook\Style\Color\Exception\OutOfRangeException;
9
10
class Rgb implements Color
11
{
12
    private int $red = 0;
0 ignored issues
show
Bug introduced by
This code did not parse for me. Apparently, there is an error somewhere around this line:

Syntax error, unexpected T_STRING, expecting T_FUNCTION or T_CONST
Loading history...
13
    private int $green = 0;
14
    private int $blue = 0;
15
16
    public function __construct(int $red = null, int $green = null, int $blue = null)
17
    {
18
        if ($red) {
19
            $this->setRed($red);
20
        }
21
22
        if ($green) {
23
            $this->setGreen($green);
24
        }
25
26
        if ($blue) {
27 13
            $this->setBlue($blue);
28
        }
29 13
    }
30 13
31 13
    public function setRed(int $red): void
32 13
    {
33
        $this->isValid($red);
34 13
        $this->red = $red;
35
    }
36 13
37 13
    public function setGreen(int $green): void
38 13
    {
39
        $this->isValid($green);
40 13
        $this->green = $green;
41
    }
42 13
43 13
    public function setBlue(int $blue): void
44 13
    {
45
        $this->isValid($blue);
46 13
        $this->blue = $blue;
47
    }
48 13
49 13
    public function toString(): string
50 13
    {
51
        return sprintf('rgb(%s, %s, %s)', $this->red, $this->green, $this->blue);
52 7
    }
53
54 7
    private function isValid(int $value): void
55
    {
56
        if ($value < 0 || $value > 255 ) {
57 13
            throw new OutOfRangeException('Value out of range (0-255).');
58
        }
59 13
    }
60
}
61