| @@ 1008-1061 (lines=54) @@ | ||
| 1005 | * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testLoadRoleByIdentifier |
|
| 1006 | * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testNewPolicyCreateStruct |
|
| 1007 | */ |
|
| 1008 | public function testAddPolicy() |
|
| 1009 | { |
|
| 1010 | $repository = $this->getRepository(); |
|
| 1011 | ||
| 1012 | /* BEGIN: Use Case */ |
|
| 1013 | $roleService = $repository->getRoleService(); |
|
| 1014 | ||
| 1015 | $roleCreate = $roleService->newRoleCreateStruct('newRole'); |
|
| 1016 | ||
| 1017 | // @todo uncomment when support for multilingual names and descriptions is added EZP-24776 |
|
| 1018 | // $roleCreate->mainLanguageCode = 'eng-US'; |
|
| 1019 | ||
| 1020 | $roleDraft = $roleService->createRole($roleCreate); |
|
| 1021 | $roleService->publishRoleDraft($roleDraft); |
|
| 1022 | $role = $roleService->loadRole($roleDraft->id); |
|
| 1023 | ||
| 1024 | $role = $roleService->addPolicy( |
|
| 1025 | $role, |
|
| 1026 | $roleService->newPolicyCreateStruct('content', 'delete') |
|
| 1027 | ); |
|
| 1028 | $role = $roleService->addPolicy( |
|
| 1029 | $role, |
|
| 1030 | $roleService->newPolicyCreateStruct('content', 'create') |
|
| 1031 | ); |
|
| 1032 | /* END: Use Case */ |
|
| 1033 | ||
| 1034 | $actual = array(); |
|
| 1035 | foreach ($role->getPolicies() as $policy) { |
|
| 1036 | $actual[] = array( |
|
| 1037 | 'module' => $policy->module, |
|
| 1038 | 'function' => $policy->function, |
|
| 1039 | ); |
|
| 1040 | } |
|
| 1041 | usort( |
|
| 1042 | $actual, |
|
| 1043 | function ($p1, $p2) { |
|
| 1044 | return strcasecmp($p1['function'], $p2['function']); |
|
| 1045 | } |
|
| 1046 | ); |
|
| 1047 | ||
| 1048 | $this->assertEquals( |
|
| 1049 | array( |
|
| 1050 | array( |
|
| 1051 | 'module' => 'content', |
|
| 1052 | 'function' => 'create', |
|
| 1053 | ), |
|
| 1054 | array( |
|
| 1055 | 'module' => 'content', |
|
| 1056 | 'function' => 'delete', |
|
| 1057 | ), |
|
| 1058 | ), |
|
| 1059 | $actual |
|
| 1060 | ); |
|
| 1061 | } |
|
| 1062 | ||
| 1063 | /** |
|
| 1064 | * Test for the addPolicyByRoleDraft() method. |
|
| @@ 2926-2979 (lines=54) @@ | ||
| 2923 | * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testCreateRoleDraft |
|
| 2924 | * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testAddPolicyByRoleDraft |
|
| 2925 | */ |
|
| 2926 | public function testPublishRoleDraftAddPolicies() |
|
| 2927 | { |
|
| 2928 | $repository = $this->getRepository(); |
|
| 2929 | ||
| 2930 | /* BEGIN: Use Case */ |
|
| 2931 | $roleService = $repository->getRoleService(); |
|
| 2932 | $roleCreate = $roleService->newRoleCreateStruct('newRole'); |
|
| 2933 | ||
| 2934 | // @todo uncomment when support for multilingual names and descriptions is added EZP-24776 |
|
| 2935 | // $roleCreate->mainLanguageCode = 'eng-US'; |
|
| 2936 | ||
| 2937 | $roleDraft = $roleService->createRole($roleCreate); |
|
| 2938 | ||
| 2939 | $roleDraft = $roleService->addPolicyByRoleDraft( |
|
| 2940 | $roleDraft, |
|
| 2941 | $roleService->newPolicyCreateStruct('content', 'delete') |
|
| 2942 | ); |
|
| 2943 | $roleDraft = $roleService->addPolicyByRoleDraft( |
|
| 2944 | $roleDraft, |
|
| 2945 | $roleService->newPolicyCreateStruct('content', 'create') |
|
| 2946 | ); |
|
| 2947 | ||
| 2948 | $roleService->publishRoleDraft($roleDraft); |
|
| 2949 | $role = $roleService->loadRoleByIdentifier($roleCreate->identifier); |
|
| 2950 | /* END: Use Case */ |
|
| 2951 | ||
| 2952 | $actual = array(); |
|
| 2953 | foreach ($role->getPolicies() as $policy) { |
|
| 2954 | $actual[] = array( |
|
| 2955 | 'module' => $policy->module, |
|
| 2956 | 'function' => $policy->function, |
|
| 2957 | ); |
|
| 2958 | } |
|
| 2959 | usort( |
|
| 2960 | $actual, |
|
| 2961 | function ($p1, $p2) { |
|
| 2962 | return strcasecmp($p1['function'], $p2['function']); |
|
| 2963 | } |
|
| 2964 | ); |
|
| 2965 | ||
| 2966 | $this->assertEquals( |
|
| 2967 | array( |
|
| 2968 | array( |
|
| 2969 | 'module' => 'content', |
|
| 2970 | 'function' => 'create', |
|
| 2971 | ), |
|
| 2972 | array( |
|
| 2973 | 'module' => 'content', |
|
| 2974 | 'function' => 'delete', |
|
| 2975 | ), |
|
| 2976 | ), |
|
| 2977 | $actual |
|
| 2978 | ); |
|
| 2979 | } |
|
| 2980 | ||
| 2981 | /** |
|
| 2982 | * Create a user group fixture in a variable named <b>$userGroup</b>,. |
|