* feat: generate random user handles with random-name-generator * feat: use random-name-combiner for user handles * feat: use random-name-generator Combination for user handles * chore: update composer.lock for random-name-generator Combination * feat: use Platoniq package * feat: centralise user handle validation in UserHandle constraint * feat: use platoniq/random-name-generator v1.0 * feat: increase uniqueness test size to 128 samples --------- Co-authored-by: Daniel Subiabre <daniel.subiabre@platoniq.net>
37 lines
960 B
PHP
37 lines
960 B
PHP
<?php
|
|
|
|
namespace App\Tests\Service;
|
|
|
|
use App\Service\UserService;
|
|
use App\Validator\UserHandle;
|
|
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
|
|
use Symfony\Component\Validator\Validator\ValidatorInterface;
|
|
use Zenstruck\Foundry\Test\ResetDatabase;
|
|
|
|
class UserServiceTest extends KernelTestCase
|
|
{
|
|
use ResetDatabase;
|
|
|
|
public function testGeneratesValidUniqueHandles()
|
|
{
|
|
self::bootKernel();
|
|
|
|
/** @var UserService */
|
|
$userService = static::getContainer()->get(UserService::class);
|
|
|
|
/** @var ValidatorInterface */
|
|
$validator = static::getContainer()->get(ValidatorInterface::class);
|
|
|
|
$handles = [];
|
|
for ($i = 0; $i < 128; ++$i) {
|
|
$handle = $userService->generateHandle();
|
|
|
|
$this->assertCount(0, $validator->validate($handle, new UserHandle()));
|
|
|
|
$handles[] = $handle;
|
|
}
|
|
|
|
$this->assertSameSize($handles, \array_unique($handles));
|
|
}
|
|
}
|