Skip to content

Commit dbd4dd4

Browse files
committed
Add validation for Nigerian states
1 parent 0b39e31 commit dbd4dd4

File tree

2 files changed

+58
-2
lines changed

2 files changed

+58
-2
lines changed

src/Base.php

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ function __construct(string $country = null)
1616
$v = Validator::make([
1717
"country" => $country,
1818
], [
19-
"country" => "nullable|string|in:US,CA,MX",
19+
"country" => "nullable|string|in:US,CA,MX,NG",
2020
]);
2121

2222
if ($v->fails()) {
@@ -148,6 +148,45 @@ protected function isAbbr($value, string $country = null): bool
148148
["abbr" => "YUC", "name" => "Yucatán"],
149149
["abbr" => "ZAC", "name" => "Zacatecas"],
150150
],
151+
"NG" => [
152+
["abbr" => "AB", "name" => "Abia"],
153+
["abbr" => "AD", "name" => "Adamawa"],
154+
["abbr" => "AK", "name" => "Akwa Ibom"],
155+
["abbr" => "AN", "name" => "Anambra"],
156+
["abbr" => "BA", "name" => "Bauchi"],
157+
["abbr" => "BY", "name" => "Bayelsa"],
158+
["abbr" => "BE", "name" => "Benue"],
159+
["abbr" => "BO", "name" => "Borno"],
160+
["abbr" => "CR", "name" => "Cross River"],
161+
["abbr" => "DE", "name" => "Delta"],
162+
["abbr" => "EB", "name" => "Ebonyi"],
163+
["abbr" => "ED", "name" => "Edo"],
164+
["abbr" => "EK", "name" => "Ekiti"],
165+
["abbr" => "EN", "name" => "Enugu"],
166+
["abbr" => "FC", "name" => "Federal Capital Territory"],
167+
["abbr" => "GO", "name" => "Gombe"],
168+
["abbr" => "IM", "name" => "Imo"],
169+
["abbr" => "JI", "name" => "Jigawa"],
170+
["abbr" => "KD", "name" => "Kaduna"],
171+
["abbr" => "KN", "name" => "Kano"],
172+
["abbr" => "KT", "name" => "Katsina"],
173+
["abbr" => "KE", "name" => "Kebbi"],
174+
["abbr" => "KO", "name" => "Kogi"],
175+
["abbr" => "LA", "name" => "Lagos"],
176+
["abbr" => "NA", "name" => "Nasarawa"],
177+
["abbr" => "NI", "name" => "Niger"],
178+
["abbr" => "OG", "name" => "Ogun"],
179+
["abbr" => "ON", "name" => "Ondo"],
180+
["abbr" => "OS", "name" => "Osun"],
181+
["abbr" => "OY", "name" => "Oyo"],
182+
["abbr" => "PL", "name" => "Plateau"],
183+
["abbr" => "RI", "name" => "Rivers"],
184+
["abbr" => "SO", "name" => "Sokoto"],
185+
["abbr" => "TA", "name" => "Taraba"],
186+
["abbr" => "YO", "name" => "Yobe"],
187+
["abbr" => "ZA", "name" => "Zamfara"],
188+
189+
]
151190
];
152191

153192
protected function getSubject(string $country = null): string
@@ -156,6 +195,7 @@ protected function getSubject(string $country = null): string
156195
{
157196
case "US":
158197
case "MX":
198+
case "NG":
159199
return "State";
160200
case "CA":
161201
return "Province";

tests/ValidatorTest.php

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,16 @@ class ValidatorTest extends TestCase
2020
'mexico' => ['AGU', 'BCN', 'BCS', 'CAM', 'CHP', 'CHH', 'CMX', 'COA', 'COL', 'DUR', 'GUA',
2121
'GRO', 'HID', 'JAL', 'MIC', 'MOR', 'MEX', 'NAY', 'NLE', 'OAX', 'PUE', 'QUE', 'ROO',
2222
'SLP', 'SIN', 'SON', 'TAB', 'TAM', 'TLA', 'VER', 'YUC', 'ZAC'],
23-
];
23+
'nigeria' => ['AB', 'AD', 'AK', 'AN', 'BA', 'BY', 'BE', 'BO', 'CR', 'DE', 'EB', 'ED', 'EK',
24+
'EN', 'FC', 'GO', 'IM', 'JI', 'KD', 'KN', 'KT', 'KE', 'KO', 'LA', 'NA', 'NI', 'OG', 'ON',
25+
'OS', 'OY', 'PL', 'RI', 'SO', 'TA', 'YO', 'ZA'],
26+
];
2427

