* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Validator\Tests\Constraints; use Symfony\Component\Validator\Constraints\Issn; use Symfony\Component\Validator\Constraints\IssnValidator; use Symfony\Component\Validator\Test\ConstraintValidatorTestCase; /** * @see https://en.wikipedia.org/wiki/Issn */ class IssnValidatorTest extends ConstraintValidatorTestCase { protected function createValidator() { return new IssnValidator(); } public function getValidLowerCasedIssn() { return array( array('2162-321x'), array('2160-200x'), array('1537-453x'), array('1937-710x'), array('0002-922x'), array('1553-345x'), array('1553-619x'), ); } public function getValidNonHyphenatedIssn() { return array( array('2162321X'), array('01896016'), array('15744647'), array('14350645'), array('07174055'), array('20905076'), array('14401592'), ); } public function getFullValidIssn() { return array( array('1550-7416'), array('1539-8560'), array('2156-5376'), array('1119-023X'), array('1684-5315'), array('1996-0786'), array('1684-5374'), array('1996-0794'), ); } public function getValidIssn() { return array_merge( $this->getValidLowerCasedIssn(), $this->getValidNonHyphenatedIssn(), $this->getFullValidIssn() ); } public function getInvalidIssn() { return array( array(0, Issn::TOO_SHORT_ERROR), array('1539', Issn::TOO_SHORT_ERROR), array('2156-537A', Issn::INVALID_CHARACTERS_ERROR), array('1119-0231', Issn::CHECKSUM_FAILED_ERROR), array('1684-5312', Issn::CHECKSUM_FAILED_ERROR), array('1996-0783', Issn::CHECKSUM_FAILED_ERROR), array('1684-537X', Issn::CHECKSUM_FAILED_ERROR), array('1996-0795', Issn::CHECKSUM_FAILED_ERROR), ); } public function testNullIsValid() { $constraint = new Issn(); $this->validator->validate(null, $constraint); $this->assertNoViolation(); } public function testEmptyStringIsValid() { $constraint = new Issn(); $this->validator->validate('', $constraint); $this->assertNoViolation(); } /** * @expectedException \Symfony\Component\Validator\Exception\UnexpectedTypeException */ public function testExpectsStringCompatibleType() { $constraint = new Issn(); $this->validator->validate(new \stdClass(), $constraint); } /** * @dataProvider getValidLowerCasedIssn */ public function testCaseSensitiveIssns($issn) { $constraint = new Issn(array( 'caseSensitive' => true, 'message' => 'myMessage', )); $this->validator->validate($issn, $constraint); $this->buildViolation('myMessage') ->setParameter('{{ value }}', '"'.$issn.'"') ->setCode(Issn::INVALID_CASE_ERROR) ->assertRaised(); } /** * @dataProvider getValidNonHyphenatedIssn */ public function testRequireHyphenIssns($issn) { $constraint = new Issn(array( 'requireHyphen' => true, 'message' => 'myMessage', )); $this->validator->validate($issn, $constraint); $this->buildViolation('myMessage') ->setParameter('{{ value }}', '"'.$issn.'"') ->setCode(Issn::MISSING_HYPHEN_ERROR) ->assertRaised(); } /** * @dataProvider getValidIssn */ public function testValidIssn($issn) { $constraint = new Issn(); $this->validator->validate($issn, $constraint); $this->assertNoViolation(); } /** * @dataProvider getInvalidIssn */ public function testInvalidIssn($issn, $code) { $constraint = new Issn(array( 'message' => 'myMessage', )); $this->validator->validate($issn, $constraint); $this->buildViolation('myMessage') ->setParameter('{{ value }}', '"'.$issn.'"') ->setCode($code) ->assertRaised(); } } __halt_compiler();----SIGNATURE:----hOjA7bS9F9BAHxrjeR6/IIM5YuOOpZ7oIb3p02tG77GHeqMLMIEZaQap4zUif8PEwVqTfF7BSClun0/poK2hjhVwhrre6DoE7N1mnDrQZM2S68guNrpLz85RlDJdNO6eMVU90YAKFx4tU06n1XzOK1wGCN+0hkGmrrGRLzGuqrVca8CLO5eY4lsMdOgSC8oizLOJiqZFwl7NQ1KBLlR6D7U9lvL3uR+deIiHRp0PrD5aiChMKcinfyHxuUl/6J4yFCO0xN5o4LMfjCtr2Mhd45eGu1JdbhidqzaBaDQ10mnmXaq3YVw36idP5vYMxbwF1+ZDgUrr9bf5N1zoYn9eZIr6SS3wvlIAgy5f49uZEevS+s4/wLUBuTQM7D/utvx1vn2EpNgEuAwHBJ93d8zPbJpq9eeq3jZyaNcosO44djb00Be+4B5ejqHd3fh78UDN9yFawtfBkZjVVYx/cMVJQylSbsCCgMVEOHP2T4+obUvTAlbLcf/lqPGH66w9RBEwPfypsDOflmP+nMk3lh9pzdTcGk45Ta3nksZ+6QTK4Qu+ELYnJNJ5r0LvUuH1qffSBDe448/4PJ9g7IxjvUACNeAFoXHQGv07qWTjEgEnrZWAo3R2QSvxWeYuaR3AVn56bW93dV+p6TE9velxx4gr3Smf+2dlc1X2r4PYgH2CBUI=----ATTACHMENT:----OTY0MDk3MDI3NTc2MDM0NSA2MTU2NzgyNDQwOTA0Njc1IDQzODY1MzQ0NDYyMDA0Mw==