Code Duplication    Length = 24-32 lines in 6 locations

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

@@ 216-243 (lines=28) @@
213
     * @see \eZ\Publish\API\Repository\RoleService::createRoleDraft()
214
     * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testNewRoleCreateStruct
215
     */
216
    public function testCreateRoleDraft()
217
    {
218
        $repository = $this->getRepository();
219
220
        /* BEGIN: Use Case */
221
222
        $roleService = $repository->getRoleService();
223
        $roleCreate = $roleService->newRoleCreateStruct('roleName');
224
225
        // @todo uncomment when support for multilingual names and descriptions is added EZP-24776
226
        // $roleCreate->mainLanguageCode = 'eng-US';
227
228
        $roleDraft = $roleService->createRole($roleCreate);
229
        $roleService->addPolicyByRoleDraft(
230
            $roleDraft,
231
            $roleService->newPolicyCreateStruct('content', 'read')
232
        );
233
        $roleService->publishRoleDraft($roleDraft);
234
        $role = $roleService->loadRole($roleDraft->id);
235
        $newRoleDraft = $roleService->createRoleDraft($role);
236
237
        /* END: Use Case */
238
239
        $this->assertInstanceOf(
240
            '\\eZ\\Publish\\API\\Repository\\Values\\User\\RoleDraft',
241
            $newRoleDraft
242
        );
243
    }
244
245
    /**
246
     * Test for the createRole() method.
@@ 277-302 (lines=26) @@
274
     * @expectedException \eZ\Publish\API\Repository\Exceptions\InvalidArgumentException
275
     * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testCreateRoleDraft
276
     */
277
    public function testCreateRoleDraftThrowsInvalidArgumentException()
278
    {
279
        $repository = $this->getRepository();
280
281
        /* BEGIN: Use Case */
282
283
        $roleService = $repository->getRoleService();
284
        $roleCreate = $roleService->newRoleCreateStruct('Editor');
285
286
        // @todo uncomment when support for multilingual names and descriptions is added EZP-24776
287
        // $roleCreate->mainLanguageCode = 'eng-US';
288
289
        $roleDraft = $roleService->createRole($roleCreate);
290
        $roleService->addPolicyByRoleDraft(
291
            $roleDraft,
292
            $roleService->newPolicyCreateStruct('content', 'read')
293
        );
294
        $roleService->publishRoleDraft($roleDraft);
295
        $role = $roleService->loadRole($roleDraft->id);
296
        $roleService->createRoleDraft($role); // First role draft
297
298
        // This call will fail with an InvalidArgumentException, because there is already a draft
299
        $roleService->createRoleDraft($role);
300
301
        /* END: Use Case */
302
    }
303
304
    /**
305
     * Test for the createRole() method.
@@ 791-816 (lines=26) @@
788
     * @expectedException \eZ\Publish\API\Repository\Exceptions\InvalidArgumentException
789
     * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testUpdateRole
790
     */
791
    public function testUpdateRoleThrowsInvalidArgumentException()
792
    {
793
        $repository = $this->getRepository();
794
795
        /* BEGIN: Use Case */
796
        $roleService = $repository->getRoleService();
797
        $roleCreate = $roleService->newRoleCreateStruct('newRole');
798
799
        // @todo uncomment when support for multilingual names and descriptions is added EZP-24776
800
        // $roleCreate->mainLanguageCode = 'eng-US';
801
802
        $roleDraft = $roleService->createRole($roleCreate);
803
        $roleService->addPolicyByRoleDraft(
804
            $roleDraft,
805
            $roleService->newPolicyCreateStruct('content', 'read')
806
        );
807
        $roleService->publishRoleDraft($roleDraft);
808
        $role = $roleService->loadRole($roleDraft->id);
809
810
        $roleUpdate = $roleService->newRoleUpdateStruct();
811
        $roleUpdate->identifier = 'Editor';
812
813
        // This call will fail with an InvalidArgumentException, because Editor is a predefined role
814
        $roleService->updateRole($role, $roleUpdate);
815
        /* END: Use Case */
816
    }
817
818
    /**
819
     * Test for the updateRoleDraft() method.
@@ 853-876 (lines=24) @@
850
     * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testCreateRole
851
     * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testLoadRoles
852
     */
