public function testAssignRoleToUserWithLimitation(array $limitation)
{
$roleHref = $this->createAndPublishRole(__METHOD__ . '_' . $limitation['identifier']);
$xml = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<RoleAssignInput>
<Role href="{$roleHref}" media-type="application/vnd.ez.api.RoleAssignInput+xml"/>
<limitation identifier="{$limitation['identifier']}">
<values>
<ref href="{$limitation['href']}" media-type="application/vnd.ez.api.{$limitation['identifier']}+xml" />
</values>
</limitation>
</RoleAssignInput>
XML;
$request = $this->createHttpRequest('POST', '/api/ezp/v2/user/users/10/roles', 'RoleAssignInput+xml', 'RoleAssignmentList+json');
$request->setContent($xml);
$response = $this->sendHttpRequest($request);
$roleAssignmentArray = json_decode($response->getContent(), true);
self::assertHttpResponseCodeEquals($response, 200);
return $roleAssignmentArray['RoleAssignmentList']['RoleAssignment'][0]['_href'];
}