eZ\Publish\Core\Repository\Tests\Service\Integration\RoleBase::testAddPolicy PHP Method

testAddPolicy() public method

Test adding policy to role.
public testAddPolicy ( )
    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);
        }
    }