Completed
Push — master ( 883f28...097345 )
by Vincent
03:45 queued 11s
created

CheckMethods::checkSetMethod()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 13
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 8
CRAP Score 1

Importance

Changes 0
Metric Value
eloc 7
dl 0
loc 13
ccs 8
cts 8
cp 1
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 5
crap 1
1
<?php
2
3
namespace VGirol\JsonApiFaker\Testing;
4
5
use PHPUnit\Framework\Assert as PHPUnit;
6
7
trait CheckMethods
8
{
9 10
    protected function checkSetMethod($factory, string $fnName, string $attrName, $data1, $data2)
10
    {
11 10
        PHPUnit::assertEmpty($factory->{$attrName});
12
13 10
        $obj = $factory->{$fnName}($data1);
14
15 10
        PHPUnit::assertObjectHasAttribute($attrName, $factory);
16 10
        PHPUnit::assertEquals($data1, $factory->{$attrName});
17 10
        PHPUnit::assertSame($obj, $factory);
18
19 10
        $factory->{$fnName}($data2);
20
21 10
        PHPUnit::assertEquals($data2, $factory->{$attrName});
22 10
    }
23
24 4
    public function checkAddSingle($factory, string $fnName, string $attrName, array $data1, array $data2)
25
    {
26 4
        PHPUnit::assertEmpty($factory->{$attrName});
27
28 4
        foreach ($data1 as $key => $value) {
29 4
            $obj = $factory->{$fnName}($key, $value);
30
        }
31
32 4
        PHPUnit::assertObjectHasAttribute($attrName, $factory);
33 4
        PHPUnit::assertEquals($data1, $factory->{$attrName});
34 4
        PHPUnit::assertSame($obj, $factory);
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable $obj seems to be defined by a foreach iteration on line 28. Are you sure the iterator is never empty, otherwise this variable is not defined?
Loading history...
35
36 4
        foreach ($data2 as $key => $value) {
37 4
            $obj = $factory->{$fnName}($key, $value);
0 ignored issues
show
Unused Code introduced by
The assignment to $obj is dead and can be removed.
Loading history...
38
        }
39
40 4
        PHPUnit::assertEquals(
41 4
            array_merge($data1, $data2),
42 4
            $factory->{$attrName}
43
        );
44 4
    }
45
46 2
    public function checkAddMulti($factory, string $fnName, string $attrName, array $data1, array $data2)
47
    {
48 2
        PHPUnit::assertEmpty($factory->{$attrName});
49
50 2
        $obj = $factory->{$fnName}($data1);
51
52 2
        PHPUnit::assertObjectHasAttribute($attrName, $factory);
53 2
        PHPUnit::assertEquals($data1, $factory->{$attrName});
54 2
        PHPUnit::assertSame($obj, $factory);
55
56 2
        $obj = $factory->{$fnName}($data2);
0 ignored issues
show
Unused Code introduced by
The assignment to $obj is dead and can be removed.
Loading history...
57
58 2
        PHPUnit::assertEquals(
59 2
            array_merge($data1, $data2),
60 2
            $factory->{$attrName}
61
        );
62 2
    }
63
}
64