Completed
Push — master ( c7652d...e90b5e )
by
unknown
02:21 queued 10s
created

BaseTester::checkNestedPackageProperties()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 8
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
1
<?php
2
3
use Orchestra\Testbench\TestCase;
4
use Syntax\SteamApi\Client;
5
6
class BaseTester extends TestCase {
0 ignored issues
show
Bug introduced by
There is at least one abstract method in this class. Maybe declare it as abstract, or implement the remaining methods: artisan, be, call, seed
Loading history...
7
8
    protected $id32      = 'STEAM_1:1:31085444';
9
10
    protected $id64      = 76561198022436617;
11
12
    protected $id3       = '[U:1:62170889]';
13
14
    protected $altId64   = 76561197979958413;
15
16
    protected $appId     = 620;
17
18
    protected $packageId = 32848;
19
20
    protected $itemid = 440;
21
22
    protected $groupId   = 103582791429521412;
23
24
    protected $groupName = 'Valve';
25
26
    protected $steamClient;
27
28
    protected function setUp(): void
29
    {
30
        parent::setUp();
31
        $this->steamClient = new Client();
32
    }
33
34
    /** @test */
35
    public function empty_test()
36
    {
37
        $this->assertTrue(true);
38
    }
39
40
    protected function assertObjectHasAttributes($attributes, $object)
41
    {
42
        foreach ($attributes as $attribute) {
43
            $this->assertObjectHasAttribute($attribute, $object);
44
        }
45
    }
46
47
    protected function checkSteamIdsProperties($steamId)
48
    {
49
        $attributes = [
50
            'id32', 'id64', 'id3', 'communityId', 'steamId'
51
        ];
52
        $this->assertObjectHasAttributes($attributes, $steamId);
53
    }
54
55
    protected function checkPlayerProperties($friendsList)
56
    {
57
        $attributes = [
58
            'steamId', 'steamIds', 'communityVisibilityState', 'profileState', 'lastLogoff', 'profileUrl', 'realName', 'primaryClanId', 'timecreated'
59
        ];
60
        $this->assertObjectHasAttributes($attributes, $friendsList[0]);
61
62
        $attributes = [
63
            'avatar', 'avatarMedium', 'avatarFull', 'avatarUrl', 'avatarMediumUrl', 'avatarFullUrl',
64
        ];
65
        $this->assertObjectHasAttributes($attributes, $friendsList[0]);
66
67
        $attributes = [
68
            'personaName', 'personaState', 'personaStateId', 'personaStateFlags'
69
        ];
70
        $this->assertObjectHasAttributes($attributes, $friendsList[0]);
71
72
        $attributes = [
73
            'locCountryCode', 'locStateCode', 'locCityId', 'location'
74
        ];
75
        $this->assertObjectHasAttributes($attributes, $friendsList[0]);
76
77
        $this->checkSteamIdsProperties($friendsList[0]->steamIds);
78
    }
79
80
    protected function checkAchievementProperties($achievement)
81
    {
82
        $attributes = [
83
            'apiName', 'achieved', 'name', 'description'
84
        ];
85
        $this->assertObjectHasAttributes($attributes, $achievement);
86
    }
87
88
    protected function checkAppProperties($app)
89
    {
90
        $this->checkMainAppProperties($app);
91
        $this->checkGeneralAppProperties($app);
92
        $this->checkNestedAppProperties($app);
93
    }
94
95
    protected function checkPackageProperties($package)
96
    {
97
        $this->checkNestedPackageProperties($package);
98
    }
99
100
    protected function checkGroupProperties($group)
101
    {
102
        $this->checkGroupMainSummaryProperties($group);
103
        $this->checkGroupDetailProperties($group);
104
        $this->checkGroupMemberDetailsProperties($group);
105
        $this->checkGroupMemberProperties($group);
106
    }
107
108
    /**
109
     * @param $app
110
     */
111
    private function checkMainAppProperties($app)
112
    {
113
        $attributes = [
114
            'id', 'type', 'name', 'controllerSupport', 'description', 'about', 'fullgame', 'header', 'website', 'shortDescription'
115
        ];
116
        $this->assertObjectHasAttributes($attributes, $app);
117
    }
118
119
    /**
120
     * @param $app
121
     */
122
    private function checkGeneralAppProperties($app)
123
    {
124
        $attributes = [
125
            'pcRequirements', 'legal', 'developers', 'publishers', 'price', 'platforms', 'metacritic', 'categories', 'genres', 'release', 'requiredAge', 'isFree', 'supportedLanguages', 'recommendations'
126
        ];
127
        $this->assertObjectHasAttributes($attributes, $app);
128
    }
129
130
    /**
131
     * @param $app
132
     */
133
    private function checkNestedAppProperties($app)
134
    {
135
        $this->assertObjectHasAttribute('minimum', $app->pcRequirements);
136
137
        $attributes = ['currency', 'initial', 'final', 'discount_percent'];
138
        $this->assertObjectHasAttributes($attributes, $app->price);
139
140
        $attributes = ['windows', 'mac', 'linux'];
141
        $this->assertObjectHasAttributes($attributes, $app->platforms);
142
143
        $attributes = ['score', 'url'];
144
        $this->assertObjectHasAttributes($attributes, $app->metacritic);
145
146
        $attributes = ['total'];
147
        $this->assertObjectHasAttributes($attributes, $app->recommendations);
148
149
        $attributes = ['total'];
150
        $this->assertObjectHasAttributes($attributes, $app->achievements);
151
    }
152
153
    /**
154
     * @param $package
155
     */
156
    private function checkNestedPackageProperties($package)
157
    {
158
        $attributes = ['currency', 'initial', 'final', 'discount_percent', 'individual'];
159
        $this->assertObjectHasAttributes($attributes, $package->price);
160
161
        $attributes = ['windows', 'mac', 'linux'];
162
        $this->assertObjectHasAttributes($attributes, $package->platforms);
163
    }
164
165
    /**
166
     * @param $item
167
     */
168
    private function checkItemProperties($item)
169
    {
170
        $attributes = ['id', 'originalId', 'level', 'quality', 'quantity'];
171
        $this->assertObjectHasAttributes($attributes, $item->item);
172
    }
173
174
    /**
175
     * @param $group
176
     */
177
    private function checkGroupMainSummaryProperties($group)
178
    {
179
        $this->assertObjectHasAttribute('groupID64', $group);
180
        $this->assertObjectHasAttribute('groupDetails', $group);
181
        $this->assertObjectHasAttribute('memberDetails', $group);
182
        $this->assertObjectHasAttribute('startingMember', $group);
183
        $this->assertObjectHasAttribute('members', $group);
184
    }
185
186
    /**
187
     * @param $group
188
     */
189
    private function checkGroupDetailProperties($group)
190
    {
191
        $this->assertObjectHasAttribute('name', $group->groupDetails);
192
        $this->assertObjectHasAttribute('url', $group->groupDetails);
193
        $this->assertObjectHasAttribute('headline', $group->groupDetails);
194
        $this->assertObjectHasAttribute('summary', $group->groupDetails);
195
        $this->assertObjectHasAttribute('avatarIcon', $group->groupDetails);
196
        $this->assertObjectHasAttribute('avatarMedium', $group->groupDetails);
197
        $this->assertObjectHasAttribute('avatarFull', $group->groupDetails);
198
        $this->assertObjectHasAttribute('avatarIconUrl', $group->groupDetails);
199
        $this->assertObjectHasAttribute('avatarMediumUrl', $group->groupDetails);
200
        $this->assertObjectHasAttribute('avatarFullUrl', $group->groupDetails);
201
    }
202
203
    /**
204
     * @param $group
205
     */
206
    private function checkGroupMemberDetailsProperties($group)
207
    {
208
        $this->assertObjectHasAttribute('count', $group->memberDetails);
209
        $this->assertObjectHasAttribute('inChat', $group->memberDetails);
210
        $this->assertObjectHasAttribute('inGame', $group->memberDetails);
211
        $this->assertObjectHasAttribute('online', $group->memberDetails);
212
    }
213
214
    /**
215
     * @param $group
216
     */
217
    private function checkGroupMemberProperties($group)
218
    {
219
        $startingMember = $group->members->get($group->startingMember);
220
221
        $this->assertObjectHasAttribute('id32', $startingMember);
222
        $this->assertObjectHasAttribute('id64', $startingMember);
223
        $this->assertObjectHasAttribute('id3', $startingMember);
224
    }
225
226
}