Code Duplication    Length = 54-54 lines in 2 locations

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

@@ 916-969 (lines=54) @@
913
     * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testLoadRoleByIdentifier
914
     * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testNewPolicyCreateStruct
915
     */
916
    public function testAddPolicy()
917
    {
918
        $repository = $this->getRepository();
919
920
        /* BEGIN: Use Case */
921
        $roleService = $repository->getRoleService();
922
923
        $roleCreate = $roleService->newRoleCreateStruct('newRole');
924
925
        // @todo uncomment when support for multilingual names and descriptions is added EZP-24776
926
        // $roleCreate->mainLanguageCode = 'eng-US';
927
928
        $roleDraft = $roleService->createRole($roleCreate);
929
        $roleService->publishRoleDraft($roleDraft);
930
        $role = $roleService->loadRole($roleDraft->id);
931
932
        $role = $roleService->addPolicy(
933
            $role,
934
            $roleService->newPolicyCreateStruct('content', 'delete')
935
        );
936
        $role = $roleService->addPolicy(
937
            $role,
938
            $roleService->newPolicyCreateStruct('content', 'create')
939
        );
940
        /* END: Use Case */
941
942
        $actual = array();
943
        foreach ($role->getPolicies() as $policy) {
944
            $actual[] = array(
945
                'module' => $policy->module,
946
                'function' => $policy->function,
947
            );
948
        }
949
        usort(
950
            $actual,
951
            function ($p1, $p2) {
952
                return strcasecmp($p1['function'], $p2['function']);
953
            }
954
        );
955
956
        $this->assertEquals(
957
            array(
958
                array(
959
                    'module' => 'content',
960
                    'function' => 'create',
961
                ),
962
                array(
963
                    'module' => 'content',
964
                    'function' => 'delete',
965
                ),
966
            ),
967
            $actual
968
        );
969
    }
970
971
    /**
972
     * Test for the addPolicyByRoleDraft() method.
@@ 2834-2887 (lines=54) @@
2831
     * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testCreateRoleDraft
2832
     * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testAddPolicyByRoleDraft
2833
     */
2834
    public function testPublishRoleDraftAddPolicies()
2835
    {
2836
        $repository = $this->getRepository();
2837
2838
        /* BEGIN: Use Case */
2839
        $roleService = $repository->getRoleService();
2840
        $roleCreate = $roleService->newRoleCreateStruct('newRole');
2841
2842
        // @todo uncomment when support for multilingual names and descriptions is added EZP-24776
2843
        // $roleCreate->mainLanguageCode = 'eng-US';
2844
2845
        $roleDraft = $roleService->createRole($roleCreate);
2846
2847
        $roleDraft = $roleService->addPolicyByRoleDraft(
2848
            $roleDraft,
2849
            $roleService->newPolicyCreateStruct('content', 'delete')
2850
        );
2851
        $roleDraft = $roleService->addPolicyByRoleDraft(
2852
            $roleDraft,
2853
            $roleService->newPolicyCreateStruct('content', 'create')
2854
        );
2855
2856
        $roleService->publishRoleDraft($roleDraft);
2857
        $role = $roleService->loadRoleByIdentifier($roleCreate->identifier);
2858
        /* END: Use Case */
2859
2860
        $actual = array();
2861
        foreach ($role->getPolicies() as $policy) {
2862
            $actual[] = array(
2863
                'module' => $policy->module,
2864
                'function' => $policy->function,
2865
            );
2866
        }
2867
        usort(
2868
            $actual,
2869
            function ($p1, $p2) {
2870
                return strcasecmp($p1['function'], $p2['function']);
2871
            }
2872
        );
2873
2874
        $this->assertEquals(
2875
            array(
2876
                array(
2877
                    'module' => 'content',
2878
                    'function' => 'create',
2879
                ),
2880
                array(
2881
                    'module' => 'content',
2882
                    'function' => 'delete',
2883
                ),
2884
            ),
2885
            $actual
2886
        );
2887
    }
2888
2889
    /**
2890
     * Create a user group fixture in a variable named <b>$userGroup</b>,.