From 384f665c2c9db0b272d12ea90e9ddd61a4a6e776 Mon Sep 17 00:00:00 2001 From: Owen Kieffer-Jones Date: Tue, 16 Jun 2015 17:50:40 +0200 Subject: [PATCH 1/3] Add en_US implementation for bank information --- src/Faker/Provider/en_US/Payment.php | 38 ++++++++++ test/Faker/Provider/en_US/PaymentTest.php | 85 +++++++++++++++++++++++ 2 files changed, 123 insertions(+) create mode 100644 src/Faker/Provider/en_US/Payment.php create mode 100644 test/Faker/Provider/en_US/PaymentTest.php diff --git a/src/Faker/Provider/en_US/Payment.php b/src/Faker/Provider/en_US/Payment.php new file mode 100644 index 0000000000..0920df438a --- /dev/null +++ b/src/Faker/Provider/en_US/Payment.php @@ -0,0 +1,38 @@ +addProvider(new Payment($faker)); + $this->faker = $faker; + } + + public function testBankAccountNumber() + { + $accNo = $this->faker->bankAccountNumber; + $this->assertTrue(ctype_digit($accNo)); + $this->assertLessThanOrEqual(17, strlen($accNo)); + } + + public function testBankRoutingNumber() + { + $routingNo = $this->faker->bankRoutingNumber; + $this->assertRegExp('/^\d{9}$/', $routingNo); + $this->assertEquals(Payment::calculateRoutingNumberChecksum($routingNo), $routingNo[8]); + } + + public function routingNumberProvider() + { + return array( + array('122105155'), + array('082000549'), + array('121122676'), + array('122235821'), + array('102101645'), + array('102000021'), + array('123103729'), + array('071904779'), + array('081202759'), + array('074900783'), + array('104000029'), + array('073000545'), + array('101000187'), + array('042100175'), + array('083900363'), + array('091215927'), + array('091300023'), + array('091000022'), + array('081000210'), + array('101200453'), + array('092900383'), + array('104000029'), + array('121201694'), + array('107002312'), + array('091300023'), + array('041202582'), + array('042000013'), + array('123000220'), + array('091408501'), + array('064000059'), + array('124302150'), + array('125000105'), + array('075000022'), + array('307070115'), + array('091000022'), + ); + } + + /** + * @dataProvider routingNumberProvider + */ + public function testCalculateRoutingNumberChecksum($routingNo) + { + $this->assertEquals($routingNo[8], Payment::calculateRoutingNumberChecksum($routingNo), $routingNo); + } +} From c14c41e35c7d9ca98b94c6cd19f32f8d1e4fd1e5 Mon Sep 17 00:00:00 2001 From: Owen Kieffer-Jones Date: Tue, 25 Aug 2015 21:11:21 +0200 Subject: [PATCH 2/3] Cleanup --- src/Faker/Provider/en_US/Payment.php | 4 ++-- test/Faker/Provider/en_US/PaymentTest.php | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/Faker/Provider/en_US/Payment.php b/src/Faker/Provider/en_US/Payment.php index 0920df438a..a4ba79e5fe 100644 --- a/src/Faker/Provider/en_US/Payment.php +++ b/src/Faker/Provider/en_US/Payment.php @@ -9,14 +9,14 @@ class Payment extends \Faker\Provider\Payment public function bankAccountNumber() { // Length between 5 and 17, biased towards center - $length = self::numberBetween(0,3) + self::numberBetween(0,3) + self::numberBetween(0,3) + self::numberBetween(0,3) + 5; + $length = self::numberBetween(0, 3) + self::numberBetween(0, 3) + self::numberBetween(0, 3) + self::numberBetween(0, 3) + 5; return self::numerify(str_repeat('#', $length)); } public function bankRoutingNumber() { - $district = self::numberBetween(1,12); + $district = self::numberBetween(1, 12); $type = self::randomElement(array(0, 0, 0, 0, 20, 20, 60)); $clearingCenter = self::randomDigitNotNull(); $state = self::randomDigit(); diff --git a/test/Faker/Provider/en_US/PaymentTest.php b/test/Faker/Provider/en_US/PaymentTest.php index a3a006d8d2..d17593fe00 100644 --- a/test/Faker/Provider/en_US/PaymentTest.php +++ b/test/Faker/Provider/en_US/PaymentTest.php @@ -4,7 +4,6 @@ namespace Faker\Provider\en_US; use Faker\Generator; -use Faker\Provider\en_US\Payment; class PaymentTest extends \PHPUnit_Framework_TestCase { From a9809158194a85876d19ca5a50c2b5389adcc2b2 Mon Sep 17 00:00:00 2001 From: Owen Kieffer-Jones Date: Tue, 25 Aug 2015 21:20:11 +0200 Subject: [PATCH 3/3] Update readme.md --- readme.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 062b329f2f..08fe22e00f 100644 --- a/readme.md +++ b/readme.md @@ -239,7 +239,9 @@ Each of the generator properties (like `name`, `address`, and `lorem`) are calle creditCardDetails // array('MasterCard', '4485480221084675', 'Aleksander Nowak', '04/13') // Generates a random IBAN. Set $countryCode to null for a random country iban($countryCode) // 'IT31A8497112740YZ575DJ28BP4' - swiftBicNumber // RZTIAT22263 + swiftBicNumber // 'RZTIAT22263' + bankAccountNumber // '51915734310' + bankRoutingNumber // '212240302' ### `Faker\Provider\Color`