mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-08-20 22:53:49 +00:00
80 lines
2.1 KiB
PHP
80 lines
2.1 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Chill is a software for social workers
|
|
*
|
|
* For the full copyright and license information, please view
|
|
* the LICENSE file that was distributed with this source code.
|
|
*/
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Validator\Person;
|
|
|
|
use Chill\PersonBundle\Entity\Person;
|
|
use Chill\PersonBundle\Validator\Constraints\Person\Birthdate;
|
|
use Datetime;
|
|
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
|
|
use Symfony\Component\Validator\Constraints\Length;
|
|
use Symfony\Component\Validator\Validator\ValidatorInterface;
|
|
use function str_repeat;
|
|
|
|
/**
|
|
* @internal
|
|
* @coversNothing
|
|
*/
|
|
final class PersonValidationTest extends KernelTestCase
|
|
{
|
|
private ValidatorInterface $validator;
|
|
|
|
protected function setUp(): void
|
|
{
|
|
self::bootKernel();
|
|
$this->validator = self::$container->get(ValidatorInterface::class);
|
|
}
|
|
|
|
public function testBirthdateInFuture()
|
|
{
|
|
$person = (new Person())
|
|
->setBirthdate(new Datetime('+2 months'));
|
|
$errors = $this->validator->validate($person, null);
|
|
|
|
foreach ($errors->getIterator() as $error) {
|
|
if (Birthdate::BIRTHDATE_INVALID_CODE === $error->getCode()) {
|
|
$this->assertTrue(
|
|
true,
|
|
'error code for birthdate invalid is present'
|
|
);
|
|
|
|
return;
|
|
}
|
|
}
|
|
$this->assertTrue(
|
|
false,
|
|
'error code for birthdate invalid is present'
|
|
);
|
|
}
|
|
|
|
public function testFirstnameValidation()
|
|
{
|
|
$person = (new Person())
|
|
->setFirstname(str_repeat('a', 500));
|
|
$errors = $this->validator->validate($person, null);
|
|
|
|
foreach ($errors->getIterator() as $error) {
|
|
if (Length::TOO_LONG_ERROR === $error->getCode()) {
|
|
$this->assertTrue(
|
|
true,
|
|
'error code for firstname too long is present'
|
|
);
|
|
|
|
return;
|
|
}
|
|
}
|
|
$this->assertTrue(
|
|
false,
|
|
'error code for fistname too long is present'
|
|
);
|
|
}
|
|
}
|