Code Duplication    Length = 54-54 lines in 2 locations

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

@@ 914-967 (lines=54) @@
911
     * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testLoadRoleByIdentifier
912
     * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testNewPolicyCreateStruct
913
     */
914
    public function testAddPolicy()
915
    {
916
        $repository = $this->getRepository();
917
918
        /* BEGIN: Use Case */
919
        $roleService = $repository->getRoleService();
920
921
        $roleCreate = $roleService->newRoleCreateStruct('newRole');
922
923
        // @todo uncomment when support for multilingual names and descriptions is added EZP-24776
924
        // $roleCreate->mainLanguageCode = 'eng-US';
925
926
        $roleDraft = $roleService->createRole($roleCreate);
927
        $roleService->publishRoleDraft($roleDraft);
928
        $role = $roleService->loadRole($roleDraft->id);
929
930
        $role = $roleService->addPolicy(
931
            $role,
932
            $roleService->newPolicyCreateStruct('content', 'delete')
933
        );
934
        $role = $roleService->addPolicy(
935
            $role,
936
            $roleService->newPolicyCreateStruct('content', 'create')
937
        );
938
        /* END: Use Case */
939
940
        $actual = array();
941
        foreach ($role->getPolicies() as $policy) {
942
            $actual[] = array(
943
                'module' => $policy->module,
944
                'function' => $policy->function,
945
            );
946
        }
947
        usort(
948
            $actual,
949
            function ($p1, $p2) {
950
                return strcasecmp($p1['function'], $p2['function']);
951
            }
952
        );
953
954
        $this->assertEquals(
955
            array(
956
                array(
957
                    'module' => 'content',
958
                    'function' => 'create',
959
                ),
960
                array(
961
                    'module' => 'content',
962
                    'function' => 'delete',
963
                ),
964
            ),
965
            $actual
966
        );
967
    }
968
969
    /**
970
     * Test for the addPolicyByRoleDraft() method.
@@ 2863-2916 (lines=54) @@
2860
     * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testCreateRoleDraft
2861
     * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testAddPolicyByRoleDraft
2862
     */
2863
    public function testPublishRoleDraftAddPolicies()
2864
    {
2865
        $repository = $this->getRepository();
2866
2867
        /* BEGIN: Use Case */
2868
        $roleService = $repository->getRoleService();
2869
        $roleCreate = $roleService->newRoleCreateStruct('newRole');
2870
2871
        // @todo uncomment when support for multilingual names and descriptions is added EZP-24776
2872
        // $roleCreate->mainLanguageCode = 'eng-US';
2873
2874
        $roleDraft = $roleService->createRole($roleCreate);
2875
2876
        $roleDraft = $roleService->addPolicyByRoleDraft(
2877
            $roleDraft,
2878
            $roleService->newPolicyCreateStruct('content', 'delete')
2879
        );
2880
        $roleDraft = $roleService->addPolicyByRoleDraft(
2881
            $roleDraft,
2882
            $roleService->newPolicyCreateStruct('content', 'create')
2883
        );
2884
2885
        $roleService->publishRoleDraft($roleDraft);
2886
        $role = $roleService->loadRoleByIdentifier($roleCreate->identifier);
2887
        /* END: Use Case */
2888
2889
        $actual = array();
2890
        foreach ($role->getPolicies() as $policy) {
2891
            $actual[] = array(
2892
                'module' => $policy->module,
2893
                'function' => $policy->function,
2894
            );
2895
        }
2896
        usort(
2897
            $actual,
2898
            function ($p1, $p2) {
2899
                return strcasecmp($p1['function'], $p2['function']);
2900
            }
2901
        );
2902
2903
        $this->assertEquals(
2904
            array(
2905
                array(
2906
                    'module' => 'content',
2907
                    'function' => 'create',
2908
                ),
2909
                array(
2910
                    'module' => 'content',
2911
                    'function' => 'delete',
2912
                ),
2913
            ),
2914
            $actual
2915
        );
2916
    }
2917
2918
    /**
2919
     * Create a user group fixture in a variable named <b>$userGroup</b>,.