Passed
Push — master ( 8c1a6c...28368a )
by Yunus Emre
03:25
created

ContactMock   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 80
Duplicated Lines 0 %

Importance

Changes 3
Bugs 0 Features 0
Metric Value
wmc 8
eloc 34
c 3
b 0
f 0
dl 0
loc 80
rs 10

8 Methods

Rating   Name   Duplication   Size   Complexity  
A update() 0 8 1
A create() 0 8 1
A all() 0 10 1
A delete() 0 8 1
A getExtraMeta() 0 7 1
A generateResponse() 0 3 1
A find() 0 13 1
A generateResponseMultiple() 0 3 1
1
<?php
2
3
namespace TarfinLabs\Parasut\Tests\Mocks;
4
5
use Faker\Factory;
6
use Illuminate\Http\Response;
7
use TarfinLabs\Parasut\Models\Contact;
8
use TarfinLabs\Parasut\Models\BaseModel;
9
10
class ContactMock extends BaseMock
11
{
12
    public static function all(int $count = 3): void
13
    {
14
        self::fakeAuthentication();
15
16
        $response = self::generateResponseMultiple();
17
18
        self::fakeHttp(
19
            'contacts',
20
            $response,
21
            Response::HTTP_OK
22
        );
23
    }
24
25
    public static function create(BaseModel $contact): void
26
    {
27
        self::fakeAuthentication();
28
29
        self::fakeHttp(
30
            'contacts',
31
            self::generateResponse($contact),
32
            Response::HTTP_OK
33
        );
34
    }
35
36
    public static function find(): int
37
    {
38
        self::fakeAuthentication();
39
40
        $response = self::generateResponse();
41
42
        self::fakeHttp(
43
            'contacts/'.$response['data']['id'],
44
            $response,
45
            Response::HTTP_OK
46
        );
47
48
        return $response['data']['id'];
49
    }
50
51
    public static function update(Contact $contact): void
52
    {
53
        self::fakeAuthentication();
54
55
        self::fakeHttp(
56
            'contacts'.'/'.$contact->id,
57
            self::generateResponse($contact),
58
            Response::HTTP_OK
59
        );
60
    }
61
62
    public static function delete(Contact $contact): void
63
    {
64
        self::fakeAuthentication();
65
66
        self::fakeHttp(
67
            'contacts'.'/'.$contact->id,
68
            [[]],
69
            Response::HTTP_OK
70
        );
71
    }
72
73
    public static function generateResponse(BaseModel $model = null): array
74
    {
75
        return self::response($model, Contact::class, 'contacts');
76
    }
77
78
    public static function generateResponseMultiple(int $count = 3): array
79
    {
80
        return self::responseMultiple($count, Contact::class, 'contacts', self::getExtraMeta());
81
    }
82
83
    public static function getExtraMeta(): array
84
    {
85
        $faker = Factory::create('tr_TR');
86
87
        return [
88
            'payable_total' => $faker->randomFloat(2, 100, 1000),
89
            'collectible_total' => $faker->randomFloat(2, 100, 1000),
90
        ];
91
    }
92
}
93