2528
protected $names = [
2629
'usa' => ['Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California', 'Colorado', 'Connecticut', 'District Of Columbia', 'Delaware', 'Florida', 'Georgia', 'Hawaii', 'Idaho', 'Illinois', 'Indiana', 'Iowa', 'Kansas', 'Kentucky', 'Louisiana', 'Maine', 'Maryland', 'Massachusetts', 'Michigan', 'Minnesota', 'Mississippi', 'Missouri', 'Montana', 'Nebraska', 'Nevada', 'New Hampshire', 'New Jersey', 'New Mexico', 'New York', 'North Carolina', 'North Dakota', 'Ohio', 'Oklahoma', 'Oregon', 'Pennsylvania', 'Rhode Island', 'South Carolina', 'South Dakota', 'Tennessee', 'Texas', 'Utah', 'Vermont', 'Virginia', 'Washington', 'West Virginia', 'Wisconsin', 'Wyoming', 'American Samoa', 'Federated States Of Micronesia', 'Guam', 'Marshall Islands', 'Northern Mariana Islands', 'Pala', 'Puerto Rico', 'Virgin Islands'],
2730
'canada' => [ 'Alberta', 'British Columbia', 'Manitoba', 'New Brunswick', 'Newfoundland And Labrador', 'Nova Scotia', 'Northwest Territories', 'Nunavut', 'Ontario', 'Prince Edward Island', 'Quebec', 'Saskatchewan', 'Yukon'],
2831
'mexico' => [ 'Aguascalientes', 'Baja California', 'Baja California Sur', 'Campeche', 'Chiapas', 'Chihuahua', 'Coahuila', 'Colima', 'Mexico City', 'Durango', 'Guanajuato', 'Guerrero', 'Hidalgo', 'Jalisco', 'México', 'Michoacán', 'Morelos', 'Nayarit', 'Nuevo León', 'Oaxaca', 'Puebla', 'Querétaro', 'Quintana Roo', 'San Luis Potosí', 'Sinaloa', 'Sonora', 'Tabasco', 'Tamaulipas', 'Tlaxcala', 'Veracruz', 'Yucatán', 'Zacatecas'],
32+
'nigeria' => ['Abia', 'Adamawa', 'Akwa Ibom', 'Anambra', 'Bauchi', 'Bayelsa', 'Benue', 'Borno', 'Cross River', 'Delta', 'Ebonyi', 'Edo', 'Ekiti', 'Enugu', 'Federal Capital Territory', 'Gombe', 'Imo', 'Jigawa', 'Kaduna', 'Kano', 'Katsina', 'Kebbi', 'Kogi', 'Lagos', 'Nasarawa', 'Niger', 'Ogun', 'Ondo', 'Osun', 'Oyo', 'Plateau', 'Rivers', 'Sokoto', 'Taraba', 'Yobe', 'Zamfara']
2933
];
3034

3135
protected function validate($value, Rule $rule)
@@ -86,6 +90,18 @@ public function testValidatorMexico()
8690
$this->assertEquals(false, $this->validate('utah', new Full("MX")));
8791
}
8892

93+
public function testValidatorNigeria()
94+
{
95+
$this->assertEquals(true, $this->validateAbbrs('nigeria', new Abbr("NG")));
96+
$this->assertEquals(true, $this->validate('la', new Abbr("NG")));
97+
$this->assertEquals(true, $this->validate('Lagos', new Full("NG")));
98+
$this->assertEquals(true, $this->validate('lagos', new Full("NG")));
99+
100+
$this->assertEquals(false, $this->validateAbbrs('usa', new Abbr("NG")));
101+
$this->assertEquals(false, $this->validate('ut', new Abbr("NG")));
102+
$this->assertEquals(false, $this->validate('Utah', new Full("NG")));
103+
$this->assertEquals(false, $this->validate('utah', new Full("NG")));
104+
}
89105
protected function validateAbbrs($country, $rule)
90106
{
91107
$x = true;

0 commit comments

Comments
 (0)