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 = array();
1035
        foreach ($role->getPolicies() as $policy) {
1036
            $actual[] = array(
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
            array(
1050
                array(
1051
                    'module' => 'content',
1052
                    'function' => 'create',
1053
                ),
1054
                array(
1055
                    'module' => 'content',
1056
                    'function' => 'delete',
1057
                ),
1058
            ),
1059
            $actual
1060
        );
1061
    }
1062
1063
    /**
1064
     * Test for the addPolicyByRoleDraft() method.
@@ 2926-2979 (lines=54) @@
2923
     * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testCreateRoleDraft
2924
     * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testAddPolicyByRoleDraft
2925
     */
2926
    public function testPublishRoleDraftAddPolicies()
2927
    {
2928
        $repository = $this->getRepository();
2929
2930
        /* BEGIN: Use Case */
2931
        $roleService = $repository->getRoleService();
2932
        $roleCreate = $roleService->newRoleCreateStruct('newRole');
2933
2934
        // @todo uncomment when support for multilingual names and descriptions is added EZP-24776
2935
        // $roleCreate->mainLanguageCode = 'eng-US';
2936
2937
        $roleDraft = $roleService->createRole($roleCreate);
2938
2939
        $roleDraft = $roleService->addPolicyByRoleDraft(
2940
            $roleDraft,
2941
            $roleService->newPolicyCreateStruct('content', 'delete')
2942
        );
2943
        $roleDraft = $roleService->addPolicyByRoleDraft(
2944
            $roleDraft,
2945
            $roleService->newPolicyCreateStruct('content', 'create')
2946
        );
2947
2948
        $roleService->publishRoleDraft($roleDraft);
2949
        $role = $roleService->loadRoleByIdentifier($roleCreate->identifier);
2950
        /* END: Use Case */
2951
2952
        $actual = array();
2953
        foreach ($role->getPolicies() as $policy) {
2954
            $actual[] = array(
2955
                'module' => $policy->module,
2956
                'function' => $policy->function,
2957
            );
2958
        }
2959
        usort(
2960
            $actual,
2961
            function ($p1, $p2) {
2962
                return strcasecmp($p1['function'], $p2['function']);
2963
            }
2964
        );
2965
2966
        $this->assertEquals(
2967
            array(
2968
                array(
2969
                    'module' => 'content',
2970
                    'function' => 'create',
2971
                ),
2972
                array(
2973
                    'module' => 'content',
2974
                    'function' => 'delete',
2975
                ),
2976
            ),
2977
            $actual
2978
        );
2979
    }
2980
2981
    /**
2982
     * Create a user group fixture in a variable named <b>$userGroup</b>,.