diff --git a/src/Provider/en_NG/Address.php b/src/Provider/en_NG/Address.php index be4731e8ea..e3e39fad62 100644 --- a/src/Provider/en_NG/Address.php +++ b/src/Provider/en_NG/Address.php @@ -4,14 +4,30 @@ class Address extends \Faker\Provider\Address { - protected static $postcode = ['#####', '## ###']; + protected static $citySuffix = []; - private static $county = [ - 'Abuja', 'Abia', 'Adamawa', 'Akwa Ibom', 'Anambra', + protected static $streetPrefix = ['Chief', 'Dr.', 'Alhaji', 'General', 'Bishop', 'Rev.']; + + protected static $streetSuffix = ['Street', 'Avenue', 'Close', 'Boulevard', 'Way']; + + protected static $postcode = ['######']; + + protected static $cityFormats = [ + '{{cityName}}', + ]; + + protected static $streetNameFormats = [ + '{{lastName}} {{streetSuffix}}', + '{{streetPrefix}} {{lastName}} {{streetSuffix}}', + ]; + + protected static $state = [ + 'Abia', 'Adamawa', 'Akwa Ibom', 'Anambra', 'Bauchi', 'Bayelsa', 'Benue', 'Borno', 'Cross River', 'Delta', 'Ebonyi', 'Edo', 'Ekiti', 'Enugu', 'Gombe', + 'Federal Capital Territory', 'Imo', 'Jigawa', 'Kaduna', 'Kano', 'Katsina', 'Kebbi', 'Kogi', 'Kwara', 'Lagos', @@ -53,46 +69,87 @@ class Address extends \Faker\Provider\Address 'Zambia', 'Zimbabwe', ]; - private static $regions = [ - 'Abakaliki', 'Abeokuta', 'Akure', 'Asaba', 'Awka', - 'Bauchi', - 'Calabar', 'City', - 'Damaturu', 'Dutse', - 'Ekiti', 'Enugu', - 'Gombe', 'Gusau', - 'Ibadan', 'Ikeja', 'Ilorin', - 'Jalingo', 'Jos', - 'Kaduna', 'Kano', 'Katsina', 'Kebbi', - 'Lafia', 'Lokoja', - 'Maiduguri', 'Makurdi', 'Minna', - 'Oshogbo', 'Owerri', - 'Port-Harcourt', - 'Sokoto', - 'Umuahia', 'Uyo', + protected static $cityName = [ + 'Aba', 'Abakaliki', 'Abeokuta', 'Abuja', 'Ado Ekiti', 'Akure', 'Arochukwu', 'Asaba', 'Awka', 'Azare', + 'Badagry', 'Bama', 'Bauchi', 'Benin', 'Bida', 'Birnin Kebbi', 'Biu', 'Bonny Island', 'Brass', 'Bukuru', 'Buguma', 'Burutu', 'Bwari', + 'Calabar', + 'Damaturu', 'Deba Habe', 'Degema', 'Dikwa', 'Dutse', + 'Effom-Alaiye', 'Ekiti', 'Eleme', 'Enugu', 'Epe', + 'Garki', 'Gashua', 'Gboko', 'Gombe', 'Gusau', 'Gwagwalada', + 'Ibadan', 'Idah', 'Ijebu-Ode', 'Ikare', 'Ikeja', 'Ikorodu', 'Ikot Abasi', 'Ikot Ekpene', 'Ilaro', 'Ile-Ife', 'Ilesa', 'Ilorin', + 'Jalingo', "Jama'are", 'Jebba', 'Jimeta', 'Jos', + 'Kabba', 'Kaduna', 'Kano', 'Katagum', 'Katsina', 'Kaura Namoda', 'Kebbi', 'Keffi', 'Koko', 'Kontagora', 'Kukawa', 'Kuje', 'Kwali', + 'Lafia', 'Lapai', 'Lekki', 'Lokoja', + 'Maiduguri', 'Makurdi', 'Mubi', 'Minna', 'Misau', 'Mushin', + 'Nsukka', 'Numan', + 'Obafemi-Owode', 'Oka-Akoko', 'Okene', 'Okrika', 'Okpoko', 'Ogbomosho', 'Ogoja', 'Ondo', 'Onitsha', 'Oron', 'Oshogbo', 'Otukpo', 'Owerri', 'Owo', + 'Port-Harcourt', 'Pategi', + 'Sagamu', 'Sapele', 'Sokoto', 'Suleja', + 'Ugep', 'Ughelli', 'Umuahia', 'Uromi', 'Uyo', + 'Victoria Island', 'Vom', + 'Warri', 'Wase', 'Yenagoa', 'Yola', + 'Zaria', + ]; + + protected static $region = [ + 'North-Central', 'North-East', 'North-West', + 'South-East', 'South-South', 'South-West', ]; /** - * Randomly returns a Nigerian state or county. + * @example 'Chief' * - * @example 'Lagos' + * @return string + */ + public static function streetPrefix() + { + return static::randomElement(static::$streetPrefix); + } + + /** + * Randomly returns a Nigerian city. + * + * @example 'Ikeja' + * + * @return string + */ + public static function cityName() + { + return static::randomElement(static::$cityName); + } + + /** + * Alias for self::state() * * @return string */ public static function county() { - return static::randomElement(static::$county); + return self::state(); } /** - * Randomly returns a Nigerian region of a state. + * Randomly returns a Nigerian state. * - * @example 'Ikeja' + * @example 'Lagos' + * + * @return string + */ + public static function state() + { + return static::randomElement(static::$state); + } + + /** + * Randomly returns a Nigerian region. + * + * @example 'South-South' * * @return string */ public static function region() { - return static::randomElement(static::$regions); + return static::randomElement(static::$region); } } diff --git a/test/Provider/en_NG/AddressTest.php b/test/Provider/en_NG/AddressTest.php index b7b9b80202..548e70ffed 100644 --- a/test/Provider/en_NG/AddressTest.php +++ b/test/Provider/en_NG/AddressTest.php @@ -2,8 +2,10 @@ declare(strict_types=1); -namespace Faker\Provider\en_NG; +namespace Faker\Test\Provider\en_NG; +use Faker\Provider\en_NG\Address; +use Faker\Provider\en_NG\Person; use Faker\Test\TestCase; /** @@ -17,17 +19,34 @@ public function testPostcodeIsNotEmptyAndIsValid(): void self::assertNotEmpty($postcode); self::assertIsString($postcode); + self::assertEquals(6, strlen($postcode)); + } + + public function testStreetNameIsAValidString(): void + { + $streetName = $this->faker->streetName(); + + self::assertNotEmpty($streetName); + self::assertIsString($streetName); + } + + public function testCityNameIsAValidString(): void + { + $city = $this->faker->city(); + + self::assertNotEmpty($city); + self::assertIsString($city); } /** - * Test the name of the Nigerian State/County + * Test the name of the Nigerian State */ - public function testCountyIsAValidString(): void + public function testStateIsAValidString(): void { - $county = $this->faker->county; + $state = $this->faker->state(); - self::assertNotEmpty($county); - self::assertIsString($county); + self::assertNotEmpty($state); + self::assertIsString($state); } /** @@ -35,7 +54,7 @@ public function testCountyIsAValidString(): void */ public function testRegionIsAValidString(): void { - $region = $this->faker->region; + $region = $this->faker->region(); self::assertNotEmpty($region); self::assertIsString($region); @@ -44,5 +63,7 @@ public function testRegionIsAValidString(): void protected function getProviders(): iterable { yield new Address($this->faker); + + yield new Person($this->faker); } }