5d21b93ced706f80e48d0b19f34ea780a005e862
[yaffs-website] / vendor / symfony / validator / Tests / Constraints / BicValidatorTest.php
1 <?php
2
3 /*
4  * This file is part of the Symfony package.
5  *
6  * (c) Fabien Potencier <fabien@symfony.com>
7  *
8  * For the full copyright and license information, please view the LICENSE
9  * file that was distributed with this source code.
10  */
11
12 namespace Symfony\Component\Validator\Tests\Constraints;
13
14 use Symfony\Component\Validator\Constraints\Bic;
15 use Symfony\Component\Validator\Constraints\BicValidator;
16 use Symfony\Component\Validator\Test\ConstraintValidatorTestCase;
17
18 class BicValidatorTest extends ConstraintValidatorTestCase
19 {
20     protected function createValidator()
21     {
22         return new BicValidator();
23     }
24
25     public function testNullIsValid()
26     {
27         $this->validator->validate(null, new Bic());
28
29         $this->assertNoViolation();
30     }
31
32     public function testEmptyStringIsValid()
33     {
34         $this->validator->validate('', new Bic());
35
36         $this->assertNoViolation();
37     }
38
39     /**
40      * @dataProvider getValidBics
41      */
42     public function testValidBics($bic)
43     {
44         $this->validator->validate($bic, new Bic());
45
46         $this->assertNoViolation();
47     }
48
49     public function getValidBics()
50     {
51         // http://formvalidation.io/validators/bic/
52         return array(
53             array('ASPKAT2LXXX'),
54             array('ASPKAT2L'),
55             array('DSBACNBXSHA'),
56             array('UNCRIT2B912'),
57             array('DABADKKK'),
58             array('RZOOAT2L303'),
59         );
60     }
61
62     /**
63      * @dataProvider getInvalidBics
64      */
65     public function testInvalidBics($bic, $code)
66     {
67         $constraint = new Bic(array(
68             'message' => 'myMessage',
69         ));
70
71         $this->validator->validate($bic, $constraint);
72
73         $this->buildViolation('myMessage')
74             ->setParameter('{{ value }}', '"'.$bic.'"')
75             ->setCode($code)
76             ->assertRaised();
77     }
78
79     public function getInvalidBics()
80     {
81         return array(
82             array('DEUTD', Bic::INVALID_LENGTH_ERROR),
83             array('ASPKAT2LXX', Bic::INVALID_LENGTH_ERROR),
84             array('ASPKAT2LX', Bic::INVALID_LENGTH_ERROR),
85             array('ASPKAT2LXXX1', Bic::INVALID_LENGTH_ERROR),
86             array('DABADKK', Bic::INVALID_LENGTH_ERROR),
87             array('1SBACNBXSHA', Bic::INVALID_BANK_CODE_ERROR),
88             array('RZ00AT2L303', Bic::INVALID_BANK_CODE_ERROR),
89             array('D2BACNBXSHA', Bic::INVALID_BANK_CODE_ERROR),
90             array('DS3ACNBXSHA', Bic::INVALID_BANK_CODE_ERROR),
91             array('DSB4CNBXSHA', Bic::INVALID_BANK_CODE_ERROR),
92             array('DEUT12HH', Bic::INVALID_COUNTRY_CODE_ERROR),
93             array('DSBAC6BXSHA', Bic::INVALID_COUNTRY_CODE_ERROR),
94             array('DSBA5NBXSHA', Bic::INVALID_COUNTRY_CODE_ERROR),
95
96             // branch code error
97             array('THISSVAL1D]', Bic::INVALID_CHARACTERS_ERROR),
98
99             // location code error
100             array('DEUTDEF]', Bic::INVALID_CHARACTERS_ERROR),
101
102             // lower case values are invalid
103             array('DeutAT2LXXX', Bic::INVALID_CASE_ERROR),
104             array('DEUTAT2lxxx', Bic::INVALID_CASE_ERROR),
105         );
106     }
107 }