/** * @covers \Netgen\TagsBundle\Core\Repository\TagsService::deleteTag * @depends testLoadTag * @depends testLoadTagSynonyms * @depends testLoadTagChildren */ public function testDeleteTag() { $tag = $this->tagsService->loadTag(16); $tagSynonyms = $this->tagsService->loadTagSynonyms($tag); $tagChildren = $this->tagsService->loadTagChildren($tag); $this->tagsService->deleteTag($tag); try { $this->tagsService->loadTag($tag->id); $this->fail('Tag not deleted'); } catch (NotFoundException $e) { // Do nothing } foreach ($tagSynonyms as $synonym) { try { $this->tagsService->loadTag($synonym->id); $this->fail('Synonym not deleted'); } catch (NotFoundException $e) { // Do nothing } } foreach ($tagChildren as $child) { try { $this->tagsService->loadTag($child->id); $this->fail('Child not deleted'); } catch (NotFoundException $e) { // Do nothing } } }
/** * Loads synonyms of a tag object. * * @param string $tagPath * @param \Symfony\Component\HttpFoundation\Request $request * * @return \Netgen\TagsBundle\Core\REST\Server\Values\CachedValue */ public function loadTagSynonyms($tagPath, Request $request) { $offset = $request->query->has('offset') ? (int) $request->query->get('offset') : 0; $limit = $request->query->has('limit') ? (int) $request->query->get('limit') : 25; $tagId = $this->extractTagIdFromPath($tagPath); $synonyms = $this->tagsService->loadTagSynonyms($this->tagsService->loadTag($tagId), $offset >= 0 ? $offset : 0, $limit >= 0 ? $limit : 25); $restSynonyms = array(); foreach ($synonyms as $synonym) { $restSynonyms[] = new Values\RestTag($synonym, 0, 0); } return new Values\CachedValue(new Values\TagList($restSynonyms, $request->getPathInfo()), array('tagId' => $tagId)); }
/** * Loads synonyms of a tag object. * * @throws \eZ\Publish\API\Repository\Exceptions\UnauthorizedException If the current user is not allowed to read tags * @throws \eZ\Publish\API\Repository\Exceptions\InvalidArgumentException If the tag is already a synonym * * @param \Netgen\TagsBundle\API\Repository\Values\Tags\Tag $tag * @param int $offset The start offset for paging * @param int $limit The number of synonyms returned. If $limit = -1 all synonyms starting at $offset are returned * @param array|null $languages A language filter for keywords. If not given all languages are returned. * @param bool $useAlwaysAvailable Add main language to $languages if true (default) and if tag is always available * * @return \Netgen\TagsBundle\API\Repository\Values\Tags\Tag[] */ public function loadTagSynonyms(Tag $tag, $offset = 0, $limit = -1, array $languages = null, $useAlwaysAvailable = true) { return $this->service->loadTagSynonyms($tag, $offset, $limit, $languages, $useAlwaysAvailable); }