protected function mockServices($criterionMock, $limitationCount, $permissionSets)
{
$userMock = $this->getMock('eZ\\Publish\\API\\Repository\\Values\\User\\User');
$limitationTypeMock = $this->getMock('eZ\\Publish\\SPI\\Limitation\\Type');
$limitationServiceMock = $this->getLimitationServiceMock(['getLimitationType']);
$permissionResolverMock = $this->getPermissionResolverMock(['hasAccess', 'getCurrentUserReference']);
$limitationTypeMock->expects($this->any())->method('getCriterion')->with($this->isInstanceOf('eZ\\Publish\\API\\Repository\\Values\\User\\Limitation'), $this->equalTo($userMock))->will($this->returnValue($criterionMock));
$limitationServiceMock->expects($this->exactly($limitationCount))->method('getLimitationType')->with($this->equalTo('limitationIdentifier'))->will($this->returnValue($limitationTypeMock));
$permissionResolverMock->expects($this->once())->method('hasAccess')->with($this->equalTo('content'), $this->equalTo('read'))->will($this->returnValue($permissionSets));
$permissionResolverMock->expects($this->once())->method('getCurrentUserReference')->will($this->returnValue($userMock));
}