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

RoleServiceTest::serviceProvider()   B

Complexity

Conditions 1
Paths 1

Size

Total Lines 285

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 0
dl 0
loc 285
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 RoleTest 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\RoleService as APIRoleService;
12
use eZ\Publish\Core\Repository\Values\User\PolicyDraft;
13
use eZ\Publish\Core\Repository\Values\User\RoleCreateStruct;
14
use eZ\Publish\API\Repository\Values\User\RoleUpdateStruct;
15
use eZ\Publish\Core\Repository\Values\User\PolicyCreateStruct;
16
use eZ\Publish\Core\Repository\Values\User\PolicyUpdateStruct;
17
use eZ\Publish\Core\Repository\Values\User\Role;
18
use eZ\Publish\Core\Repository\Values\User\RoleDraft;
19
use eZ\Publish\Core\Repository\Values\User\Policy;
20
use eZ\Publish\API\Repository\Values\User\Limitation\SectionLimitation;
21
use eZ\Publish\Core\Repository\Values\User\UserRoleAssignment;
22
use eZ\Publish\Core\Repository\Values\User\UserGroupRoleAssignment;
23
use eZ\Publish\Core\SignalSlot\SignalDispatcher;
24
use eZ\Publish\Core\SignalSlot\RoleService;
25
use eZ\Publish\SPI\Limitation\Type as LimitationType;
26
use eZ\Publish\Core\SignalSlot\Signal\RoleService as RoleServiceSignals;
27
28
class RoleServiceTest extends ServiceTest
29
{
30
    protected function getServiceMock()
31
    {
32
        return $this->createMock(APIRoleService::class);
33
    }
34
35
    protected function getSignalSlotService($coreService, SignalDispatcher $dispatcher)
36
    {
37
        return new RoleService($coreService, $dispatcher);
38
    }
39
40
    public function serviceProvider()
41
    {
42
        $roleId = 3;
43
        $roleIdentifier = 'role_identifier';
44
        $policyId = 42;
45
        $userId = 14;
46
        $userGroupId = 25;
47
48
        $role = new Role(
49
            array(
50
                'id' => $roleId,
51
                'identifier' => $roleIdentifier,
52
            )
53
        );
54
        $roleDraft = new RoleDraft(['innerRole' => $role]);
55
        $policy = new Policy(
56
            array(
57
                'id' => $policyId,
58
                'roleId' => $roleId,
59
            )
60
        );
61
        $policyDraft = new PolicyDraft(['innerPolicy' => $policy]);
62
        $roleCreateStruct = new RoleCreateStruct();
63
        $roleUpdateStruct = new RoleUpdateStruct();
64
        $policyCreateStruct = new PolicyCreateStruct();
65
        $policyUpdateStruct = new PolicyUpdateStruct();
66
67
        $userGroup = $this->getUserGroup($userGroupId, md5('user group'), 3);
68
        $roleLimitation = new SectionLimitation();
69
70
        $user = $this->getUser($userId, md5('user'), 4);
71
        $roleAssignement = new UserRoleAssignment(
72
            array(
73
                'user' => $user,
74
                'role' => $role,
75
            )
76
        );
77
        $userGroupRoleAssignement = new UserGroupRoleAssignment(
78
            array(
79
                'userGroup' => $userGroup,
80
                'role' => $role,
81
            )
82
        );
83
84
        return array(
85
            array(
86
                'createRole',
87
                array($roleCreateStruct),
88
                $role,
89
                1,
90
                RoleServiceSignals\CreateRoleSignal::class,
91
                array('roleId' => $roleId),
92
            ),
93
            array(
94
                'createRoleDraft',
95
                array($role),
96
                $role,
97
                1,
98
                RoleServiceSignals\CreateRoleDraftSignal::class,
99
                array('roleId' => $roleId),
100
            ),
101
            array(
102
                'updateRole',
103
                array($role, $roleUpdateStruct),
104
                $role,
105
                1,
106
                RoleServiceSignals\UpdateRoleSignal::class,
107
                array('roleId' => $roleId),
108
            ),
109
            array(
110
                'updateRoleDraft',
111
                array($roleDraft, $roleUpdateStruct),
112
                $roleDraft,
113
                1,
114
                RoleServiceSignals\UpdateRoleDraftSignal::class,
115
                array('roleId' => $roleId),
116
            ),
117
            array(
118
                'publishRoleDraft',
119
                array($roleDraft),
120
                $roleDraft,
121
                1,
122
                RoleServiceSignals\PublishRoleDraftSignal::class,
123
                array('roleId' => $roleId),
124
            ),
125
            array(
126
                'addPolicy',
127
                array($role, $policyCreateStruct),
128
                $role,
129
                1,
130
                RoleServiceSignals\AddPolicySignal::class,
131
                array(
132
                    'roleId' => $roleId,
133
                    'policyId' => $roleId,
134
                ),
135
            ),
136
            array(
137
                'addPolicyByRoleDraft',
138
                array($roleDraft, $policyCreateStruct),
139
                $roleDraft,
140
                1,
141
                RoleServiceSignals\AddPolicyByRoleDraftSignal::class,
142
                array(
143
                    'roleId' => $roleId,
144
                    'policyId' => $roleId,
145
                ),
146
            ),
147
            array(
148
                'removePolicyByRoleDraft',
149
                array($roleDraft, $policyDraft),
150
                $roleDraft,
151
                1,
152
                RoleServiceSignals\RemovePolicyByRoleDraftSignal::class,
153
                array(
154
                    'roleId' => $roleId,
155
                    'policyId' => $policyId,
156
                ),
157
            ),
158
            array(
159
                'deletePolicy',
160
                array($policy),
161
                null,
162
                1,
163
                RoleServiceSignals\RemovePolicySignal::class,
164
                array(
165
                    'roleId' => $roleId,
166
                    'policyId' => $policyId,
167
                ),
168
            ),
169
            array(
170
                'updatePolicy',
171
                array($policy, $policyUpdateStruct),
172
                $policy,
173
                1,
174
                RoleServiceSignals\UpdatePolicySignal::class,
175
                array('policyId' => $policyId),
176
            ),
177
            array(
178
                'loadRole',
179
                array($roleId),
180
                $role,
181
                0,
182
            ),
183
            array(
184
                'loadRoleDraft',
185
                array($roleId),
186
                $roleDraft,
187
                0,
188
            ),
189
            array(
190
                'loadRoleByIdentifier',
191
                array($roleIdentifier),
192
                $role,
193
                0,
194
            ),
195
            array(
196
                'loadRoles',
197
                array(),
198
                array($role),
199
                0,
200
            ),
201
            array(
202
                'deleteRole',
203
                array($role),
204
                null,
205
                1,
206
                RoleServiceSignals\DeleteRoleSignal::class,
207
                array('roleId' => $roleId),
208
            ),
209
            array(
210
                'deleteRoleDraft',
211
                array($roleDraft),
212
                null,
213
                1,
214
                RoleServiceSignals\DeleteRoleDraftSignal::class,
215
                array('roleId' => $roleId),
216
            ),
217
            array(
218
                'loadPoliciesByUserId',
219
                array($userId),
220
                array($policy),
221
                0,
222
            ),
223
            array(
224
                'assignRoleToUserGroup',
225
                array($role, $userGroup, $roleLimitation),
226
                null,
227
                1,
228
                RoleServiceSignals\AssignRoleToUserGroupSignal::class,
229
                array(
230
                    'roleId' => $roleId,
231
                    'userGroupId' => $userGroupId,
232
                    'roleLimitation' => $roleLimitation,
233
                ),
234
            ),
235
            array(
236
                'unassignRoleFromUserGroup',
237
                array($role, $userGroup),
238
                null,
239
                1,
240
                RoleServiceSignals\UnassignRoleFromUserGroupSignal::class,
241
                array(
242
                    'roleId' => $roleId,
243
                    'userGroupId' => $userGroupId,
244
                ),
245
            ),
246
            array(
247
                'assignRoleToUser',
248
                array($role, $user, $roleLimitation),
249
                null,
250
                1,
251
                RoleServiceSignals\AssignRoleToUserSignal::class,
252
                array(
253
                    'roleId' => $roleId,
254
                    'userId' => $userId,
255
                    'roleLimitation' => $roleLimitation,
256
                ),
257
            ),
258
            array(
259
                'unassignRoleFromUser',
260
                array($role, $user),
261
                null,
262
                1,
263
                RoleServiceSignals\UnassignRoleFromUserSignal::class,
264
                array(
265
                    'roleId' => $roleId,
266
                    'userId' => $userId,
267
                ),
268
            ),
269
            array(
270
                'getRoleAssignments',
271
                array($role),
272
                array($roleAssignement),
273
                0,
274
            ),
275
            array(
276
                'getRoleAssignmentsForUser',
277
                array($user, true),
278
                array($roleAssignement),
279
                0,
280
            ),
281
            array(
282
                'getRoleAssignmentsForUserGroup',
283
                array($userGroup),
284
                array($userGroupRoleAssignement),
285
                0,
286
            ),
287
            array(
288
                'newRoleCreateStruct',
289
                array('new role name'),
290
                $roleCreateStruct,
291
                0,
292
            ),
293
            array(
294
                'newPolicyCreateStruct',
295
                array('section', 'view'),
296
                $policyCreateStruct,
297
                0,
298
            ),
299
            array(
300
                'newPolicyUpdateStruct',
301
                array(),
302
                $policyUpdateStruct,
303
                0,
304
            ),
305
            array(
306
                'newRoleUpdateStruct',
307
                array(),
308
                $roleUpdateStruct,
309
                0,
310
            ),
311
            array(
312
                'getLimitationType',
313
                array('identifier'),
314
                $this->createMock(LimitationType::class),
315
                0,
316
            ),
317
            array(
318
                'getLimitationTypesByModuleFunction',
319
                array('module', 'function'),
320
                array($this->createMock(LimitationType::class)),
321
                0,
322
            ),
323
        );
324
    }
325
}
326