expectException(UnexpectedTypeException::class); $this->validator->validate('foo', new NotBlank()); } /** * @dataProvider getValidData * @param string $input */ public function testConstraintWithValidData($input) { $constraint = new Duration(); $this->validator->validate($input, $constraint); $this->validator->validate(strtoupper($input), $constraint); $this->assertNoViolation(); } public function getInvalidData() { return [ ['13-13'], ['2m3m'], ['2s3s'], ['2h3h'], ['2m3h'], ['2s3h'], ['2s3m'], ['3127::00'], ['3127:00:'], [':3127:00'], ['::3127'], ['foo'], ]; } /** * @dataProvider getInvalidData * @param mixed $input */ public function testValidationError($input) { $constraint = new Duration([ 'message' => 'myMessage', ]); $this->validator->validate($input, $constraint); $this->buildViolation('myMessage') ->setParameter('{{ value }}', '"' . $input . '"') ->setCode(Regex::REGEX_FAILED_ERROR) ->assertRaised(); } /** * @dataProvider getInvalidData * @param mixed $input */ public function testValidationErrorUpperCase($input) { $input = strtoupper($input); $constraint = new Duration([ 'message' => 'myMessage', ]); $this->validator->validate($input, $constraint); $this->buildViolation('myMessage') ->setParameter('{{ value }}', '"' . $input . '"') ->setCode(Regex::REGEX_FAILED_ERROR) ->assertRaised(); } }