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 = [];
941
        foreach ($role->getPolicies() as $policy) {
942
            $actual[] = [
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
            [
956
                [
957
                    'module' => 'content',
958
                    'function' => 'create',
959
                ],
960
                [
961
                    'module' => 'content',
962
                    'function' => 'delete',
963
                ],
964
            ],
965
            $actual
966
        );
967
    }
968
969
    /**
970
     * Test for the addPolicyByRoleDraft() method.
@@ 2832-2885 (lines=54) @@
2829
     * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testCreateRoleDraft
2830
     * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testAddPolicyByRoleDraft
2831
     */
2832
    public function testPublishRoleDraftAddPolicies()
2833
    {
2834
        $repository = $this->getRepository();
2835
2836
        /* BEGIN: Use Case */
2837
        $roleService = $repository->getRoleService();
2838
        $roleCreate = $roleService->newRoleCreateStruct('newRole');
2839
2840
        // @todo uncomment when support for multilingual names and descriptions is added EZP-24776
2841
        // $roleCreate->mainLanguageCode = 'eng-US';
2842
2843
        $roleDraft = $roleService->createRole($roleCreate);
2844
2845
        $roleDraft = $roleService->addPolicyByRoleDraft(
2846
            $roleDraft,
2847
            $roleService->newPolicyCreateStruct('content', 'delete')
2848
        );
2849
        $roleDraft = $roleService->addPolicyByRoleDraft(
2850
            $roleDraft,
2851
            $roleService->newPolicyCreateStruct('content', 'create')
2852
        );
2853
2854
        $roleService->publishRoleDraft($roleDraft);
2855
        $role = $roleService->loadRoleByIdentifier($roleCreate->identifier);
2856
        /* END: Use Case */
2857
2858
        $actual = [];
2859
        foreach ($role->getPolicies() as $policy) {
2860
            $actual[] = [
2861
                'module' => $policy->module,
2862
                'function' => $policy->function,
2863
            ];
2864
        }
2865
        usort(
2866
            $actual,
2867
            function ($p1, $p2) {
2868
                return strcasecmp($p1['function'], $p2['function']);
2869
            }
2870
        );
2871
2872
        $this->assertEquals(
2873
            [
2874
                [
2875
                    'module' => 'content',
2876
                    'function' => 'create',
2877
                ],
2878
                [
2879
                    'module' => 'content',
2880
                    'function' => 'delete',
2881
                ],
2882
            ],
2883
            $actual
2884
        );
2885
    }
2886
2887
    /**
2888
     * Create a user group fixture in a variable named <b>$userGroup</b>,.