StatusFieldTest::testWithoutComment()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 25
Code Lines 18

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 18
dl 0
loc 25
rs 9.6666
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Artack\Dsn\Field;
6
7
use Artack\Dsn\Exception\InvalidArgumentException;
8
use PHPUnit\Framework\TestCase;
9
10
class StatusFieldTest extends TestCase
11
{
12
    public function testWithoutComment(): void
13
    {
14
        $codeClassFirst = 2;
15
        $codeSubjectFirst = 5;
16
        $codeEnumeratedFirst = 10;
17
18
        $codeClassSecond = 5;
19
        $codeSubjectSecond = 6;
20
        $codeEnumeratedSecond = 11;
21
22
        $statusField = new StatusField('name', $codeClassFirst, $codeSubjectFirst, $codeEnumeratedFirst, null);
23
24
        $this->assertSame($codeClassFirst, $statusField->getCodeClass());
25
        $this->assertSame($codeSubjectFirst, $statusField->getCodeSubject());
26
        $this->assertSame($codeEnumeratedFirst, $statusField->getCodeEnumerated());
27
        $this->assertSame($codeClassFirst.'.'.$codeSubjectFirst.'.'.$codeEnumeratedFirst, $statusField->getCode());
28
29
        $statusField->setCodeClass($codeClassSecond);
30
        $statusField->setCodeSubject($codeSubjectSecond);
31
        $statusField->setCodeEnumerated($codeEnumeratedSecond);
32
33
        $this->assertSame($codeClassSecond, $statusField->getCodeClass());
34
        $this->assertSame($codeSubjectSecond, $statusField->getCodeSubject());
35
        $this->assertSame($codeEnumeratedSecond, $statusField->getCodeEnumerated());
36
        $this->assertSame($codeClassSecond.'.'.$codeSubjectSecond.'.'.$codeEnumeratedSecond, $statusField->getCode());
37
    }
38
39
    /**
40
     * @dataProvider invalidInputProvider
41
     */
42
    public function testWithInvalidInput(int $codeClass, int $codeSubject, int $codeEnumerated): void
43
    {
44
        $this->expectException(InvalidArgumentException::class);
45
46
        new StatusField('name', $codeClass, $codeSubject, $codeEnumerated, null);
47
    }
48
49
    public function invalidInputProvider(): array
50
    {
51
        return [
52
            [-1, 0, 0],
53
            [0, 0, 0],
54
            [1, 0, 0],
55
            [3, 0, 0],
56
            [6, 0, 0],
57
            [7, 0, 0],
58
            [2, -1, 0],
59
            [2, 8, 0],
60
            [2, 0, -1],
61
            [2, 0, 1000],
62
        ];
63
    }
64
}
65