|
- <?php
-
- namespace Faker\Test\Calculator;
-
- use Faker\Calculator\Iban;
-
- class IbanTest extends \PHPUnit_Framework_TestCase
- {
-
- public function checksumProvider()
- {
- return array(
- array('AL47212110090000000235698741', '47'),
- array('AD1200012030200359100100', '12'),
- array('AT611904300234573201', '61'),
- array('AZ21NABZ00000000137010001944', '21'),
- array('BH67BMAG00001299123456', '67'),
- array('BE68539007547034', '68'),
- array('BA391290079401028494', '39'),
- array('BR7724891749412660603618210F3', '77'),
- array('BG80BNBG96611020345678', '80'),
- array('CR0515202001026284066', '05'),
- array('HR1210010051863000160', '12'),
- array('CY17002001280000001200527600', '17'),
- array('CZ6508000000192000145399', '65'),
- array('DK5000400440116243', '50'),
- array('DO28BAGR00000001212453611324', '28'),
- array('EE382200221020145685', '38'),
- array('FO6264600001631634', '62'),
- array('FI2112345600000785', '21'),
- array('FR1420041010050500013M02606', '14'),
- array('GE29NB0000000101904917', '29'),
- array('DE89370400440532013000', '89'),
- array('GI75NWBK000000007099453', '75'),
- array('GR1601101250000000012300695', '16'),
- array('GL8964710001000206', '89'),
- array('GT82TRAJ01020000001210029690', '82'),
- array('HU42117730161111101800000000', '42'),
- array('IS140159260076545510730339', '14'),
- array('IE29AIBK93115212345678', '29'),
- array('IL620108000000099999999', '62'),
- array('IT60X0542811101000000123456', '60'),
- array('KZ86125KZT5004100100', '86'),
- array('KW81CBKU0000000000001234560101', '81'),
- array('LV80BANK0000435195001', '80'),
- array('LB62099900000001001901229114', '62'),
- array('LI21088100002324013AA', '21'),
- array('LT121000011101001000', '12'),
- array('LU280019400644750000', '28'),
- array('MK07250120000058984', '07'),
- array('MT84MALT011000012345MTLCAST001S', '84'),
- array('MR1300020001010000123456753', '13'),
- array('MU17BOMM0101101030300200000MUR', '17'),
- array('MD24AG000225100013104168', '24'),
- array('MC5811222000010123456789030', '58'),
- array('ME25505000012345678951', '25'),
- array('NL91ABNA0417164300', '91'),
- array('NO9386011117947', '93'),
- array('PK36SCBL0000001123456702', '36'),
- array('PL61109010140000071219812874', '61'),
- array('PS92PALS000000000400123456702', '92'),
- array('PT50000201231234567890154', '50'),
- array('QA58DOHB00001234567890ABCDEFG', '58'),
- array('RO49AAAA1B31007593840000', '49'),
- array('SM86U0322509800000000270100', '86'),
- array('SA0380000000608010167519', '03'),
- array('RS35260005601001611379', '35'),
- array('SK3112000000198742637541', '31'),
- array('SI56263300012039086', '56'),
- array('ES9121000418450200051332', '91'),
- array('SE4550000000058398257466', '45'),
- array('CH9300762011623852957', '93'),
- array('TN5910006035183598478831', '59'),
- array('TR330006100519786457841326', '33'),
- array('AE070331234567890123456', '07'),
- array('GB29NWBK60161331926819', '29'),
- array('VG96VPVG0000012345678901', '96'),
- array('YY24KIHB12476423125915947930915268', '24'),
- array('ZZ25VLQT382332233206588011313776421', '25'),
- );
- }
-
- /**
- * @dataProvider checksumProvider
- */
- public function testChecksum($iban, $checksum)
- {
- $this->assertEquals($checksum, Iban::checksum($iban), $iban);
- }
-
- public function validatorProvider()
- {
- return array(
- array('AL47212110090000000235698741', true),
- array('AD1200012030200359100100', true),
- array('AT611904300234573201', true),
- array('AZ21NABZ00000000137010001944', true),
- array('BH67BMAG00001299123456', true),
- array('BE68539007547034', true),
- array('BA391290079401028494', true),
- array('BR7724891749412660603618210F3', true),
- array('BG80BNBG96611020345678', true),
- array('CR0515202001026284066', true),
- array('HR1210010051863000160', true),
- array('CY17002001280000001200527600', true),
- array('CZ6508000000192000145399', true),
- array('DK5000400440116243', true),
- array('DO28BAGR00000001212453611324', true),
- array('EE382200221020145685', true),
- array('FO6264600001631634', true),
- array('FI2112345600000785', true),
- array('FR1420041010050500013M02606', true),
- array('GE29NB0000000101904917', true),
- array('DE89370400440532013000', true),
- array('GI75NWBK000000007099453', true),
- array('GR1601101250000000012300695', true),
- array('GL8964710001000206', true),
- array('GT82TRAJ01020000001210029690', true),
- array('HU42117730161111101800000000', true),
- array('IS140159260076545510730339', true),
- array('IE29AIBK93115212345678', true),
- array('IL620108000000099999999', true),
- array('IT60X0542811101000000123456', true),
- array('KZ86125KZT5004100100', true),
- array('KW81CBKU0000000000001234560101', true),
- array('LV80BANK0000435195001', true),
- array('LB62099900000001001901229114', true),
- array('LI21088100002324013AA', true),
- array('LT121000011101001000', true),
- array('LU280019400644750000', true),
- array('MK07250120000058984', true),
- array('MT84MALT011000012345MTLCAST001S', true),
- array('MR1300020001010000123456753', true),
- array('MU17BOMM0101101030300200000MUR', true),
- array('MD24AG000225100013104168', true),
- array('MC5811222000010123456789030', true),
- array('ME25505000012345678951', true),
- array('NL91ABNA0417164300', true),
- array('NO9386011117947', true),
- array('PK36SCBL0000001123456702', true),
- array('PL61109010140000071219812874', true),
- array('PS92PALS000000000400123456702', true),
- array('PT50000201231234567890154', true),
- array('QA58DOHB00001234567890ABCDEFG', true),
- array('RO49AAAA1B31007593840000', true),
- array('SM86U0322509800000000270100', true),
- array('SA0380000000608010167519', true),
- array('RS35260005601001611379', true),
- array('SK3112000000198742637541', true),
- array('SI56263300012039086', true),
- array('ES9121000418450200051332', true),
- array('SE4550000000058398257466', true),
- array('CH9300762011623852957', true),
- array('TN5910006035183598478831', true),
- array('TR330006100519786457841326', true),
- array('AE070331234567890123456', true),
- array('GB29NWBK60161331926819', true),
- array('VG96VPVG0000012345678901', true),
- array('YY24KIHB12476423125915947930915268', true),
- array('ZZ25VLQT382332233206588011313776421', true),
-
-
- array('AL4721211009000000023569874', false),
- array('AD120001203020035910010', false),
- array('AT61190430023457320', false),
- array('AZ21NABZ0000000013701000194', false),
- array('BH67BMAG0000129912345', false),
- array('BE6853900754703', false),
- array('BA39129007940102849', false),
- array('BR7724891749412660603618210F', false),
- array('BG80BNBG9661102034567', false),
- array('CR051520200102628406', false),
- array('HR121001005186300016', false),
- array('CY1700200128000000120052760', false),
- array('CZ650800000019200014539', false),
- array('DK500040044011624', false),
- array('DO28BAGR0000000121245361132', false),
- array('EE38220022102014568', false),
- array('FO626460000163163', false),
- array('FI2112345600000780', false),
- array('FR1420041010050500013M0260', false),
- array('GE29NB000000010190491', false),
- array('DE8937040044053201300', false),
- array('GI75NWBK00000000709945', false),
- array('GR160110125000000001230069', false),
- array('GL896471000100020', false),
- array('GT82TRAJ0102000000121002969', false),
- array('HU4211773016111110180000000', false),
- array('IS14015926007654551073033', false),
- array('IE29AIBK9311521234567', false),
- array('IL62010800000009999999', false),
- array('IT60X054281110100000012345', false),
- array('KZ86125KZT500410010', false),
- array('KW81CBKU000000000000123456010', false),
- array('LV80BANK000043519500', false),
- array('LB6209990000000100190122911', false),
- array('LI21088100002324013A', false),
- array('LT12100001110100100', false),
- array('LU28001940064475000', false),
- array('MK0725012000005898', false),
- array('MT84MALT011000012345MTLCAST001', false),
- array('MR130002000101000012345675', false),
- array('MU17BOMM0101101030300200000MU', false),
- array('MD24AG00022510001310416', false),
- array('MC58112220000101234567890', false),
- array('ME2550500001234567895', false),
- array('NL91ABNA041716430', false),
- array('NO938601111794', false),
- array('PK36SCBL000000112345670', false),
- array('PL6110901014000007121981287', false),
- array('PS92PALS00000000040012345670', false),
- array('PT5000020123123456789015', false),
- array('QA58DOHB00001234567890ABCDEF', false),
- array('RO49AAAA1B3100759384000', false),
- array('SM86U032250980000000027010', false),
- array('SA038000000060801016751', false),
- array('RS3526000560100161137', false),
- array('SK311200000019874263754', false),
- array('SI5626330001203908', false),
- array('ES912100041845020005133', false),
- array('SE455000000005839825746', false),
- array('CH930076201162385295', false),
- array('TN591000603518359847883', false),
- array('TR33000610051978645784132', false),
- array('AE07033123456789012345', false),
- array('GB29NWBK6016133192681', false),
- array('VG96VPVG000001234567890', false),
- array('YY24KIHB1247642312591594793091526', false),
- array('ZZ25VLQT38233223320658801131377642', false),
- );
- }
-
- /**
- * @dataProvider validatorProvider
- */
- public function testIsValid($iban, $isValid)
- {
- $this->assertEquals($isValid, Iban::isValid($iban), $iban);
- }
-
- public function alphaToNumberProvider()
- {
- return array(
- array('A', 10),
- array('B', 11),
- array('C', 12),
- array('D', 13),
- array('E', 14),
- array('F', 15),
- array('G', 16),
- array('H', 17),
- array('I', 18),
- array('J', 19),
- array('K', 20),
- array('L', 21),
- array('M', 22),
- array('N', 23),
- array('O', 24),
- array('P', 25),
- array('Q', 26),
- array('R', 27),
- array('S', 28),
- array('T', 29),
- array('U', 30),
- array('V', 31),
- array('W', 32),
- array('X', 33),
- array('Y', 34),
- array('Z', 35),
- );
- }
-
- /**
- * @dataProvider alphaToNumberProvider
- */
- public function testAlphaToNumber($letter, $number)
- {
- $this->assertEquals($number, Iban::alphaToNumber($letter), $letter);
- }
-
- public function mod97Provider()
- {
- // Large numbers
- $return = array(
- array('123456789123456789', 7),
- array('111222333444555666', 73),
- array('4242424242424242424242', 19),
- array('271828182845904523536028', 68),
- );
-
- // 0-200
- for ($i = 0; $i < 200; $i++) {
- $return[] = array((string)$i, $i % 97);
- }
-
- return $return;
- }
- /**
- * @dataProvider mod97Provider
- */
- public function testMod97($number, $result)
- {
- $this->assertEquals($result, Iban::mod97($number), $number);
- }
- }
|