RelationshipFactory   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 28
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 8
dl 0
loc 28
ccs 7
cts 7
cp 1
rs 10
c 0
b 0
f 0
wmc 4

1 Method

Rating   Name   Duplication   Size   Complexity  
A setData() 0 12 4
1
<?php
2
3
namespace VGirol\JsonApiFaker\Laravel\Factory;
4
5
use Illuminate\Database\Eloquent\Model;
6
use Illuminate\Support\Collection;
7
use VGirol\JsonApiFaker\Exception\JsonApiFakerException;
8
use VGirol\JsonApiFaker\Factory\RelationshipFactory as BaseFactory;
9
use VGirol\JsonApiFaker\Laravel\Contract\CollectionContract;
10
use VGirol\JsonApiFaker\Laravel\Contract\GeneratorContract;
11
use VGirol\JsonApiFaker\Laravel\Contract\ResourceIdentifierContract;
12
13
/**
14
 * A factory for "relationship" object
15
 */
16
class RelationshipFactory extends BaseFactory
17
{
18
    /**
19
     * The factory generator
20
     *
21
     * @var GeneratorContract
22
     */
23
    protected $generator;
24
25
    /**
26
     * @param ResourceIdentifierContract|CollectionContract|Model|Collection|null $data
27
     * @param string|null                                                         $resourceType
28
     *
29
     * @return static
30
     * @throws JsonApiFakerException
31
     */
32 21
    public function setData($data, string $resourceType = null)
33
    {
34 21
        if ($data !== null) {
35 21
            if (is_a($data, Model::class)) {
36 3
                $data = $this->generator->resourceIdentifier($data, $resourceType);
37
            }
38 21
            if (is_a($data, Collection::class)) {
39 15
                $data = $this->generator->riCollection($data, $resourceType);
40
            }
41
        }
42
43 21
        return parent::setData($data);
44
    }
45
}
46