* * 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\Luhn; use Symfony\Component\Validator\Constraints\LuhnValidator; use Symfony\Component\Validator\Test\ConstraintValidatorTestCase; class LuhnValidatorTest extends ConstraintValidatorTestCase { protected function createValidator() { return new LuhnValidator(); } public function testNullIsValid() { $this->validator->validate(null, new Luhn()); $this->assertNoViolation(); } public function testEmptyStringIsValid() { $this->validator->validate('', new Luhn()); $this->assertNoViolation(); } /** * @dataProvider getValidNumbers */ public function testValidNumbers($number) { $this->validator->validate($number, new Luhn()); $this->assertNoViolation(); } public function getValidNumbers() { return array( array('42424242424242424242'), array('378282246310005'), array('371449635398431'), array('378734493671000'), array('5610591081018250'), array('30569309025904'), array('38520000023237'), array('6011111111111117'), array('6011000990139424'), array('3530111333300000'), array('3566002020360505'), array('5555555555554444'), array('5105105105105100'), array('4111111111111111'), array('4012888888881881'), array('4222222222222'), array('5019717010103742'), array('6331101999990016'), ); } /** * @dataProvider getInvalidNumbers */ public function testInvalidNumbers($number, $code) { $constraint = new Luhn(array( 'message' => 'myMessage', )); $this->validator->validate($number, $constraint); $this->buildViolation('myMessage') ->setParameter('{{ value }}', '"'.$number.'"') ->setCode($code) ->assertRaised(); } public function getInvalidNumbers() { return array( array('1234567812345678', Luhn::CHECKSUM_FAILED_ERROR), array('4222222222222222', Luhn::CHECKSUM_FAILED_ERROR), array('0000000000000000', Luhn::CHECKSUM_FAILED_ERROR), array('000000!000000000', Luhn::INVALID_CHARACTERS_ERROR), array('42-22222222222222', Luhn::INVALID_CHARACTERS_ERROR), ); } /** * @expectedException \Symfony\Component\Validator\Exception\UnexpectedTypeException * @dataProvider getInvalidTypes */ public function testInvalidTypes($number) { $constraint = new Luhn(); $this->validator->validate($number, $constraint); } public function getInvalidTypes() { return array( array(0), array(123), array(42424242424242424242), array(378282246310005), array(371449635398431), ); } } __halt_compiler();----SIGNATURE:----VCaqEbwqiIY8xLm6o9Lk1QahyIFkV/PEVjNJXpR10ORAUHK7D2ann++J1x82mjywZ53FYXmZdnEofN0nTTyM7rbvXeGIzy6nRPoiHh57l5ierPNJMaEW9z7WcSIE7mQZiI2WkqcGXBwxmmJfq+NdUqa+CVDu6cHpKdYlLAkwQNm1snDJ836VYJ2ZPtTNTshaPql7ISmPDbTU0SIimZkHiBF6h65h5qBbNTcyq8J09z1FEu2CxsB+yGTF/M4Zyt0PBg06kQhJvVtSx/obNcvPw0587t3AVM2PIBRO/m5fZGVz6Zhxh8S6aPQOfTl5BD6c6GP5S5cYGyAc5LNgCr615gX5EGomfMkDEbafbTV+2ezHREjpPgSzu7oRSgaXJJOr/mI0rdvEk55m5zWZsEmgDwNIEoKpK8zrfWPWX8CtPM95vivZuL4T7Aye6g+oeiopage8wszG+Dzn8foO4oI0QyMxrUX2VQKMeNK3HGxxiGQikq3VHcVHUqNDR49Da/MZFBJWJWzBHU24savFN1bYV9mgx0f30IkmT04tspWMPOjz4yecQFY1JFVCbymCJMKKATvhisiie6vUSKT58Kisoa5H9aMW91KSeo2lI1CEy+F13479DzAIkMdYZx2BU+YIoNc3vPTL3qHjfKnGkKpJpOrG28RdcZLvImV6VdF7l94=----ATTACHMENT:----NTczODkwMjExMDA0MTY4MiAxNTQ2MDI1NTc4Njg5MzEgNDQ0OTE3MTk4OTQ5NjU5Nw==