From 6de211b158f9487441784e6cf78c087d52934fe7 Mon Sep 17 00:00:00 2001 From: Agustin Arce Date: Tue, 25 Feb 2025 23:10:33 -0300 Subject: [PATCH 1/2] feat(Providers): add ar_EG phone number provider --- src/Provider/ar_EG/PhoneNumber.php | 74 +++++++++++++++++++++++++ test/Provider/ar_EG/PhoneNumberTest.php | 28 ++++++++++ 2 files changed, 102 insertions(+) create mode 100644 src/Provider/ar_EG/PhoneNumber.php create mode 100644 test/Provider/ar_EG/PhoneNumberTest.php diff --git a/src/Provider/ar_EG/PhoneNumber.php b/src/Provider/ar_EG/PhoneNumber.php new file mode 100644 index 0000000000..bb28d347df --- /dev/null +++ b/src/Provider/ar_EG/PhoneNumber.php @@ -0,0 +1,74 @@ +faker->phoneNumber()); + } + + public function testMobileNumber(): void + { + self::assertMatchesRegularExpression('/^(\+20\s?)?(010|011|012|015)\s?\d{3,4}\s?\d{4}$|^(\+20\s?)?(010|011|012|015)\d{8}$/', $this->faker->mobileNumber()); + } + + + protected function getProviders(): iterable + { + yield new PhoneNumber($this->faker); + } +} From 46feaf6186c9dc01873e4fd5b924702bff8677e4 Mon Sep 17 00:00:00 2001 From: Agustin Arce Date: Tue, 25 Feb 2025 23:14:45 -0300 Subject: [PATCH 2/2] chore: run make cs and test --- src/Provider/ar_EG/PhoneNumber.php | 9 ++++----- test/Provider/ar_EG/PhoneNumberTest.php | 2 -- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/src/Provider/ar_EG/PhoneNumber.php b/src/Provider/ar_EG/PhoneNumber.php index bb28d347df..f3b22759c0 100644 --- a/src/Provider/ar_EG/PhoneNumber.php +++ b/src/Provider/ar_EG/PhoneNumber.php @@ -3,11 +3,10 @@ namespace Faker\Provider\ar_EG; class PhoneNumber extends \Faker\Provider\PhoneNumber -# References: -# https://en.wikipedia.org/wiki/Telephone_numbers_in_Egypt -# https://krispcall.com/blog/egypt-phone-number-format/ + // References: + // https://en.wikipedia.org/wiki/Telephone_numbers_in_Egypt + // https://krispcall.com/blog/egypt-phone-number-format/ { - protected static $formats = [ '0{{areaCode}}#######', '+20{{areaCode}}#######', @@ -15,7 +14,6 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber '+20 {{areaCode}} ### ####', ]; - protected static $mobileFormats = [ '010########', '011########', @@ -67,6 +65,7 @@ public static function areaCode() { return static::numerify(static::randomElement(static::$areaCodes)); } + public static function mobileNumber() { return static::numerify(static::randomElement(static::$mobileFormats)); diff --git a/test/Provider/ar_EG/PhoneNumberTest.php b/test/Provider/ar_EG/PhoneNumberTest.php index d3a3efe562..41ea30d67d 100644 --- a/test/Provider/ar_EG/PhoneNumberTest.php +++ b/test/Provider/ar_EG/PhoneNumberTest.php @@ -7,7 +7,6 @@ use Faker\Provider\ar_EG\PhoneNumber; use Faker\Test\TestCase; - final class PhoneNumberTest extends TestCase { public function testPhoneNumber(): void @@ -20,7 +19,6 @@ public function testMobileNumber(): void self::assertMatchesRegularExpression('/^(\+20\s?)?(010|011|012|015)\s?\d{3,4}\s?\d{4}$|^(\+20\s?)?(010|011|012|015)\d{8}$/', $this->faker->mobileNumber()); } - protected function getProviders(): iterable { yield new PhoneNumber($this->faker);