UserTestTransformer   A
last analyzed

Complexity

Total Complexity 1

Size/Duplication

Total Lines 5
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 2
dl 0
loc 5
rs 10
c 0
b 0
f 0
wmc 1

1 Method

Rating   Name   Duplication   Size   Complexity  
A toArray() 0 3 1
1
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: arthur
5
 * Date: 30.10.18
6
 * Time: 22:59.
7
 */
8
9
namespace Foundation\Tests;
10
11
use Foundation\Abstracts\Tests\TestCase;
12
use Foundation\Abstracts\Transformers\Transformer;
13
use Illuminate\Database\Eloquent\Model;
14
15
class TransformerTest extends TestCase
16
{
17
    protected $user;
18
19
    protected $machine;
20
21
    protected $machineNoUser;
22
23
    protected function seedData()
24
    {
25
        $this->user = new UserTestModel();
26
        $this->machine = new MachineTestModel($this->user);
27
        $this->machineNoUser = new MachineTestModel(null);
28
    }
29
30
    public function testNoRelation()
31
    {
32
        $machineResource = MachineTestTransformer::resource($this->machine)->serialize();
33
        $this->assertEmpty($machineResource);
34
        $this->assertArrayNotHasKey('user', $machineResource);
35
    }
36
37
    /*public function testIncludeMethodRelation()
38
    {
39
        $machineResource = MachineTestTransformer::resource($this->machine,['user'=>UserTestTransformer::class])->serialize();
40
        $this->assertArrayHasKey('user', $machineResource);
41
    }
42
43
    public function testEmptyRelation()
44
    {
45
        $machineResource = MachineTestTransformer::resource($this->machineNoUser)->include('user')->serialize();
46
        $this->assertArrayHasKey('user', $machineResource);
47
        $this->assertNull($machineResource['user']);
48
    }
49
50
    public function testPreIncludedRelation()
51
    {
52
        $machineResource = UserIncludedMachineTestTransformer::resource($this->machine)->serialize();
53
        $this->assertArrayHasKey('user', $machineResource);
54
    }*/
55
}
56
57
final class MachineTestModel extends Model
58
{
59
    public $user;
60
61
    public function __construct($user)
62
    {
63
        $this->user = $user;
64
        parent::__construct([]);
65
    }
66
}
67
68
final class UserTestModel extends Model
69
{
70
}
71
72
class MachineTestTransformer extends Transformer
73
{
74
    public function toArray($request)
75
    {
76
        return [];
77
    }
78
79
    public function transformUser(MachineTestModel $machine)
80
    {
81
        return UserTestTransformer::resource($machine->user);
82
    }
83
}
84
85
class UserIncludedMachineTestTransformer extends MachineTestTransformer
86
{
87
    public $include = ['user'];
88
}
89
90
class UserTestTransformer extends Transformer
91
{
92
    public function toArray($request)
93
    {
94
        return [];
95
    }
96
}
97