853
    public function testDeleteRole()
854
    {
855
        $repository = $this->getRepository();
856
857
        /* BEGIN: Use Case */
858
        $roleService = $repository->getRoleService();
859
        $roleCreate = $roleService->newRoleCreateStruct('newRole');
860
861
        // @todo uncomment when support for multilingual names and descriptions is added EZP-24776
862
        // $roleCreate->mainLanguageCode = 'eng-US';
863
864
        $roleDraft = $roleService->createRole($roleCreate);
865
        $roleService->addPolicyByRoleDraft(
866
            $roleDraft,
867
            $roleService->newPolicyCreateStruct('content', 'read')
868
        );
869
        $roleService->publishRoleDraft($roleDraft);
870
        $role = $roleService->loadRole($roleDraft->id);
871
872
        $roleService->deleteRole($role);
873
        /* END: Use Case */
874
875
        $this->assertEquals(5, count($roleService->loadRoles()));
876
    }
877
878
    /**
879
     * Test for the deleteRoleDraft() method.
@@ 1728-1759 (lines=32) @@
1725
     * @see \eZ\Publish\API\Repository\RoleService::removePolicyByRoleDraft()
1726
     * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testAddPolicyByRoleDraft
1727
     */
1728
    public function testRemovePolicyByRoleDraft()
1729
    {
1730
        $repository = $this->getRepository();
1731
1732
        /* BEGIN: Use Case */
1733
        $roleService = $repository->getRoleService();
1734
1735
        // Instantiate a new role create
1736
        $roleCreate = $roleService->newRoleCreateStruct('newRole');
1737
1738
        // @todo uncomment when support for multilingual names and descriptions is added EZP-24776
1739
        // $roleCreate->mainLanguageCode = 'eng-US';
1740
1741
        // Create a new role with two policies
1742
        $roleDraft = $roleService->createRole($roleCreate);
1743
        $roleService->addPolicyByRoleDraft(
1744
            $roleDraft,
1745
            $roleService->newPolicyCreateStruct('content', 'create')
1746
        );
1747
        $roleService->addPolicyByRoleDraft(
1748
            $roleDraft,
1749
            $roleService->newPolicyCreateStruct('content', 'delete')
1750
        );
1751
1752
        // Delete all policies from the new role
1753
        foreach ($roleDraft->getPolicies() as $policy) {
1754
            $roleDraft = $roleService->removePolicyByRoleDraft($roleDraft, $policy);
1755
        }
1756
        /* END: Use Case */
1757
1758
        $this->assertSame(array(), $roleDraft->getPolicies());
1759
    }
1760
1761
    /**
1762
     * Test for the deletePolicy() method.
@@ 2867-2896 (lines=30) @@
2864
     * @see \eZ\Publish\API\Repository\RoleService::publishRoleDraft()
2865
     * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testCreateRoleDraft
2866
     */
2867
    public function testPublishRoleDraft()
2868
    {
2869
        $repository = $this->getRepository();
2870
2871
        /* BEGIN: Use Case */
2872
        $roleService = $repository->getRoleService();
2873
        $roleCreate = $roleService->newRoleCreateStruct('newRole');
2874
2875
        // @todo uncomment when support for multilingual names and descriptions is added EZP-24776
2876
        // $roleCreate->mainLanguageCode = 'eng-US';
2877
2878
        $roleDraft = $roleService->createRole($roleCreate);
2879
2880
        $roleDraft = $roleService->addPolicyByRoleDraft(
2881
            $roleDraft,
2882
            $roleService->newPolicyCreateStruct('content', 'delete')
2883
        );
2884
        $roleDraft = $roleService->addPolicyByRoleDraft(
2885
            $roleDraft,
2886
            $roleService->newPolicyCreateStruct('content', 'create')
2887
        );
2888
2889
        $roleService->publishRoleDraft($roleDraft);
2890
        /* END: Use Case */
2891
2892
        $this->assertInstanceOf(
2893
            '\\eZ\\Publish\\API\\Repository\\Values\\User\\Role',
2894
            $roleService->loadRoleByIdentifier($roleCreate->identifier)
2895
        );
2896
    }
2897
2898
    /**
2899
     * Test for the publishRoleDraft() method.