. */ namespace App\Tests\Validator\Constraints; use App\Validator\Constraints\ValidGTIN; use App\Validator\Constraints\ValidGTINValidator; use PHPUnit\Framework\TestCase; use Symfony\Component\Validator\ConstraintValidatorInterface; use Symfony\Component\Validator\Test\ConstraintValidatorTestCase; final class ValidGTINValidatorTest extends ConstraintValidatorTestCase { public function testAllowNull(): void { $this->validator->validate(null, new ValidGTIN()); $this->assertNoViolation(); } public function testValidGTIN8(): void { $this->validator->validate('12345670', new ValidGTIN()); $this->assertNoViolation(); } public function testValidGTIN12(): void { $this->validator->validate('123456789012', new ValidGTIN()); $this->assertNoViolation(); } public function testValidGTIN13(): void { $this->validator->validate('1234567890128', new ValidGTIN()); $this->assertNoViolation(); } public function testValidGTIN14(): void { $this->validator->validate('12345678901231', new ValidGTIN()); $this->assertNoViolation(); } public function testInvalidGTIN(): void { $this->validator->validate('1234567890123', new ValidGTIN()); $this->buildViolation('validator.invalid_gtin') ->assertRaised(); } protected function createValidator(): ConstraintValidatorInterface { return new ValidGTINValidator(); } }