/** * @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)); } }