mirror of
https://github.com/shlinkio/shlink.git
synced 2024-12-22 23:23:42 -06:00
Centralized logic to normalize tag names and removed references to deprecated setTags method in unit tests
This commit is contained in:
parent
09f25d78b7
commit
1cd6fdeede
@ -7,11 +7,9 @@ namespace Shlinkio\Shlink\Core\Util;
|
||||
use Doctrine\Common\Collections;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
use Shlinkio\Shlink\Core\Entity\Tag;
|
||||
use Shlinkio\Shlink\Core\Validation\ShortUrlInputFilter;
|
||||
|
||||
use function Functional\map;
|
||||
use function str_replace;
|
||||
use function strtolower;
|
||||
use function trim;
|
||||
|
||||
/** @deprecated */
|
||||
trait TagManagerTrait
|
||||
@ -23,8 +21,11 @@ trait TagManagerTrait
|
||||
*/
|
||||
private function tagNamesToEntities(EntityManagerInterface $em, array $tags): Collections\Collection
|
||||
{
|
||||
$entities = map($tags, function (string $tagName) use ($em) {
|
||||
$tagName = $this->normalizeTagName($tagName);
|
||||
$normalizedTags = ShortUrlInputFilter::withNonRequiredLongUrl([
|
||||
ShortUrlInputFilter::TAGS => $tags,
|
||||
])->getValue(ShortUrlInputFilter::TAGS);
|
||||
|
||||
$entities = map($normalizedTags, function (string $tagName) use ($em) {
|
||||
$tag = $em->getRepository(Tag::class)->findOneBy(['name' => $tagName]) ?? new Tag($tagName);
|
||||
$em->persist($tag);
|
||||
|
||||
@ -33,9 +34,4 @@ trait TagManagerTrait
|
||||
|
||||
return new Collections\ArrayCollection($entities);
|
||||
}
|
||||
|
||||
private function normalizeTagName(string $tagName): string
|
||||
{
|
||||
return str_replace(' ', '-', strtolower(trim($tagName)));
|
||||
}
|
||||
}
|
||||
|
@ -119,7 +119,7 @@ class UrlShortenerTest extends TestCase
|
||||
), ShortUrl::withLongUrl($url)];
|
||||
yield [
|
||||
ShortUrlMeta::fromRawData(['findIfExists' => true, 'longUrl' => $url, 'tags' => ['foo', 'bar']]),
|
||||
ShortUrl::withLongUrl($url)->setTags(new ArrayCollection([new Tag('bar'), new Tag('foo')])),
|
||||
ShortUrl::fromMeta(ShortUrlMeta::fromRawData(['longUrl' => $url, 'tags' => ['foo', 'bar']])),
|
||||
];
|
||||
yield [
|
||||
ShortUrlMeta::fromRawData(['findIfExists' => true, 'maxVisits' => 3, 'longUrl' => $url]),
|
||||
@ -157,7 +157,8 @@ class UrlShortenerTest extends TestCase
|
||||
'validUntil' => Chronos::parse('2017-01-01'),
|
||||
'maxVisits' => 4,
|
||||
'longUrl' => $url,
|
||||
]))->setTags(new ArrayCollection([new Tag('foo'), new Tag('bar'), new Tag('baz')])),
|
||||
'tags' => ['foo', 'bar', 'baz'],
|
||||
])),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user