/** * @expectedException \eZ\Publish\API\Repository\Exceptions\UnauthorizedException * * @covers \Netgen\TagsBundle\Core\Repository\TagsService::addSynonym */ public function testAddSynonymThrowsUnauthorizedException() { $createStruct = $this->tagsService->newSynonymCreateStruct(40, 'eng-GB'); $createStruct->setKeyword('New synonym'); $this->repository->setCurrentUser($this->getStubbedUser(10)); $this->tagsService->addSynonym($createStruct); }
/** * Parse input structure. * * @param array $data * @param \eZ\Publish\Core\REST\Common\Input\ParsingDispatcher $parsingDispatcher * * @return \Netgen\TagsBundle\API\Repository\Values\Tags\SynonymCreateStruct */ public function parse(array $data, ParsingDispatcher $parsingDispatcher) { if (!array_key_exists('mainLanguageCode', $data)) { throw new Exceptions\Parser("Missing 'mainLanguageCode' element for SynonymCreate."); } $synonymCreateStruct = $this->tagsService->newSynonymCreateStruct(null, $data['mainLanguageCode']); if (array_key_exists('remoteId', $data)) { $synonymCreateStruct->remoteId = $data['remoteId']; } if (array_key_exists('alwaysAvailable', $data)) { $synonymCreateStruct->alwaysAvailable = $this->parserTools->parseBooleanValue($data['alwaysAvailable']); } if (array_key_exists('names', $data)) { if (!is_array($data['names']) || !array_key_exists('value', $data['names']) || !is_array($data['names']['value'])) { throw new Exceptions\Parser("Invalid 'names' element for SynonymCreate."); } $keywords = $this->parserTools->parseTranslatableList($data['names']); foreach ($keywords as $languageCode => $keyword) { $synonymCreateStruct->setKeyword($keyword, $languageCode); } } return $synonymCreateStruct; }
/** * Instantiates a new synonym create struct. * * @param mixed $mainTagId * @param string $mainLanguageCode * * @return \Netgen\TagsBundle\API\Repository\Values\Tags\SynonymCreateStruct */ public function newSynonymCreateStruct($mainTagId, $mainLanguageCode) { return $this->service->newSynonymCreateStruct($mainTagId, $mainLanguageCode); }