Completed
Push — master ( 00278d...91b50a )
by Patrick
02:05
created

StatusFieldTest::testWithoutComment()   A

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