| @@ 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>,. |
|