/**
  * @test
  */
 public function addVotingOptionToObjectStorageHoldingVotingOptions()
 {
     $votingOption = new \Visol\EasyvoteEducation\Domain\Model\VotingOption();
     $votingOptionsObjectStorageMock = $this->getMock('TYPO3\\CMS\\Extbase\\Persistence\\ObjectStorage', array('attach'), array(), '', FALSE);
     $votingOptionsObjectStorageMock->expects($this->once())->method('attach')->with($this->equalTo($votingOption));
     $this->inject($this->subject, 'votingOptions', $votingOptionsObjectStorageMock);
     $this->subject->addVotingOption($votingOption);
 }
 /**
  * Add a new voting option
  *
  * @param \Visol\EasyvoteEducation\Domain\Model\Voting $voting
  * @return string
  */
 public function newAction(\Visol\EasyvoteEducation\Domain\Model\Voting $voting)
 {
     if ($this->isCurrentUserOwnerOfPanel($voting->getPanel())) {
         /** @var \Visol\EasyvoteEducation\Domain\Model\VotingOption $newVotingOption */
         $newVotingOption = $this->objectManager->get('Visol\\EasyvoteEducation\\Domain\\Model\\VotingOption');
         $newVotingOptionTitle = LocalizationUtility::translate('votingOption.actions.new.dummyText.newVotingOption', $this->request->getControllerExtensionName());
         $newVotingOption->setTitle($newVotingOptionTitle);
         $newVotingOption->setSorting(9999);
         $this->votingOptionRepository->add($newVotingOption);
         $voting->addVotingOption($newVotingOption);
         $this->votingRepository->update($voting);
         $this->persistenceManager->persistAll();
         return json_encode(array('reloadVotingOptions' => $voting->getUid()));
     } else {
         // Error: Non-owner tries to create a new VotingOption
         $reason = LocalizationUtility::translate('ajax.status.403', 'easyvote_education');
         $reason .= '<br />VotingOptionController/newAction';
         return json_encode(array('status' => 403, 'reason' => $reason));
     }
 }