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.
@@ 2915-2968 (lines=54) @@
2912
     * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testCreateRoleDraft
2913
     * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testAddPolicyByRoleDraft
2914
     */
2915
    public function testPublishRoleDraftAddPolicies()
2916
    {
2917
        $repository = $this->getRepository();
2918
2919
        /* BEGIN: Use Case */
2920
        $roleService = $repository->getRoleService();
2921
        $roleCreate = $roleService->newRoleCreateStruct('newRole');
2922
2923
        // @todo uncomment when support for multilingual names and descriptions is added EZP-24776
2924
        // $roleCreate->mainLanguageCode = 'eng-US';
2925
2926
        $roleDraft = $roleService->createRole($roleCreate);
2927
2928
        $roleDraft = $roleService->addPolicyByRoleDraft(
2929
            $roleDraft,
2930
            $roleService->newPolicyCreateStruct('content', 'delete')
2931
        );
2932
        $roleDraft = $roleService->addPolicyByRoleDraft(
2933
            $roleDraft,
2934
            $roleService->newPolicyCreateStruct('content', 'create')
2935
        );
2936
2937
        $roleService->publishRoleDraft($roleDraft);
2938
        $role = $roleService->loadRoleByIdentifier($roleCreate->identifier);
2939
        /* END: Use Case */
2940
2941
        $actual = array();
2942
        foreach ($role->getPolicies() as $policy) {
2943
            $actual[] = array(
2944
                'module' => $policy->module,
2945
                'function' => $policy->function,
2946
            );
2947
        }
2948
        usort(
2949
            $actual,
2950
            function ($p1, $p2) {
2951
                return strcasecmp($p1['function'], $p2['function']);
2952
            }
2953
        );
2954
2955
        $this->assertEquals(
2956
            array(
2957
                array(
2958
                    'module' => 'content',
2959
                    'function' => 'create',
2960
                ),
2961
                array(
2962
                    'module' => 'content',
2963
                    'function' => 'delete',
2964
                ),
2965
            ),
2966
            $actual
2967
        );
2968
    }
2969
2970
    /**
2971
     * Create a user group fixture in a variable named <b>$userGroup</b>,.