@@ -185,6 +185,114 @@ public function testCastIntlTimeZoneWithoutDST()
185185 id: " $ expectedID"
186186 raw_offset: $ expectedRawOffset
187187}
188+ EOTXT ;
189+ $ this ->assertDumpEquals ($ expected , $ var );
190+ }
191+
192+ public function testCastIntlCalendar ()
193+ {
194+ $ var = \IntlCalendar::createInstance ('America/Los_Angeles ' , 'en ' );
195+
196+ $ expectedType = $ var ->getType ();
197+ $ expectedFirstDayOfWeek = $ var ->getFirstDayOfWeek ();
198+ $ expectedMinimalDaysInFirstWeek = $ var ->getMinimalDaysInFirstWeek ();
199+ $ expectedRepeatedWallTimeOption = $ var ->getRepeatedWallTimeOption ();
200+ $ expectedSkippedWallTimeOption = $ var ->getSkippedWallTimeOption ();
201+ $ expectedTime = $ var ->getTime ().'.0 ' ;
202+ $ expectedInDaylightTime = $ var ->inDaylightTime () ? 'true ' : 'false ' ;
203+ $ expectedIsLenient = $ var ->isLenient () ? 'true ' : 'false ' ;
204+
205+ $ expectedTimeZone = $ var ->getTimeZone ();
206+ $ expectedTimeZoneDisplayName = $ expectedTimeZone ->getDisplayName ();
207+ $ expectedTimeZoneID = $ expectedTimeZone ->getID ();
208+ $ expectedTimeZoneRawOffset = $ expectedTimeZone ->getRawOffset ();
209+ $ expectedTimeZoneDSTSavings = $ expectedTimeZone ->getDSTSavings ();
210+
211+ $ expected = <<<EOTXT
212+ IntlGregorianCalendar {
213+ type: " $ expectedType"
214+ first_day_of_week: $ expectedFirstDayOfWeek
215+ minimal_days_in_first_week: $ expectedMinimalDaysInFirstWeek
216+ repeated_wall_time_option: $ expectedRepeatedWallTimeOption
217+ skipped_wall_time_option: $ expectedSkippedWallTimeOption
218+ time: $ expectedTime
219+ in_daylight_time: $ expectedInDaylightTime
220+ is_lenient: $ expectedIsLenient
221+ time_zone: IntlTimeZone {
222+ display_name: " $ expectedTimeZoneDisplayName"
223+ id: " $ expectedTimeZoneID"
224+ raw_offset: $ expectedTimeZoneRawOffset
225+ dst_savings: $ expectedTimeZoneDSTSavings
226+ }
227+ }
228+ EOTXT ;
229+ $ this ->assertDumpEquals ($ expected , $ var );
230+ }
231+
232+ public function testCastDateFormatter ()
233+ {
234+ $ var = new \IntlDateFormatter ('en ' , \IntlDateFormatter::TRADITIONAL , \IntlDateFormatter::TRADITIONAL );
235+
236+ $ expectedLocale = $ var ->getLocale ();
237+ $ expectedPattern = $ var ->getPattern ();
238+ $ expectedCalendar = $ var ->getCalendar ();
239+ $ expectedTimeZoneId = $ var ->getTimeZoneId ();
240+ $ expectedTimeType = $ var ->getTimeType ();
241+ $ expectedDateType = $ var ->getDateType ();
242+
243+ $ expectedCalendarObject = $ var ->getCalendarObject ();
244+ $ expectedCalendarObjectType = $ expectedCalendarObject ->getType ();
245+ $ expectedCalendarObjectFirstDayOfWeek = $ expectedCalendarObject ->getFirstDayOfWeek ();
246+ $ expectedCalendarObjectMinimalDaysInFirstWeek = $ expectedCalendarObject ->getMinimalDaysInFirstWeek ();
247+ $ expectedCalendarObjectRepeatedWallTimeOption = $ expectedCalendarObject ->getRepeatedWallTimeOption ();
248+ $ expectedCalendarObjectSkippedWallTimeOption = $ expectedCalendarObject ->getSkippedWallTimeOption ();
249+ $ expectedCalendarObjectTime = $ expectedCalendarObject ->getTime ().'.0 ' ;
250+ $ expectedCalendarObjectInDaylightTime = $ expectedCalendarObject ->inDaylightTime () ? 'true ' : 'false ' ;
251+ $ expectedCalendarObjectIsLenient = $ expectedCalendarObject ->isLenient () ? 'true ' : 'false ' ;
252+
253+ $ expectedCalendarObjectTimeZone = $ expectedCalendarObject ->getTimeZone ();
254+ $ expectedCalendarObjectTimeZoneDisplayName = $ expectedCalendarObjectTimeZone ->getDisplayName ();
255+ $ expectedCalendarObjectTimeZoneID = $ expectedCalendarObjectTimeZone ->getID ();
256+ $ expectedCalendarObjectTimeZoneRawOffset = $ expectedCalendarObjectTimeZone ->getRawOffset ();
257+ $ expectedCalendarObjectTimeZoneDSTSavings = $ expectedCalendarObjectTimeZone ->getDSTSavings ();
258+
259+ $ expectedTimeZone = $ var ->getTimeZone ();
260+ $ expectedTimeZoneDisplayName = $ expectedTimeZone ->getDisplayName ();
261+ $ expectedTimeZoneID = $ expectedTimeZone ->getID ();
262+ $ expectedTimeZoneRawOffset = $ expectedTimeZone ->getRawOffset ();
263+ $ expectedTimeZoneDSTSavings = $ expectedTimeZone ->getDSTSavings ();
264+
265+ $ expected = <<<EOTXT
266+ IntlDateFormatter {
267+ locale: " $ expectedLocale"
268+ pattern: " $ expectedPattern"
269+ calendar: $ expectedCalendar
270+ time_zone_id: " $ expectedTimeZoneId"
271+ time_type: $ expectedTimeType
272+ date_type: $ expectedDateType
273+ calendar_object: IntlGregorianCalendar {
274+ type: " $ expectedCalendarObjectType"
275+ first_day_of_week: $ expectedCalendarObjectFirstDayOfWeek
276+ minimal_days_in_first_week: $ expectedCalendarObjectMinimalDaysInFirstWeek
277+ repeated_wall_time_option: $ expectedCalendarObjectRepeatedWallTimeOption
278+ skipped_wall_time_option: $ expectedCalendarObjectSkippedWallTimeOption
279+ time: $ expectedCalendarObjectTime
280+ in_daylight_time: $ expectedCalendarObjectInDaylightTime
281+ is_lenient: $ expectedCalendarObjectIsLenient
282+ time_zone: IntlTimeZone {
283+ display_name: " $ expectedCalendarObjectTimeZoneDisplayName"
284+ id: " $ expectedCalendarObjectTimeZoneID"
285+ raw_offset: $ expectedCalendarObjectTimeZoneRawOffset
286+ dst_savings: $ expectedCalendarObjectTimeZoneDSTSavings
287+ }
288+ }
289+ time_zone: IntlTimeZone {
290+ display_name: " $ expectedTimeZoneDisplayName"
291+ id: " $ expectedTimeZoneID"
292+ raw_offset: $ expectedTimeZoneRawOffset
293+ dst_savings: $ expectedTimeZoneDSTSavings
294+ }
295+ }
188296EOTXT ;
189297 $ this ->assertDumpEquals ($ expected , $ var );
190298 }
0 commit comments