Completed
Push — ezp-30616 ( 9239a0...7bf8e8 )
by
unknown
57:53 queued 37:56
created

UserServiceTest::serviceProvider()   B

Complexity

Conditions 1
Paths 1

Size

Total Lines 281

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 0
dl 0
loc 281
rs 8
c 0
b 0
f 0

How to fix   Long Method   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
<?php
2
3
/**
4
 * File containing the UserTest class.
5
 *
6
 * @copyright Copyright (C) eZ Systems AS. All rights reserved.
7
 * @license For full copyright and license information view LICENSE file distributed with this source code.
8
 */
9
namespace eZ\Publish\Core\SignalSlot\Tests;
10
11
use eZ\Publish\API\Repository\UserService as APIUserService;
12
use eZ\Publish\API\Repository\Values\User\PasswordValidationContext;
13
use eZ\Publish\Core\Repository\Values\User\UserGroupCreateStruct;
14
use eZ\Publish\API\Repository\Values\User\UserGroupUpdateStruct;
15
use eZ\Publish\Core\Repository\Values\User\UserCreateStruct;
16
use eZ\Publish\API\Repository\Values\User\UserUpdateStruct;
17
use eZ\Publish\Core\Repository\Values\ContentType\ContentType;
18
use eZ\Publish\Core\SignalSlot\SignalDispatcher;
19
use eZ\Publish\Core\SignalSlot\UserService;
20
use eZ\Publish\Core\SignalSlot\Signal\UserService as UserServiceSignals;
21
22
class UserServiceTest extends ServiceTest
23
{
24
    protected function getServiceMock()
25
    {
26
        return $this->createMock(APIUserService::class);
27
    }
28
29
    protected function getSignalSlotService($coreService, SignalDispatcher $dispatcher)
30
    {
31
        return new UserService($coreService, $dispatcher);
32
    }
33
34
    public function serviceProvider()
35
    {
36
        $userGroupId = 12;
37
        $parentGroup2Id = 13;
38
        $userId = 14;
39
40
        $parentGroup = $this->getUserGroup(11, md5('parent'), 1);
41
        $userGroup = $this->getUserGroup($userGroupId, md5('user group'), 2);
42
        $parentGroup2 = $this->getUserGroup($parentGroup2Id, md5('parent2'), 1);
43
44
        $user = $this->getUser($userId, md5("I'm the boss"), 4);
45
        $anonymous = $this->getUser(10, md5('invisible man'), 1);
0 ignored issues
show
Unused Code introduced by
$anonymous is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
46
        $login = 'bugsbunny';
47
        $password = "what's up doc?";
48
        $email = '[email protected]';
49
        $mainLanguageCode = 'eng-US';
50
        $contentType = new ContentType(
51
            array(
52
                'id' => 42,
53
                'identifier' => 'rabbit',
54
                'fieldDefinitions' => array(),
55
            )
56
        );
57
        $groupContentType = new ContentType(
58
            array(
59
                'id' => 43,
60
                'identifier' => 'characters',
61
                'fieldDefinitions' => array(),
62
            )
63
        );
64
65
        $userCreateStruct = new UserCreateStruct(
66
            array(
67
                'contentType' => $contentType,
68
                'mainLanguageCode' => $mainLanguageCode,
69
                'login' => $login,
70
                'password' => $password,
71
                'enabled' => true,
72
                'fields' => array(),
73
            )
74
        );
75
        $userUpdateStruct = new UserUpdateStruct();
76
        $userGroupCreateStruct = new UserGroupCreateStruct(
77
            array(
78
                'mainLanguageCode' => $mainLanguageCode,
79
                'contentType' => $contentType,
80
            )
81
        );
82
        $userGroupUpdateStruct = new UserGroupUpdateStruct();
83
        $passwordValidationContext = new PasswordValidationContext();
84
85
        return array(
86
            array(
87
                'createUserGroup',
88
                array($userGroupCreateStruct, $parentGroup),
89
                $userGroup,
90
                1,
91
                UserServiceSignals\CreateUserGroupSignal::class,
92
                array('userGroupId' => $userGroupId),
93
            ),
94
            array(
95
                'loadUserGroup',
96
                array($userGroupId, array()),
97
                $userGroup,
98
                0,
99
            ),
100
            array(
101
                'loadUserGroup',
102
                array($userGroupId, array('eng-GB', 'eng-US')),
103
                $userGroup,
104
                0,
105
            ),
106
            array(
107
                'loadSubUserGroups',
108
                array($parentGroup, 1, 1, array()),
109
                array($userGroup),
110
                0,
111
            ),
112
            array(
113
                'loadSubUserGroups',
114
                array($parentGroup, 1, 1, array('eng-GB', 'eng-US')),
115
                array($userGroup),
116
                0,
117
            ),
118
            array(
119
                'deleteUserGroup',
120
                array($userGroup),
121
                null,
122
                1,
123
                UserServiceSignals\DeleteUserGroupSignal::class,
124
                array('userGroupId' => $userGroupId),
125
            ),
126
            array(
127
                'moveUserGroup',
128
                array($userGroup, $parentGroup2),
129
                null,
130
                1,
131
                UserServiceSignals\MoveUserGroupSignal::class,
132
                array(
133
                    'userGroupId' => $userGroupId,
134
                    'newParentId' => $parentGroup2Id,
135
                ),
136
            ),
137
            array(
138
                'updateUserGroup',
139
                array($userGroup, $userGroupUpdateStruct),
140
                $userGroup,
141
                1,
142
                UserServiceSignals\UpdateUserGroupSignal::class,
143
                array('userGroupId' => $userGroupId),
144
            ),
145
            array(
146
                'createUser',
147
                array($userCreateStruct, array($userGroup)),
148
                $user,
149
                1,
150
                UserServiceSignals\CreateUserSignal::class,
151
                array('userId' => $userId),
152
            ),
153
            array(
154
                'loadUser',
155
                array($userId, array()),
156
                $user,
157
                0,
158
            ),
159
            array(
160
                'loadUser',
161
                array($userId, array('eng-GB', 'eng-US')),
162
                $user,
163
                0,
164
            ),
165
            array(
166
                'loadAnonymousUser',
167
                array(),
168
                $user,
169
                0,
170
            ),
171
            array(
172
                'loadUserByCredentials',
173
                array('admin', 'with great power comes great responsibility', array()),
174
                $user,
175
                0,
176
            ),
177
            array(
178
                'loadUserByCredentials',
179
                array('admin', 'with great power comes great responsibility', array('eng-GB', 'eng-US')),
180
                $user,
181
                0,
182
            ),
183
            array(
184
                'loadUserByLogin',
185
                array('admin', array()),
186
                $user,
187
                0,
188
            ),
189
            array(
190
                'loadUserByLogin',
191
                array('admin', array('eng-GB', 'eng-US')),
192
                $user,
193
                0,
194
            ),
195
            array(
196
                'loadUsersByEmail',
197
                array('[email protected]', array()),
198
                array($user),
199
                0,
200
            ),
201
            array(
202
                'loadUsersByEmail',
203
                array('[email protected]', array('eng-GB', 'eng-US')),
204
                array($user),
205
                0,
206
            ),
207
            array(
208
                'deleteUser',
209
                array($user),
210
                null,
211
                1,
212
                UserServiceSignals\DeleteUserSignal::class,
213
                array('userId' => $userId),
214
            ),
215
            array(
216
                'updateUser',
217
                array($user, $userUpdateStruct),
218
                null,
219
                1,
220
                UserServiceSignals\UpdateUserSignal::class,
221
                array('userId' => $userId),
222
            ),
223
            array(
224
                'assignUserToUserGroup',
225
                array($user, $parentGroup2),
226
                null,
227
                1,
228
                UserServiceSignals\AssignUserToUserGroupSignal::class,
229
                array(
230
                    'userId' => $userId,
231
                    'userGroupId' => $parentGroup2Id,
232
                ),
233
            ),
234
            array(
235
                'unassignUserFromUserGroup',
236
                array($user, $parentGroup2),
237
                null,
238
                1,
239
                UserServiceSignals\UnAssignUserFromUserGroupSignal::class,
240
                array(
241
                    'userId' => $userId,
242
                    'userGroupId' => $parentGroup2Id,
243
                ),
244
            ),
245
            array(
246
                'loadUserGroupsOfUser',
247
                array($user, 1, 1, array()),
248
                array($userGroup),
249
                0,
250
            ),
251
            array(
252
                'loadUserGroupsOfUser',
253
                array($user, 1, 1, array('eng-GB', 'eng-US')),
254
                array($userGroup),
255
                0,
256
            ),
257
            array(
258
                'loadUsersOfUserGroup',
259
                array($userGroup, 1, 1, array()),
260
                array($user),
261
                0,
262
            ),
263
            array(
264
                'loadUsersOfUserGroup',
265
                array($userGroup, 1, 1, array('eng-GB', 'eng-US')),
266
                array($user),
267
                0,
268
            ),
269
            array(
270
                'isUser',
271
                array($userGroup),
272
                false,
273
                0,
274
            ),
275
            array(
276
                'isUserGroup',
277
                array($userGroup),
278
                true,
279
                0,
280
            ),
281
            array(
282
                'newUserCreateStruct',
283
                array(
284
                    $login, $email, $password, $mainLanguageCode, $contentType,
285
                ),
286
                $userCreateStruct,
287
                0,
288
            ),
289
            array(
290
                'newUserGroupCreateStruct',
291
                array($mainLanguageCode, $groupContentType),
292
                $userGroupCreateStruct,
293
                0,
294
            ),
295
            array(
296
                'newUserUpdateStruct',
297
                array(),
298
                $userUpdateStruct,
299
                0,
300
            ),
301
            array(
302
                'newUserGroupUpdateStruct',
303
                array(),
304
                $userGroupUpdateStruct,
305
                0,
306
            ),
307
            array(
308
                'validatePassword',
309
                array($password, $passwordValidationContext),
310
                array(),
311
                0,
312
            ),
313
        );
314
    }
315
}
316