2020 */
2121class TimezoneValidatorTestextends ConstraintValidatorTestCase
2222{
23- protected function createValidator ()
23+ protected function createValidator (): TimezoneValidator
2424 {
2525return new TimezoneValidator ();
2626 }
@@ -50,14 +50,14 @@ public function testExpectsStringCompatibleType()
5050/**
5151 * @dataProvider getValidTimezones
5252 */
53- public function testValidTimezones ($ timezone )
53+ public function testValidTimezones (string $ timezone )
5454 {
5555$ this ->validator ->validate ($ timezone ,new Timezone ());
5656
5757$ this ->assertNoViolation ();
5858 }
5959
60- public function getValidTimezones ()
60+ public function getValidTimezones (): iterable
6161 {
6262return array (
6363array ('America/Argentina/Buenos_Aires ' ),
@@ -73,7 +73,7 @@ public function getValidTimezones()
7373/**
7474 * @dataProvider getValidGroupedTimezones
7575 */
76- public function testValidGroupedTimezones ($ timezone ,$ what )
76+ public function testValidGroupedTimezones (string $ timezone ,int $ what )
7777 {
7878$ constraint =new Timezone (array (
7979'zone ' =>$ what ,
@@ -84,7 +84,7 @@ public function testValidGroupedTimezones($timezone, $what)
8484$ this ->assertNoViolation ();
8585 }
8686
87- public function getValidGroupedTimezones ()
87+ public function getValidGroupedTimezones (): iterable
8888 {
8989return array (
9090array ('America/Argentina/Cordoba ' , \DateTimeZone::AMERICA ),
@@ -106,7 +106,7 @@ public function getValidGroupedTimezones()
106106/**
107107 * @dataProvider getInvalidTimezones
108108 */
109- public function testInvalidTimezonesWithoutZone ($ timezone ,$ extraInfo )
109+ public function testInvalidTimezonesWithoutZone (string $ timezone ,string $ zoneMessage , string $ countryCodeMessage )
110110 {
111111$ constraint =new Timezone (array (
112112'message ' =>'myMessage ' ,
@@ -115,24 +115,25 @@ public function testInvalidTimezonesWithoutZone($timezone, $extraInfo)
115115$ this ->validator ->validate ($ timezone ,$ constraint );
116116
117117$ this ->buildViolation ('myMessage ' )
118- ->setParameter ('{{ extra_info }} ' ,$ extraInfo )
118+ ->setParameter ('{{ zone_message }} ' ,$ zoneMessage )
119+ ->setParameter ('{{ country_code_message }} ' ,$ countryCodeMessage )
119120 ->setCode (Timezone::NO_SUCH_TIMEZONE_ERROR )
120121 ->assertRaised ();
121122 }
122123
123- public function getInvalidTimezones ()
124+ public function getInvalidTimezones (): iterable
124125 {
125126return array (
126- array ('Buenos_Aires/Argentina/America ' ,'' ),
127- array ('Mayotte/Indian ' ,'' ),
128- array ('foobar ' ,'' ),
127+ array ('Buenos_Aires/Argentina/America ' ,'' , '' ),
128+ array ('Mayotte/Indian ' ,'' , '' ),
129+ array ('foobar ' ,'' , '' ),
129130 );
130131 }
131132
132133/**
133134 * @dataProvider getInvalidGroupedTimezones
134135 */
135- public function testInvalidGroupedTimezones ($ timezone ,$ what ,$ extraInfo )
136+ public function testInvalidGroupedTimezones (string $ timezone ,int $ what ,string $ zoneMessage , string $ countryCodeMessage )
136137 {
137138$ constraint =new Timezone (array (
138139'zone ' =>$ what ,
@@ -142,26 +143,27 @@ public function testInvalidGroupedTimezones($timezone, $what, $extraInfo)
142143$ this ->validator ->validate ($ timezone ,$ constraint );
143144
144145$ this ->buildViolation ('myMessage ' )
145- ->setParameter ('{{ extra_info }} ' ,$ extraInfo )
146+ ->setParameter ('{{ zone_message }} ' ,$ zoneMessage )
147+ ->setParameter ('{{ country_code_message }} ' ,$ countryCodeMessage )
146148 ->setCode (Timezone::NO_SUCH_TIMEZONE_IN_ZONE_ERROR )
147149 ->assertRaised ();
148150 }
149151
150- public function getInvalidGroupedTimezones ()
152+ public function getInvalidGroupedTimezones (): iterable
151153 {
152154return array (
153- array ('Antarctica/McMurdo ' , \DateTimeZone::AMERICA ,'for "AMERICA" zone ' ),
154- array ('America/Barbados ' , \DateTimeZone::ANTARCTICA ,'for "ANTARCTICA" zone ' ),
155- array ('Europe/Kiev ' , \DateTimeZone::ARCTIC ,'for "ARCTIC" zone ' ),
156- array ('Asia/Ho_Chi_Minh ' , \DateTimeZone::INDIAN ,'for "INDIAN" zone ' ),
157- array ('Asia/Ho_Chi_Minh ' , \DateTimeZone::INDIAN | \DateTimeZone::ANTARCTICA ,'for zone with identifier 260 ' ),
155+ array ('Antarctica/McMurdo ' , \DateTimeZone::AMERICA ,'at "AMERICA" zone' , ' ' ),
156+ array ('America/Barbados ' , \DateTimeZone::ANTARCTICA ,'at "ANTARCTICA" zone' , ' ' ),
157+ array ('Europe/Kiev ' , \DateTimeZone::ARCTIC ,'at "ARCTIC" zone' , ' ' ),
158+ array ('Asia/Ho_Chi_Minh ' , \DateTimeZone::INDIAN ,'at "INDIAN" zone' , ' ' ),
159+ array ('Asia/Ho_Chi_Minh ' , \DateTimeZone::INDIAN | \DateTimeZone::ANTARCTICA ,'at zone with identifier 260' , ' ' ),
158160 );
159161 }
160162
161163/**
162164 * @dataProvider getValidGroupedTimezonesByCountry
163165 */
164- public function testValidGroupedTimezonesByCountry ($ timezone ,$ what ,$ country )
166+ public function testValidGroupedTimezonesByCountry (string $ timezone ,int $ what ,string $ country )
165167 {
166168$ constraint =new Timezone (array (
167169'zone ' =>$ what ,
@@ -173,7 +175,7 @@ public function testValidGroupedTimezonesByCountry($timezone, $what, $country)
173175$ this ->assertNoViolation ();
174176 }
175177
176- public function getValidGroupedTimezonesByCountry ()
178+ public function getValidGroupedTimezonesByCountry (): iterable
177179 {
178180return array (
179181array ('America/Argentina/Cordoba ' , \DateTimeZone::PER_COUNTRY ,'AR ' ),
@@ -195,7 +197,7 @@ public function getValidGroupedTimezonesByCountry()
195197/**
196198 * @dataProvider getInvalidGroupedTimezonesByCountry
197199 */
198- public function testInvalidGroupedTimezonesByCountry ($ timezone ,$ what ,$ country ,$ extraInfo )
200+ public function testInvalidGroupedTimezonesByCountry (string $ timezone ,int $ what ,string $ country ,string $ zoneMessage , string $ countryCodeMessage )
199201 {
200202$ constraint =new Timezone (array (
201203'message ' =>'myMessage ' ,
@@ -206,23 +208,24 @@ public function testInvalidGroupedTimezonesByCountry($timezone, $what, $country,
206208$ this ->validator ->validate ($ timezone ,$ constraint );
207209
208210$ this ->buildViolation ('myMessage ' )
209- ->setParameter ('{{ extra_info }} ' ,$ extraInfo )
211+ ->setParameter ('{{ zone_message }} ' ,$ zoneMessage )
212+ ->setParameter ('{{ country_code_message }} ' ,$ countryCodeMessage )
210213 ->setCode (Timezone::NO_SUCH_TIMEZONE_IN_COUNTRY_ERROR )
211214 ->assertRaised ();
212215 }
213216
214- public function getInvalidGroupedTimezonesByCountry ()
217+ public function getInvalidGroupedTimezonesByCountry (): iterable
215218 {
216219return array (
217- array ('America/Argentina/Cordoba ' , \DateTimeZone::PER_COUNTRY ,'FR ' ,' for ISO 3166-1 country code "FR" ' ),
218- array ('America/Barbados ' , \DateTimeZone::PER_COUNTRY ,'PT ' ,' for ISO 3166-1 country code "PT" ' ),
220+ array ('America/Argentina/Cordoba ' , \DateTimeZone::PER_COUNTRY ,'FR ' ,'' , ' for ISO 3166-1 country code "FR" ' ),
221+ array ('America/Barbados ' , \DateTimeZone::PER_COUNTRY ,'PT ' ,'' , ' for ISO 3166-1 country code "PT" ' ),
219222 );
220223 }
221224
222225/**
223226 * @dataProvider getDeprecatedTimezones
224227 */
225- public function testDeprecatedTimezonesAreVaildWithBC ($ timezone )
228+ public function testDeprecatedTimezonesAreVaildWithBC (string $ timezone )
226229 {
227230$ constraint =new Timezone (array (
228231'zone ' => \DateTimeZone::ALL_WITH_BC ,
@@ -236,7 +239,7 @@ public function testDeprecatedTimezonesAreVaildWithBC($timezone)
236239/**
237240 * @dataProvider getDeprecatedTimezones
238241 */
239- public function testDeprecatedTimezonesAreInvaildWithoutBC ($ timezone )
242+ public function testDeprecatedTimezonesAreInvaildWithoutBC (string $ timezone )
240243 {
241244$ constraint =new Timezone (array (
242245'message ' =>'myMessage ' ,
@@ -245,12 +248,13 @@ public function testDeprecatedTimezonesAreInvaildWithoutBC($timezone)
245248$ this ->validator ->validate ($ timezone ,$ constraint );
246249
247250$ this ->buildViolation ('myMessage ' )
248- ->setParameter ('{{ extra_info }} ' ,'' )
251+ ->setParameter ('{{ zone_message }} ' ,'' )
252+ ->setParameter ('{{ country_code_message }} ' ,'' )
249253 ->setCode (Timezone::NO_SUCH_TIMEZONE_ERROR )
250254 ->assertRaised ();
251255 }
252256
253- public function getDeprecatedTimezones ()
257+ public function getDeprecatedTimezones (): iterable
254258 {
255259return array (
256260array ('America/Buenos_Aires ' ),