public function testParse()
{
$inputArray = array('module' => 'content', 'function' => 'delete', 'limitations' => array('limitation' => array(array('_identifier' => 'Class', 'values' => array('ref' => array(array('_href' => 1), array('_href' => 2), array('_href' => 3)))))));
$policyCreate = $this->getParser();
$result = $policyCreate->parse($inputArray, $this->getParsingDispatcherMock());
$this->assertInstanceOf('\\eZ\\Publish\\API\\Repository\\Values\\User\\PolicyCreateStruct', $result, 'PolicyCreateStruct not created correctly.');
$this->assertEquals('content', $result->module, 'PolicyCreateStruct module property not created correctly.');
$this->assertEquals('delete', $result->function, 'PolicyCreateStruct function property not created correctly.');
$parsedLimitations = $result->getLimitations();
$this->assertInternalType('array', $parsedLimitations, 'PolicyCreateStruct limitations not created correctly');
$this->assertCount(1, $parsedLimitations, 'PolicyCreateStruct limitations not created correctly');
$this->assertInstanceOf('\\eZ\\Publish\\API\\Repository\\Values\\User\\Limitation', $parsedLimitations['Class'], 'Limitation not created correctly.');
$this->assertEquals('Class', $parsedLimitations['Class']->getIdentifier(), 'Limitation identifier not created correctly.');
$this->assertEquals(array(1, 2, 3), $parsedLimitations['Class']->limitationValues, 'Limitation values not created correctly.');
}