public void testTimeZoneHelperFromXVCalendarBoston() throws Exception { Property tz = new Property("TZ", "-05"); List<Property> dayLightList = new ArrayList<Property>(); dayLightList.add(new Property("DAYLIGHT", "TRUE;-04;20070311T020000;20071104T020000;;")); dayLightList.add(new Property("DAYLIGHT", "TRUE;-04;20080309T020000;20081102T020000;;")); dayLightList.add(new Property("DAYLIGHT", "TRUE;-04;20090308T020000;20091101T020000;;")); TimeZoneHelper vctz = new TimeZoneHelper(tz, dayLightList); List<TimeZoneTransition> transitions = vctz.getTransitions(); assertEquals(6, transitions.size()); assertEquals(-18000000, vctz.getBasicOffset()); for (TimeZoneTransition transition : transitions) { assertEquals("", transition.getName()); } assertEquals(-14400000, transitions.get(0).getOffset()); assertEquals(1173596400000L, transitions.get(0).getTime()); assertEquals(-18000000, transitions.get(1).getOffset()); assertEquals(1194159600000L, transitions.get(1).getTime()); assertEquals(-14400000, transitions.get(2).getOffset()); assertEquals(1205046000000L, transitions.get(2).getTime()); assertEquals(-18000000, transitions.get(3).getOffset()); assertEquals(1225609200000L, transitions.get(3).getTime()); assertEquals(-14400000, transitions.get(4).getOffset()); assertEquals(1236495600000L, transitions.get(4).getTime()); assertEquals(-18000000, transitions.get(5).getOffset()); assertEquals(1257058800000L, transitions.get(5).getTime()); assertEquals("America/New_York", vctz.toID()); // First run assertEquals("America/New_York", vctz.toID()); // Second run (cached) }
public void testTimeZoneHelperFromICalendarBerlinUntil() throws Exception { VTimezone vtz = new VTimezone(); vtz.addProperty("TZID", "Berlino"); // No hint TzStandardComponent standardC = new TzStandardComponent(); standardC.addProperty("TZOFFSETFROM", "+0200"); standardC.addProperty("TZOFFSETTO", "+0100"); standardC.addProperty("TZNAME", "CET"); standardC.addProperty("DTSTART", "19701025T030000"); standardC.addProperty( "RRULE", "FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=10;UNTIL=20091231T000113Z"); TzDaylightComponent dayLightC = new TzDaylightComponent(); dayLightC.addProperty("TZOFFSETFROM", "+0100"); dayLightC.addProperty("TZOFFSETTO", "+0200"); dayLightC.addProperty("TZNAME", "CEST"); dayLightC.addProperty("DTSTART", "19700329T020000"); dayLightC.addProperty( "RRULE", "FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=3;UNTIL=20091231T000113Z"); vtz.addStandardc(standardC); vtz.addDaylightc(dayLightC); TimeZoneHelper vctz = new TimeZoneHelper( vtz, 1167609600000L, // 01 Jan 2007 @ 00:00:00 UTC 1324771200000L); // 25 Dec 2011 @ 00:00:00 UTC List<TimeZoneTransition> transitions = vctz.getTransitions(); assertEquals("Berlino", vctz.getName()); assertEquals(6, transitions.size()); assertEquals(3600000, vctz.getBasicOffset()); boolean dst = true; for (TimeZoneTransition transition : transitions) { if (dst) { assertEquals("CEST", transition.getName()); } else { assertEquals("CET", transition.getName()); } dst = !dst; } assertEquals(7200000, transitions.get(0).getOffset()); assertEquals(1174784400000L, transitions.get(0).getTime()); assertEquals(3600000, transitions.get(1).getOffset()); assertEquals(1193533200000L, transitions.get(1).getTime()); assertEquals(7200000, transitions.get(2).getOffset()); assertEquals(1206838800000L, transitions.get(2).getTime()); assertEquals(3600000, transitions.get(3).getOffset()); assertEquals(1224982800000L, transitions.get(3).getTime()); assertEquals(7200000, transitions.get(4).getOffset()); assertEquals(1238288400000L, transitions.get(4).getTime()); assertEquals(3600000, transitions.get(5).getOffset()); assertEquals(1256432400000L, transitions.get(5).getTime()); assertEquals("Europe/Berlin", vctz.toID()); // First run assertEquals("Europe/Berlin", vctz.toID()); // Second run (cached) }
public void testTimeZoneHelperFromOlsonIDBogota() { TimeZoneHelper vctz = new TimeZoneHelper( "America/Bogota", 1167609600000L, // 01 Jan 2007 @ 00:00:00 UTC 1349049600000L); // 01 Oct 2012 @ 00:00:00 UTC List<TimeZoneTransition> transitions = vctz.getTransitions(); assertEquals("America/Bogota", vctz.toID()); assertEquals(-18000000, vctz.getBasicOffset()); assertEquals(0, transitions.size()); }
public void testTimeZoneHelperFromOlsonIDCanberra() { TimeZoneHelper vctz = new TimeZoneHelper( "Australia/Canberra", 1167609600000L, // 01 Jan 2007 @ 00:00:00 UTC 1349049600000L); // 01 Oct 2012 @ 00:00:00 UTC List<TimeZoneTransition> transitions = vctz.getTransitions(); assertEquals("Australia/Canberra", vctz.toID()); assertEquals(36000000, vctz.getBasicOffset()); assertEquals("Australia/Canberra", transitions.get(0).getName()); assertEquals(39600000, transitions.get(0).getOffset()); assertEquals(1162051200000L, transitions.get(0).getTime()); assertEquals("Australia/Canberra", transitions.get(1).getName()); assertEquals(36000000, transitions.get(1).getOffset()); assertEquals(1174752000000L, transitions.get(1).getTime()); }
public void testTimeZoneHelperFromOlsonIDRome() { TimeZoneHelper vctz = new TimeZoneHelper( "Europe/Rome", 1167609600000L, // 01 Jan 2007 @ 00:00:00 UTC 1349049600000L); // 01 Oct 2012 @ 00:00:00 UTC List<TimeZoneTransition> transitions = vctz.getTransitions(); assertEquals("Europe/Rome", vctz.toID()); assertEquals(3600000, vctz.getBasicOffset()); assertEquals("Europe/Rome", transitions.get(0).getName()); assertEquals(7200000, transitions.get(0).getOffset()); assertEquals(1174784400000L, transitions.get(0).getTime()); assertEquals("Europe/Rome", transitions.get(1).getName()); assertEquals(3600000, transitions.get(1).getOffset()); assertEquals(1193533200000L, transitions.get(1).getTime()); }
// --------------------------------------------------------------- Test cases public void testTimeZoneHelperFromXVCalendarRome() throws Exception { Property tz = new Property("TZ", "+01"); List<Property> dayLightList = new ArrayList<Property>(); dayLightList.add(new Property("DAYLIGHT", "TRUE;+02;20070325T010000Z;20071028T010000Z;;")); dayLightList.add(new Property("DAYLIGHT", "TRUE;+02;20080330T010000Z;20081026T010000Z;;")); dayLightList.add(new Property("DAYLIGHT", "TRUE;+02;20090329T010000Z;20091025T010000Z;;")); dayLightList.add(new Property("DAYLIGHT", "TRUE;+02;20100328T010000Z;20101031T010000Z;;")); dayLightList.add(new Property("DAYLIGHT", "TRUE;+02;20110327T010000Z;20111030T010000Z;;")); TimeZoneHelper vctz = new TimeZoneHelper(tz, dayLightList); List<TimeZoneTransition> transitions = vctz.getTransitions(); assertEquals(10, transitions.size()); assertEquals(3600000, vctz.getBasicOffset()); for (TimeZoneTransition transition : transitions) { assertEquals("", transition.getName()); } assertEquals(7200000, transitions.get(0).getOffset()); assertEquals(1174784400000L, transitions.get(0).getTime()); assertEquals(3600000, transitions.get(1).getOffset()); assertEquals(1193533200000L, transitions.get(1).getTime()); assertEquals(7200000, transitions.get(2).getOffset()); assertEquals(1206838800000L, transitions.get(2).getTime()); assertEquals(3600000, transitions.get(3).getOffset()); assertEquals(1224982800000L, transitions.get(3).getTime()); assertEquals(7200000, transitions.get(4).getOffset()); assertEquals(1238288400000L, transitions.get(4).getTime()); assertEquals(3600000, transitions.get(5).getOffset()); assertEquals(1256432400000L, transitions.get(5).getTime()); assertEquals(7200000, transitions.get(6).getOffset()); assertEquals(1269738000000L, transitions.get(6).getTime()); assertEquals(3600000, transitions.get(7).getOffset()); assertEquals(1288486800000L, transitions.get(7).getTime()); assertEquals(7200000, transitions.get(8).getOffset()); assertEquals(1301187600000L, transitions.get(8).getTime()); assertEquals(3600000, transitions.get(9).getOffset()); assertEquals(1319936400000L, transitions.get(9).getTime()); assertEquals("Europe/Berlin", vctz.toID()); // First run assertEquals("Europe/Berlin", vctz.toID()); // Second run (cached) }