public function providerForTestGetPermissionsCriterion()
{
$criterionMock = $this->getMockBuilder('eZ\\Publish\\API\\Repository\\Values\\Content\\Query\\Criterion')->disableOriginalConstructor()->getMock();
$limitationMock = $this->getMockBuilder('eZ\\Publish\\API\\Repository\\Values\\User\\Limitation')->getMockForAbstractClass();
$limitationMock->expects($this->any())->method('getIdentifier')->will($this->returnValue('limitationIdentifier'));
$policy1 = new Policy(array('limitations' => array($limitationMock)));
$policy2 = new Policy(array('limitations' => array($limitationMock, $limitationMock)));
return array(array($criterionMock, 1, array(array('limitation' => null, 'policies' => array($policy1))), $criterionMock), array($criterionMock, 2, array(array('limitation' => null, 'policies' => array($policy1, $policy1))), new Criterion\LogicalOr(array($criterionMock, $criterionMock))), array($criterionMock, 0, array(array('limitation' => null, 'policies' => array(new Policy(array('limitations' => '*')), $policy1))), false), array($criterionMock, 0, array(array('limitation' => null, 'policies' => array(new Policy(array('limitations' => array())), $policy1))), false), array($criterionMock, 2, array(array('limitation' => null, 'policies' => array($policy2))), new Criterion\LogicalAnd(array($criterionMock, $criterionMock))), array($criterionMock, 3, array(array('limitation' => null, 'policies' => array($policy1, $policy2))), new Criterion\LogicalOr(array($criterionMock, new Criterion\LogicalAnd(array($criterionMock, $criterionMock))))), array($criterionMock, 2, array(array('limitation' => null, 'policies' => array($policy1)), array('limitation' => null, 'policies' => array($policy1))), new Criterion\LogicalOr(array($criterionMock, $criterionMock))), array($criterionMock, 3, array(array('limitation' => null, 'policies' => array($policy1)), array('limitation' => null, 'policies' => array($policy1, $policy1))), new Criterion\LogicalOr(array($criterionMock, $criterionMock, $criterionMock))), array($criterionMock, 3, array(array('limitation' => null, 'policies' => array($policy2)), array('limitation' => null, 'policies' => array($policy1))), new Criterion\LogicalOr(array(new Criterion\LogicalAnd(array($criterionMock, $criterionMock)), $criterionMock))), array($criterionMock, 2, array(array('limitation' => $limitationMock, 'policies' => array($policy1))), new Criterion\LogicalAnd(array($criterionMock, $criterionMock))), array($criterionMock, 4, array(array('limitation' => $limitationMock, 'policies' => array($policy1)), array('limitation' => $limitationMock, 'policies' => array($policy1))), new Criterion\LogicalOr(array(new Criterion\LogicalAnd(array($criterionMock, $criterionMock)), new Criterion\LogicalAnd(array($criterionMock, $criterionMock))))), array($criterionMock, 1, array(array('limitation' => $limitationMock, 'policies' => array(new Policy(array('limitations' => '*'))))), $criterionMock), array($criterionMock, 2, array(array('limitation' => $limitationMock, 'policies' => array(new Policy(array('limitations' => '*')))), array('limitation' => $limitationMock, 'policies' => array(new Policy(array('limitations' => '*'))))), new Criterion\LogicalOr(array($criterionMock, $criterionMock))));
}