Code Duplication    Length = 54-54 lines in 2 locations

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

@@ 950-1003 (lines=54) @@
947
     * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testLoadRoleByIdentifier
948
     * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testNewPolicyCreateStruct
949
     */
950
    public function testAddPolicy()
951
    {
952
        $repository = $this->getRepository();
953
954
        /* BEGIN: Use Case */
955
        $roleService = $repository->getRoleService();
956
957
        $roleCreate = $roleService->newRoleCreateStruct('newRole');
958
959
        // @todo uncomment when support for multilingual names and descriptions is added EZP-24776
960
        // $roleCreate->mainLanguageCode = 'eng-US';
961
962
        $roleDraft = $roleService->createRole($roleCreate);
963
        $roleService->addPolicyByRoleDraft(
964
            $roleDraft,
965
            $roleService->newPolicyCreateStruct('content', 'delete')
966
        );
967
        $roleService->publishRoleDraft($roleDraft);
968
        $role = $roleService->loadRole($roleDraft->id);
969
970
        $role = $roleService->addPolicy(
971
            $role,
972
            $roleService->newPolicyCreateStruct('content', 'create')
973
        );
974
        /* END: Use Case */
975
976
        $actual = array();
977
        foreach ($role->getPolicies() as $policy) {
978
            $actual[] = array(
979
                'module' => $policy->module,
980
                'function' => $policy->function,
981
            );
982
        }
983
        usort(
984
            $actual,
985
            function ($p1, $p2) {
986
                return strcasecmp($p1['function'], $p2['function']);
987
            }
988
        );
989
990
        $this->assertEquals(
991
            array(
992
                array(
993
                    'module' => 'content',
994
                    'function' => 'create',
995
                ),
996
                array(
997
                    'module' => 'content',
998
                    'function' => 'delete',
999
                ),
1000
            ),
1001
            $actual
1002
        );
1003
    }
1004
1005
    /**
1006
     * Test for the addPolicyByRoleDraft() method.
@@ 2901-2954 (lines=54) @@
2898
     * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testCreateRoleDraft
2899
     * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testAddPolicyByRoleDraft
2900
     */
2901
    public function testPublishRoleDraftAddPolicies()
2902
    {
2903
        $repository = $this->getRepository();
2904
2905
        /* BEGIN: Use Case */
2906
        $roleService = $repository->getRoleService();
2907
        $roleCreate = $roleService->newRoleCreateStruct('newRole');
2908
2909
        // @todo uncomment when support for multilingual names and descriptions is added EZP-24776
2910
        // $roleCreate->mainLanguageCode = 'eng-US';
2911
2912
        $roleDraft = $roleService->createRole($roleCreate);
2913
2914
        $roleDraft = $roleService->addPolicyByRoleDraft(
2915
            $roleDraft,
2916
            $roleService->newPolicyCreateStruct('content', 'delete')
2917
        );
2918
        $roleDraft = $roleService->addPolicyByRoleDraft(
2919
            $roleDraft,
2920
            $roleService->newPolicyCreateStruct('content', 'create')
2921
        );
2922
2923
        $roleService->publishRoleDraft($roleDraft);
2924
        $role = $roleService->loadRoleByIdentifier($roleCreate->identifier);
2925
        /* END: Use Case */
2926
2927
        $actual = array();
2928
        foreach ($role->getPolicies() as $policy) {
2929
            $actual[] = array(
2930
                'module' => $policy->module,
2931
                'function' => $policy->function,
2932
            );
2933
        }
2934
        usort(
2935
            $actual,
2936
            function ($p1, $p2) {
2937
                return strcasecmp($p1['function'], $p2['function']);
2938
            }
2939
        );
2940
2941
        $this->assertEquals(
2942
            array(
2943
                array(
2944
                    'module' => 'content',
2945
                    'function' => 'create',
2946
                ),
2947
                array(
2948
                    'module' => 'content',
2949
                    'function' => 'delete',
2950
                ),
2951
            ),
2952
            $actual
2953
        );
2954
    }
2955
2956
    /**
2957
     * Create a user group fixture in a variable named <b>$userGroup</b>,.