You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by st...@apache.org on 2004/07/05 19:55:53 UTC

cvs commit: jakarta-commons/lang/src/test/org/apache/commons/lang/time DateUtilsTest.java

stevencaswell    2004/07/05 10:55:53

  Modified:    lang/src/test/org/apache/commons/lang/time
                        DateUtilsTest.java
  Log:
  added tests of rounding and truncating across daylight saving time beginning and ending
  
  Revision  Changes    Path
  1.13      +118 -0    jakarta-commons/lang/src/test/org/apache/commons/lang/time/DateUtilsTest.java
  
  Index: DateUtilsTest.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/lang/src/test/org/apache/commons/lang/time/DateUtilsTest.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- DateUtilsTest.java	18 Feb 2004 23:03:03 -0000	1.12
  +++ DateUtilsTest.java	5 Jul 2004 17:55:53 -0000	1.13
  @@ -24,6 +24,7 @@
   import java.util.Iterator;
   import java.util.Locale;
   import java.util.NoSuchElementException;
  +import java.util.TimeZone;
   
   import junit.framework.AssertionFailedError;
   import junit.framework.Test;
  @@ -40,10 +41,25 @@
   public class DateUtilsTest extends TestCase {
       DateFormat dateParser = null;
       DateFormat dateTimeParser = null;
  +    DateFormat timeZoneDateParser = null;
       Date date1 = null;
       Date date2 = null;
  +    Date date3 = null;
  +    Date date4 = null;
  +    Date date5 = null;
  +    Date date6 = null;
  +    Date date7 = null;
  +    Date date8 = null;
       Calendar cal1 = null;
       Calendar cal2 = null;
  +    Calendar cal3 = null;
  +    Calendar cal4 = null;
  +    Calendar cal5 = null;
  +    Calendar cal6 = null;
  +    Calendar cal7 = null;
  +    Calendar cal8 = null;
  +    TimeZone zone = null;
  +    TimeZone defaultZone = null;
   
       public DateUtilsTest(String name) {
           super(name);
  @@ -67,10 +83,36 @@
   
           date1 = dateTimeParser.parse("February 12, 2002 12:34:56.789");
           date2 = dateTimeParser.parse("November 18, 2001 1:23:11.321");
  +        defaultZone = TimeZone.getDefault();
  +        zone = TimeZone.getTimeZone("MET");
  +        TimeZone.setDefault(zone);
  +        dateTimeParser.setTimeZone(zone);
  +        date3 = dateTimeParser.parse("March 30, 2003 05:30:45.000");
  +        date4 = dateTimeParser.parse("March 30, 2003 01:10:00.000");
  +        date5 = dateTimeParser.parse("March 30, 2003 01:40:00.000");
  +        date6 = dateTimeParser.parse("March 30, 2003 02:10:00.000");
  +        date7 = dateTimeParser.parse("March 30, 2003 02:40:00.000");
  +        date8 = dateTimeParser.parse("October 26, 2003 05:30:45.000");
  +        dateTimeParser.setTimeZone(defaultZone);
  +        TimeZone.setDefault(defaultZone);
           cal1 = Calendar.getInstance();
           cal1.setTime(date1);
           cal2 = Calendar.getInstance();
           cal2.setTime(date2);
  +        TimeZone.setDefault(zone);
  +        cal3 = Calendar.getInstance();
  +        cal3.setTime(date3);
  +        cal4 = Calendar.getInstance();
  +        cal4.setTime(date4);
  +        cal5 = Calendar.getInstance();
  +        cal5.setTime(date5);
  +        cal6 = Calendar.getInstance();
  +        cal6.setTime(date6);
  +        cal7 = Calendar.getInstance();
  +        cal7.setTime(date7);
  +        cal8 = Calendar.getInstance();
  +        cal8.setTime(date8);
  +        TimeZone.setDefault(defaultZone);
       }
   
       protected void tearDown() throws Exception {
  @@ -206,6 +248,62 @@
               DateUtils.round(date1, -9999);
               fail();
           } catch(IllegalArgumentException ex) {}
  +        
  +        // Fix for http://issues.apache.org/bugzilla/show_bug.cgi?id=25560
  +        // Test rounding across the beginning of daylight saving time
  +        TimeZone.setDefault(zone);
  +        dateTimeParser.setTimeZone(zone);
  +        assertEquals("round MET date across DST change-over",
  +                dateTimeParser.parse("March 30, 2003 00:00:00.000"),
  +                DateUtils.round(date4, Calendar.DATE));
  +        assertEquals("round MET date across DST change-over",
  +                dateTimeParser.parse("March 30, 2003 00:00:00.000"),
  +                DateUtils.round((Object) cal4, Calendar.DATE));
  +        assertEquals("round MET date across DST change-over",
  +                dateTimeParser.parse("March 30, 2003 00:00:00.000"),
  +                DateUtils.round(date5, Calendar.DATE));
  +        assertEquals("round MET date across DST change-over",
  +                dateTimeParser.parse("March 30, 2003 00:00:00.000"),
  +                DateUtils.round((Object) cal5, Calendar.DATE));
  +        assertEquals("round MET date across DST change-over",
  +                dateTimeParser.parse("March 30, 2003 00:00:00.000"),
  +                DateUtils.round(date6, Calendar.DATE));
  +        assertEquals("round MET date across DST change-over",
  +                dateTimeParser.parse("March 30, 2003 00:00:00.000"),
  +                DateUtils.round((Object) cal6, Calendar.DATE));
  +        assertEquals("round MET date across DST change-over",
  +                dateTimeParser.parse("March 30, 2003 00:00:00.000"),
  +                DateUtils.round(date7, Calendar.DATE));
  +        assertEquals("round MET date across DST change-over",
  +                dateTimeParser.parse("March 30, 2003 00:00:00.000"),
  +                DateUtils.round((Object) cal7, Calendar.DATE));
  +        
  +        assertEquals("round MET date across DST change-over",
  +                dateTimeParser.parse("March 30, 2003 01:00:00.000"),
  +                DateUtils.round(date4, Calendar.HOUR_OF_DAY));
  +        assertEquals("round MET date across DST change-over",
  +                dateTimeParser.parse("March 30, 2003 01:00:00.000"),
  +                DateUtils.round((Object) cal4, Calendar.HOUR_OF_DAY));
  +        assertEquals("round MET date across DST change-over",
  +                dateTimeParser.parse("March 30, 2003 03:00:00.000"),
  +                DateUtils.round(date5, Calendar.HOUR_OF_DAY));
  +        assertEquals("round MET date across DST change-over",
  +                dateTimeParser.parse("March 30, 2003 03:00:00.000"),
  +                DateUtils.round((Object) cal5, Calendar.HOUR_OF_DAY));
  +        assertEquals("round MET date across DST change-over",
  +                dateTimeParser.parse("March 30, 2003 03:00:00.000"),
  +                DateUtils.round(date6, Calendar.HOUR_OF_DAY));
  +        assertEquals("round MET date across DST change-over",
  +                dateTimeParser.parse("March 30, 2003 03:00:00.000"),
  +                DateUtils.round((Object) cal6, Calendar.HOUR_OF_DAY));
  +        assertEquals("round MET date across DST change-over",
  +                dateTimeParser.parse("March 30, 2003 04:00:00.000"),
  +                DateUtils.round(date7, Calendar.HOUR_OF_DAY));
  +        assertEquals("round MET date across DST change-over",
  +                dateTimeParser.parse("March 30, 2003 04:00:00.000"),
  +                DateUtils.round((Object) cal7, Calendar.HOUR_OF_DAY));
  +        TimeZone.setDefault(defaultZone);
  +        dateTimeParser.setTimeZone(defaultZone);
       }
   
       /**
  @@ -323,6 +421,26 @@
               DateUtils.truncate("", Calendar.SECOND);
               fail();
           } catch (ClassCastException ex) {}
  +
  +        // Fix for http://issues.apache.org/bugzilla/show_bug.cgi?id=25560
  +        // Test truncate across beginning of daylight saving time
  +        TimeZone.setDefault(zone);
  +        dateTimeParser.setTimeZone(zone);
  +        assertEquals("truncate MET date across DST change-over",
  +                dateTimeParser.parse("March 30, 2003 00:00:00.000"),
  +                DateUtils.truncate(date3, Calendar.DATE));
  +        assertEquals("truncate MET date across DST change-over",
  +                dateTimeParser.parse("March 30, 2003 00:00:00.000"),
  +                DateUtils.truncate((Object) cal3, Calendar.DATE));
  +        // Test truncate across end of daylight saving time
  +        assertEquals("truncate MET date across DST change-over",
  +                dateTimeParser.parse("October 26, 2003 00:00:00.000"),
  +                DateUtils.truncate(date8, Calendar.DATE));
  +        assertEquals("truncate MET date across DST change-over",
  +                dateTimeParser.parse("October 26, 2003 00:00:00.000"),
  +                DateUtils.truncate((Object) cal8, Calendar.DATE));
  +        TimeZone.setDefault(defaultZone);
  +        dateTimeParser.setTimeZone(defaultZone);
       }
   
       // TODO: Decide whether this code is removed or goes into 2.1
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org