public function testDeleteUserWithRollback()
{
$repository = $this->getRepositoryMock();
$userService = $this->getPartlyMockedUserService(array('loadUser'));
$contentService = $this->getMock('eZ\\Publish\\API\\Repository\\ContentService');
$user = $this->getMock('eZ\\Publish\\API\\Repository\\Values\\User\\User');
$loadedUser = $this->getMock('eZ\\Publish\\API\\Repository\\Values\\User\\User');
$versionInfo = $this->getMock('eZ\\Publish\\API\\Repository\\Values\\Content\\VersionInfo');
$contentInfo = $this->getMock('eZ\\Publish\\API\\Repository\\Values\\Content\\ContentInfo');
$user->expects($this->once())->method('__get')->with('id')->will($this->returnValue(42));
$versionInfo->expects($this->once())->method('getContentInfo')->will($this->returnValue($contentInfo));
$loadedUser->expects($this->once())->method('getVersionInfo')->will($this->returnValue($versionInfo));
$userService->expects($this->once())->method('loadUser')->with(42)->will($this->returnValue($loadedUser));
$repository->expects($this->once())->method('beginTransaction');
$contentService->expects($this->once())->method('deleteContent')->with($contentInfo)->will($this->throwException(new \Exception()));
$repository->expects($this->once())->method('getContentService')->will($this->returnValue($contentService));
$repository->expects($this->once())->method('rollback');
/* @var \eZ\Publish\API\Repository\Values\User\User $user */
$userService->deleteUser($user);
}