public function testAddPolicy()
{
$roleService = $this->repository->getRoleService();
$role = $roleService->loadRole(1);
$policyCount = count($role->getPolicies());
$limitation1 = new Limitation\ContentTypeLimitation();
$limitation1->limitationValues = array('1', '3', '13');
$limitation2 = new Limitation\SectionLimitation();
$limitation2->limitationValues = array('2', '3');
$policyCreateStruct = $roleService->newPolicyCreateStruct('content', 'read');
$policyCreateStruct->addLimitation($limitation1);
$policyCreateStruct->addLimitation($limitation2);
$updatedRole = $roleService->addPolicy($role, $policyCreateStruct);
self::assertInstanceOf('\\eZ\\Publish\\API\\Repository\\Values\\User\\Role', $updatedRole);
self::assertCount($policyCount + 1, $updatedRole->getPolicies());
foreach ($updatedRole->getPolicies() as $policy) {
self::assertInstanceOf('\\eZ\\Publish\\API\\Repository\\Values\\User\\Policy', $policy);
self::assertGreaterThan(0, $policy->id);
self::assertEquals($role->id, $policy->roleId);
}
}