/**
  * @test
  */
 public function removeVoteFromObjectStorageHoldingVotes()
 {
     $vote = new \Visol\EasyvoteEducation\Domain\Model\Vote();
     $votesObjectStorageMock = $this->getMock('TYPO3\\CMS\\Extbase\\Persistence\\ObjectStorage', array('detach'), array(), '', FALSE);
     $votesObjectStorageMock->expects($this->once())->method('detach')->with($this->equalTo($vote));
     $this->inject($this->subject, 'votes', $votesObjectStorageMock);
     $this->subject->removeVote($vote);
 }
 /**
  * Delete a voting option
  *
  * @param \Visol\EasyvoteEducation\Domain\Model\VotingOption $votingOption
  * @ignorevalidation $votingOption
  * @return string
  */
 public function deleteAction(\Visol\EasyvoteEducation\Domain\Model\VotingOption $votingOption)
 {
     if ($this->isCurrentUserOwnerOfPanel($votingOption->getVoting()->getPanel())) {
         $this->votingOptionRepository->remove($votingOption);
         $this->persistenceManager->persistAll();
         return json_encode(array('removeElement' => TRUE));
     } else {
         // Error: Non-owner tries to delete a voting option
         $reason = LocalizationUtility::translate('ajax.status.403', 'easyvote_education');
         $reason .= '<br />VotingOptionController/deleteAction';
         return json_encode(array('status' => 403, 'reason' => $reason));
     }
 }