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.
@@ 2960-3013 (lines=54) @@
2957
     * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testCreateRoleDraft
2958
     * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testAddPolicyByRoleDraft
2959
     */
2960
    public function testPublishRoleDraftAddPolicies()
2961
    {
2962
        $repository = $this->getRepository();
2963
2964
        /* BEGIN: Use Case */
2965
        $roleService = $repository->getRoleService();
2966
        $roleCreate = $roleService->newRoleCreateStruct('newRole');
2967
2968
        // @todo uncomment when support for multilingual names and descriptions is added EZP-24776
2969
        // $roleCreate->mainLanguageCode = 'eng-US';
2970
2971
        $roleDraft = $roleService->createRole($roleCreate);
2972
2973
        $roleDraft = $roleService->addPolicyByRoleDraft(
2974
            $roleDraft,
2975
            $roleService->newPolicyCreateStruct('content', 'delete')
2976
        );
2977
        $roleDraft = $roleService->addPolicyByRoleDraft(
2978
            $roleDraft,
2979
            $roleService->newPolicyCreateStruct('content', 'create')
2980
        );
2981
2982
        $roleService->publishRoleDraft($roleDraft);
2983
        $role = $roleService->loadRoleByIdentifier($roleCreate->identifier);
2984
        /* END: Use Case */
2985
2986
        $actual = array();
2987
        foreach ($role->getPolicies() as $policy) {
2988
            $actual[] = array(
2989
                'module' => $policy->module,
2990
                'function' => $policy->function,
2991
            );
2992
        }
2993
        usort(
2994
            $actual,
2995
            function ($p1, $p2) {
2996
                return strcasecmp($p1['function'], $p2['function']);
2997
            }
2998
        );
2999
3000
        $this->assertEquals(
3001
            array(
3002
                array(
3003
                    'module' => 'content',
3004
                    'function' => 'create',
3005
                ),
3006
                array(
3007
                    'module' => 'content',
3008
                    'function' => 'delete',
3009
                ),
3010
            ),
3011
            $actual
3012
        );
3013
    }
3014
3015
    /**
3016
     * Create a user group fixture in a variable named <b>$userGroup</b>,.