Code Duplication    Length = 54-54 lines in 2 locations

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

@@ 1008-1061 (lines=54) @@
1005
     * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testLoadRoleByIdentifier
1006
     * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testNewPolicyCreateStruct
1007
     */
1008
    public function testAddPolicy()
1009
    {
1010
        $repository = $this->getRepository();
1011
1012
        /* BEGIN: Use Case */
1013
        $roleService = $repository->getRoleService();
1014
1015
        $roleCreate = $roleService->newRoleCreateStruct('newRole');
1016
1017
        // @todo uncomment when support for multilingual names and descriptions is added EZP-24776
1018
        // $roleCreate->mainLanguageCode = 'eng-US';
1019
1020
        $roleDraft = $roleService->createRole($roleCreate);
1021
        $roleService->publishRoleDraft($roleDraft);
1022
        $role = $roleService->loadRole($roleDraft->id);
1023
1024
        $role = $roleService->addPolicy(
1025
            $role,
1026
            $roleService->newPolicyCreateStruct('content', 'delete')
1027
        );
1028
        $role = $roleService->addPolicy(
1029
            $role,
1030
            $roleService->newPolicyCreateStruct('content', 'create')
1031
        );
1032
        /* END: Use Case */
1033
1034
        $actual = [];
1035
        foreach ($role->getPolicies() as $policy) {
1036
            $actual[] = [
1037
                'module' => $policy->module,
1038
                'function' => $policy->function,
1039
            ];
1040
        }
1041
        usort(
1042
            $actual,
1043
            function ($p1, $p2) {
1044
                return strcasecmp($p1['function'], $p2['function']);
1045
            }
1046
        );
1047
1048
        $this->assertEquals(
1049
            [
1050
                [
1051
                    'module' => 'content',
1052
                    'function' => 'create',
1053
                ],
1054
                [
1055
                    'module' => 'content',
1056
                    'function' => 'delete',
1057
                ],
1058
            ],
1059
            $actual
1060
        );
1061
    }
1062
1063
    /**
1064
     * Test for the addPolicyByRoleDraft() method.
@@ 2968-3021 (lines=54) @@
2965
     * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testCreateRoleDraft
2966
     * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testAddPolicyByRoleDraft
2967
     */
2968
    public function testPublishRoleDraftAddPolicies()
2969
    {
2970
        $repository = $this->getRepository();
2971
2972
        /* BEGIN: Use Case */
2973
        $roleService = $repository->getRoleService();
2974
        $roleCreate = $roleService->newRoleCreateStruct('newRole');
2975
2976
        // @todo uncomment when support for multilingual names and descriptions is added EZP-24776
2977
        // $roleCreate->mainLanguageCode = 'eng-US';
2978
2979
        $roleDraft = $roleService->createRole($roleCreate);
2980
2981
        $roleDraft = $roleService->addPolicyByRoleDraft(
2982
            $roleDraft,
2983
            $roleService->newPolicyCreateStruct('content', 'delete')
2984
        );
2985
        $roleDraft = $roleService->addPolicyByRoleDraft(
2986
            $roleDraft,
2987
            $roleService->newPolicyCreateStruct('content', 'create')
2988
        );
2989
2990
        $roleService->publishRoleDraft($roleDraft);
2991
        $role = $roleService->loadRoleByIdentifier($roleCreate->identifier);
2992
        /* END: Use Case */
2993
2994
        $actual = [];
2995
        foreach ($role->getPolicies() as $policy) {
2996
            $actual[] = [
2997
                'module' => $policy->module,
2998
                'function' => $policy->function,
2999
            ];
3000
        }
3001
        usort(
3002
            $actual,
3003
            function ($p1, $p2) {
3004
                return strcasecmp($p1['function'], $p2['function']);
3005
            }
3006
        );
3007
3008
        $this->assertEquals(
3009
            [
3010
                [
3011
                    'module' => 'content',
3012
                    'function' => 'create',
3013
                ],
3014
                [
3015
                    'module' => 'content',
3016
                    'function' => 'delete',
3017
                ],
3018
            ],
3019
            $actual
3020
        );
3021
    }
3022
3023
    /**
3024
     * Create a user group fixture in a variable named <b>$userGroup</b>,.