Code Duplication    Length = 32-34 lines in 3 locations

eZ/Publish/API/Repository/Tests/RoleServiceTest.php 3 locations

@@ 395-428 (lines=34) @@
392
     *
393
     * @see \eZ\Publish\API\Repository\RoleService::createRole()
394
     */
395
    public function testCreateRoleThrowsLimitationValidationException()
396
    {
397
        $this->expectException(\eZ\Publish\API\Repository\Exceptions\LimitationValidationException::class);
398
399
        $repository = $this->getRepository();
400
401
        /* BEGIN: Use Case */
402
        $roleService = $repository->getRoleService();
403
404
        // Create new role create struct
405
        $roleCreate = $roleService->newRoleCreateStruct('Lumberjack');
406
407
        // @todo uncomment when support for multilingual names and descriptions is added EZP-24776
408
        // $roleCreate->mainLanguageCode = 'eng-US';
409
410
        // Create new subtree limitation
411
        $limitation = new SubtreeLimitation(
412
            [
413
                'limitationValues' => ['/mountain/forest/tree/42/'],
414
            ]
415
        );
416
417
        // Create policy create struct and add limitation to it
418
        $policyCreate = $roleService->newPolicyCreateStruct('content', 'remove');
419
        $policyCreate->addLimitation($limitation);
420
421
        // Add policy create struct to role create struct
422
        $roleCreate->addPolicy($policyCreate);
423
424
        // This call will fail with an LimitationValidationException, because subtree
425
        // "/mountain/forest/tree/42/" does not exist
426
        $roleService->createRole($roleCreate);
427
        /* END: Use Case */
428
    }
429
430
    /**
431
     * Test for the createRole() method.
@@ 1066-1097 (lines=32) @@
1063
     * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testNewPolicyCreateStruct
1064
     * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testCreateRoleDraft
1065
     */
1066
    public function testAddPolicyByRoleDraftThrowsLimitationValidationException()
1067
    {
1068
        $this->expectException(\eZ\Publish\API\Repository\Exceptions\LimitationValidationException::class);
1069
1070
        $repository = $this->getRepository();
1071
1072
        /* BEGIN: Use Case */
1073
        $roleService = $repository->getRoleService();
1074
1075
        $roleCreate = $roleService->newRoleCreateStruct('Lumberjack');
1076
1077
        // @todo uncomment when support for multilingual names and descriptions is added EZP-24776
1078
        // $roleCreate->mainLanguageCode = 'eng-US';
1079
1080
        $roleDraft = $roleService->createRole($roleCreate);
1081
1082
        // Create new subtree limitation
1083
        $limitation = new SubtreeLimitation(
1084
            [
1085
                'limitationValues' => ['/mountain/forest/tree/42/'],
1086
            ]
1087
        );
1088
1089
        // Create policy create struct and add limitation to it
1090
        $policyCreateStruct = $roleService->newPolicyCreateStruct('content', 'remove');
1091
        $policyCreateStruct->addLimitation($limitation);
1092
1093
        // This call will fail with an LimitationValidationException, because subtree
1094
        // "/mountain/forest/tree/42/" does not exist
1095
        $roleService->addPolicyByRoleDraft($roleDraft, $policyCreateStruct);
1096
        /* END: Use Case */
1097
    }
1098
1099
    /**
1100
     * Test for the createRole() method.
@@ 2265-2296 (lines=32) @@
2262
     * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testLoadRoleByIdentifier
2263
     * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testAssignRoleToUserGroup
2264
     */
2265
    public function testAssignRoleToUserGroupWithRoleLimitationThrowsLimitationValidationException()
2266
    {
2267
        $this->expectException(\eZ\Publish\API\Repository\Exceptions\LimitationValidationException::class);
2268
2269
        $repository = $this->getRepository();
2270
2271
        $mainGroupId = $this->generateId('group', 4);
2272
        /* BEGIN: Use Case */
2273
        // $mainGroupId is the ID of the main "Users" group
2274
2275
        $userService = $repository->getUserService();
2276
        $roleService = $repository->getRoleService();
2277
2278
        $userGroup = $userService->loadUserGroup($mainGroupId);
2279
2280
        // Load the existing "Anonymous" role
2281
        $role = $roleService->loadRoleByIdentifier('Anonymous');
2282
2283
        // Assign the "Anonymous" role to the newly created user group
2284
        // This call will fail with an LimitationValidationException, because subtree "/lorem/ipsum/42/"
2285
        // does not exists
2286
        $roleService->assignRoleToUserGroup(
2287
            $role,
2288
            $userGroup,
2289
            new SubtreeLimitation(
2290
                [
2291
                    'limitationValues' => ['/lorem/ipsum/42/'],
2292
                ]
2293
            )
2294
        );
2295
        /* END: Use Case */
2296
    }
2297
2298
    /**
2299
     * Test for the assignRoleToUserGroup() method.