Version 1
[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\BicValidator;
15 use Symfony\Component\Validator\Constraints\Bic;
16
17 class BicValidatorTest extends AbstractConstraintValidatorTest
18 {
19     protected function createValidator()
20     {
21         return new BicValidator();
22     }
23
24     public function testNullIsValid()
25     {
26         $this->validator->validate(null, new Bic());
27
28         $this->assertNoViolation();
29     }
30
31     public function testEmptyStringIsValid()
32     {
33         $this->validator->validate('', new Bic());
34
35         $this->assertNoViolation();
36     }
37
38     /**
39      * @dataProvider getValidBics
40      */
41     public function testValidBics($bic)
42     {
43         $this->validator->validate($bic, new Bic());
44
45         $this->assertNoViolation();
46     }
47
48     public function getValidBics()
49     {
50         // http://formvalidation.io/validators/bic/
51         return array(
52             array('ASPKAT2LXXX'),
53             array('ASPKAT2L'),
54             array('DSBACNBXSHA'),
55             array('UNCRIT2B912'),
56             array('DABADKKK'),
57             array('RZOOAT2L303'),
58         );
59     }
60
61     /**
62      * @dataProvider getInvalidBics
63      */
64     public function testInvalidBics($bic, $code)
65     {
66         $constraint = new Bic(array(
67             'message' => 'myMessage',
68         ));
69
70         $this->validator->validate($bic, $constraint);
71
72         $this->buildViolation('myMessage')
73             ->setParameter('{{ value }}', '"'.$bic.'"')
74             ->setCode($code)
75             ->assertRaised();
76     }
77
78     public function getInvalidBics()
79     {
80         return array(
81             array('DEUTD', Bic::INVALID_LENGTH_ERROR),
82             array('ASPKAT2LXX', Bic::INVALID_LENGTH_ERROR),
83             array('ASPKAT2LX', Bic::INVALID_LENGTH_ERROR),
84             array('ASPKAT2LXXX1', Bic::INVALID_LENGTH_ERROR),
85             array('DABADKK', Bic::INVALID_LENGTH_ERROR),
86             array('1SBACNBXSHA', Bic::INVALID_BANK_CODE_ERROR),
87             array('RZ00AT2L303', Bic::INVALID_BANK_CODE_ERROR),
88             array('D2BACNBXSHA', Bic::INVALID_BANK_CODE_ERROR),
89             array('DS3ACNBXSHA', Bic::INVALID_BANK_CODE_ERROR),
90             array('DSB4CNBXSHA', Bic::INVALID_BANK_CODE_ERROR),
91             array('DEUT12HH', Bic::INVALID_COUNTRY_CODE_ERROR),
92             array('DSBAC6BXSHA', Bic::INVALID_COUNTRY_CODE_ERROR),
93             array('DSBA5NBXSHA', Bic::INVALID_COUNTRY_CODE_ERROR),
94
95             // branch code error
96             array('THISSVAL1D]', Bic::INVALID_CHARACTERS_ERROR),
97
98             // location code error
99             array('DEUTDEF]', Bic::INVALID_CHARACTERS_ERROR),
100
101             // lower case values are invalid
102             array('DeutAT2LXXX', Bic::INVALID_CASE_ERROR),
103             array('DEUTAT2lxxx', Bic::INVALID_CASE_ERROR),
104         );
105     }
106 }