| @@ 950-1003 (lines=54) @@ | ||
| 947 | * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testLoadRoleByIdentifier |
|
| 948 | * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testNewPolicyCreateStruct |
|
| 949 | */ |
|
| 950 | public function testAddPolicy() |
|
| 951 | { |
|
| 952 | $repository = $this->getRepository(); |
|
| 953 | ||
| 954 | /* BEGIN: Use Case */ |
|
| 955 | $roleService = $repository->getRoleService(); |
|
| 956 | ||
| 957 | $roleCreate = $roleService->newRoleCreateStruct('newRole'); |
|
| 958 | ||
| 959 | // @todo uncomment when support for multilingual names and descriptions is added EZP-24776 |
|
| 960 | // $roleCreate->mainLanguageCode = 'eng-US'; |
|
| 961 | ||
| 962 | $roleDraft = $roleService->createRole($roleCreate); |
|
| 963 | $roleService->addPolicyByRoleDraft( |
|
| 964 | $roleDraft, |
|
| 965 | $roleService->newPolicyCreateStruct('content', 'delete') |
|
| 966 | ); |
|
| 967 | $roleService->publishRoleDraft($roleDraft); |
|
| 968 | $role = $roleService->loadRole($roleDraft->id); |
|
| 969 | ||
| 970 | $role = $roleService->addPolicy( |
|
| 971 | $role, |
|
| 972 | $roleService->newPolicyCreateStruct('content', 'create') |
|
| 973 | ); |
|
| 974 | /* END: Use Case */ |
|
| 975 | ||
| 976 | $actual = array(); |
|
| 977 | foreach ($role->getPolicies() as $policy) { |
|
| 978 | $actual[] = array( |
|
| 979 | 'module' => $policy->module, |
|
| 980 | 'function' => $policy->function, |
|
| 981 | ); |
|
| 982 | } |
|
| 983 | usort( |
|
| 984 | $actual, |
|
| 985 | function ($p1, $p2) { |
|
| 986 | return strcasecmp($p1['function'], $p2['function']); |
|
| 987 | } |
|
| 988 | ); |
|
| 989 | ||
| 990 | $this->assertEquals( |
|
| 991 | array( |
|
| 992 | array( |
|
| 993 | 'module' => 'content', |
|
| 994 | 'function' => 'create', |
|
| 995 | ), |
|
| 996 | array( |
|
| 997 | 'module' => 'content', |
|
| 998 | 'function' => 'delete', |
|
| 999 | ), |
|
| 1000 | ), |
|
| 1001 | $actual |
|
| 1002 | ); |
|
| 1003 | } |
|
| 1004 | ||
| 1005 | /** |
|
| 1006 | * Test for the addPolicyByRoleDraft() method. |
|
| @@ 2901-2954 (lines=54) @@ | ||
| 2898 | * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testCreateRoleDraft |
|
| 2899 | * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testAddPolicyByRoleDraft |
|
| 2900 | */ |
|
| 2901 | public function testPublishRoleDraftAddPolicies() |
|
| 2902 | { |
|
| 2903 | $repository = $this->getRepository(); |
|
| 2904 | ||
| 2905 | /* BEGIN: Use Case */ |
|
| 2906 | $roleService = $repository->getRoleService(); |
|
| 2907 | $roleCreate = $roleService->newRoleCreateStruct('newRole'); |
|
| 2908 | ||
| 2909 | // @todo uncomment when support for multilingual names and descriptions is added EZP-24776 |
|
| 2910 | // $roleCreate->mainLanguageCode = 'eng-US'; |
|
| 2911 | ||
| 2912 | $roleDraft = $roleService->createRole($roleCreate); |
|
| 2913 | ||
| 2914 | $roleDraft = $roleService->addPolicyByRoleDraft( |
|
| 2915 | $roleDraft, |
|
| 2916 | $roleService->newPolicyCreateStruct('content', 'delete') |
|
| 2917 | ); |
|
| 2918 | $roleDraft = $roleService->addPolicyByRoleDraft( |
|
| 2919 | $roleDraft, |
|
| 2920 | $roleService->newPolicyCreateStruct('content', 'create') |
|
| 2921 | ); |
|
| 2922 | ||
| 2923 | $roleService->publishRoleDraft($roleDraft); |
|
| 2924 | $role = $roleService->loadRoleByIdentifier($roleCreate->identifier); |
|
| 2925 | /* END: Use Case */ |
|
| 2926 | ||
| 2927 | $actual = array(); |
|
| 2928 | foreach ($role->getPolicies() as $policy) { |
|
| 2929 | $actual[] = array( |
|
| 2930 | 'module' => $policy->module, |
|
| 2931 | 'function' => $policy->function, |
|
| 2932 | ); |
|
| 2933 | } |
|
| 2934 | usort( |
|
| 2935 | $actual, |
|
| 2936 | function ($p1, $p2) { |
|
| 2937 | return strcasecmp($p1['function'], $p2['function']); |
|
| 2938 | } |
|
| 2939 | ); |
|
| 2940 | ||
| 2941 | $this->assertEquals( |
|
| 2942 | array( |
|
| 2943 | array( |
|
| 2944 | 'module' => 'content', |
|
| 2945 | 'function' => 'create', |
|
| 2946 | ), |
|
| 2947 | array( |
|
| 2948 | 'module' => 'content', |
|
| 2949 | 'function' => 'delete', |
|
| 2950 | ), |
|
| 2951 | ), |
|
| 2952 | $actual |
|
| 2953 | ); |
|
| 2954 | } |
|
| 2955 | ||
| 2956 | /** |
|
| 2957 | * Create a user group fixture in a variable named <b>$userGroup</b>,. |
|