Clover Coverage Report
Coverage timestamp: Fri May 9 2008 10:54:27 EST
106   194   9   17.67
0   141   0.08   6
6     1.5  
1    
 
  TestDateTools       Line # 27 106 9 97.3% 0.97321427
 
  (5)
 
1    package org.apache.lucene.document;
2   
3    import java.text.ParseException;
4    import java.text.SimpleDateFormat;
5    import java.util.Calendar;
6    import java.util.Date;
7    import java.util.TimeZone;
8   
9    import junit.framework.TestCase;
10   
11    /**
12    * Copyright 2004 The Apache Software Foundation
13    *
14    * Licensed under the Apache License, Version 2.0 (the "License");
15    * you may not use this file except in compliance with the License.
16    * You may obtain a copy of the License at
17    *
18    * http://www.apache.org/licenses/LICENSE-2.0
19    *
20    * Unless required by applicable law or agreed to in writing, software
21    * distributed under the License is distributed on an "AS IS" BASIS,
22    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
23    * See the License for the specific language governing permissions and
24    * limitations under the License.
25    */
26   
 
27    public class TestDateTools extends TestCase {
28   
 
29  1 toggle public void testStringToDate() throws ParseException {
30   
31  1 Date d = null;
32  1 d = DateTools.stringToDate("2004");
33  1 assertEquals("2004-01-01 00:00:00:000", isoFormat(d));
34  1 d = DateTools.stringToDate("20040705");
35  1 assertEquals("2004-07-05 00:00:00:000", isoFormat(d));
36  1 d = DateTools.stringToDate("200407050910");
37  1 assertEquals("2004-07-05 09:10:00:000", isoFormat(d));
38  1 d = DateTools.stringToDate("20040705091055990");
39  1 assertEquals("2004-07-05 09:10:55:990", isoFormat(d));
40   
41  1 try {
42  1 d = DateTools.stringToDate("97"); // no date
43  0 fail();
44    } catch(ParseException e) { /* expected exception */ }
45  1 try {
46  1 d = DateTools.stringToDate("200401011235009999"); // no date
47  0 fail();
48    } catch(ParseException e) { /* expected exception */ }
49  1 try {
50  1 d = DateTools.stringToDate("aaaa"); // no date
51  0 fail();
52    } catch(ParseException e) { /* expected exception */ }
53   
54    }
55   
 
56  1 toggle public void testStringtoTime() throws ParseException {
57  1 long time = DateTools.stringToTime("197001010000");
58  1 Calendar cal = Calendar.getInstance();
59  1 cal.set(1970, 0, 1, // year=1970, month=january, day=1
60    0, 0, 0); // hour, minute, second
61  1 cal.set(Calendar.MILLISECOND, 0);
62  1 cal.setTimeZone(TimeZone.getTimeZone("GMT"));
63  1 assertEquals(cal.getTime().getTime(), time);
64  1 cal.set(1980, 1, 2, // year=1980, month=february, day=2
65    11, 5, 0); // hour, minute, second
66  1 cal.set(Calendar.MILLISECOND, 0);
67  1 time = DateTools.stringToTime("198002021105");
68  1 assertEquals(cal.getTime().getTime(), time);
69    }
70   
 
71  1 toggle public void testDateAndTimetoString() throws ParseException {
72  1 Calendar cal = Calendar.getInstance();
73  1 cal.setTimeZone(TimeZone.getTimeZone("GMT"));
74  1 cal.set(2004, 1, 3, // year=2004, month=february(!), day=3
75    22, 8, 56); // hour, minute, second
76  1 cal.set(Calendar.MILLISECOND, 333);
77   
78  1 String dateString;
79  1 dateString = DateTools.dateToString(cal.getTime(), DateTools.Resolution.YEAR);
80  1 assertEquals("2004", dateString);
81  1 assertEquals("2004-01-01 00:00:00:000", isoFormat(DateTools.stringToDate(dateString)));
82   
83  1 dateString = DateTools.dateToString(cal.getTime(), DateTools.Resolution.MONTH);
84  1 assertEquals("200402", dateString);
85  1 assertEquals("2004-02-01 00:00:00:000", isoFormat(DateTools.stringToDate(dateString)));
86   
87  1 dateString = DateTools.dateToString(cal.getTime(), DateTools.Resolution.DAY);
88  1 assertEquals("20040203", dateString);
89  1 assertEquals("2004-02-03 00:00:00:000", isoFormat(DateTools.stringToDate(dateString)));
90   
91  1 dateString = DateTools.dateToString(cal.getTime(), DateTools.Resolution.HOUR);
92  1 assertEquals("2004020322", dateString);
93  1 assertEquals("2004-02-03 22:00:00:000", isoFormat(DateTools.stringToDate(dateString)));
94   
95  1 dateString = DateTools.dateToString(cal.getTime(), DateTools.Resolution.MINUTE);
96  1 assertEquals("200402032208", dateString);
97  1 assertEquals("2004-02-03 22:08:00:000", isoFormat(DateTools.stringToDate(dateString)));
98   
99  1 dateString = DateTools.dateToString(cal.getTime(), DateTools.Resolution.SECOND);
100  1 assertEquals("20040203220856", dateString);
101  1 assertEquals("2004-02-03 22:08:56:000", isoFormat(DateTools.stringToDate(dateString)));
102   
103  1 dateString = DateTools.dateToString(cal.getTime(), DateTools.Resolution.MILLISECOND);
104  1 assertEquals("20040203220856333", dateString);
105  1 assertEquals("2004-02-03 22:08:56:333", isoFormat(DateTools.stringToDate(dateString)));
106   
107    // date before 1970:
108  1 cal.set(1961, 2, 5, // year=1961, month=march(!), day=5
109    23, 9, 51); // hour, minute, second
110  1 cal.set(Calendar.MILLISECOND, 444);
111  1 dateString = DateTools.dateToString(cal.getTime(), DateTools.Resolution.MILLISECOND);
112  1 assertEquals("19610305230951444", dateString);
113  1 assertEquals("1961-03-05 23:09:51:444", isoFormat(DateTools.stringToDate(dateString)));
114   
115  1 dateString = DateTools.dateToString(cal.getTime(), DateTools.Resolution.HOUR);
116  1 assertEquals("1961030523", dateString);
117  1 assertEquals("1961-03-05 23:00:00:000", isoFormat(DateTools.stringToDate(dateString)));
118   
119    // timeToString:
120  1 cal.set(1970, 0, 1, // year=1970, month=january, day=1
121    0, 0, 0); // hour, minute, second
122  1 cal.set(Calendar.MILLISECOND, 0);
123  1 dateString = DateTools.timeToString(cal.getTime().getTime(),
124    DateTools.Resolution.MILLISECOND);
125  1 assertEquals("19700101000000000", dateString);
126   
127  1 cal.set(1970, 0, 1, // year=1970, month=january, day=1
128    1, 2, 3); // hour, minute, second
129  1 cal.set(Calendar.MILLISECOND, 0);
130  1 dateString = DateTools.timeToString(cal.getTime().getTime(),
131    DateTools.Resolution.MILLISECOND);
132  1 assertEquals("19700101010203000", dateString);
133    }
134   
 
135  1 toggle public void testRound() {
136  1 Calendar cal = Calendar.getInstance();
137  1 cal.setTimeZone(TimeZone.getTimeZone("GMT"));
138  1 cal.set(2004, 1, 3, // year=2004, month=february(!), day=3
139    22, 8, 56); // hour, minute, second
140  1 cal.set(Calendar.MILLISECOND, 333);
141  1 Date date = cal.getTime();
142  1 assertEquals("2004-02-03 22:08:56:333", isoFormat(date));
143   
144  1 Date dateYear = DateTools.round(date, DateTools.Resolution.YEAR);
145  1 assertEquals("2004-01-01 00:00:00:000", isoFormat(dateYear));
146   
147  1 Date dateMonth = DateTools.round(date, DateTools.Resolution.MONTH);
148  1 assertEquals("2004-02-01 00:00:00:000", isoFormat(dateMonth));
149   
150  1 Date dateDay = DateTools.round(date, DateTools.Resolution.DAY);
151  1 assertEquals("2004-02-03 00:00:00:000", isoFormat(dateDay));
152   
153  1 Date dateHour = DateTools.round(date, DateTools.Resolution.HOUR);
154  1 assertEquals("2004-02-03 22:00:00:000", isoFormat(dateHour));
155   
156  1 Date dateMinute = DateTools.round(date, DateTools.Resolution.MINUTE);
157  1 assertEquals("2004-02-03 22:08:00:000", isoFormat(dateMinute));
158   
159  1 Date dateSecond = DateTools.round(date, DateTools.Resolution.SECOND);
160  1 assertEquals("2004-02-03 22:08:56:000", isoFormat(dateSecond));
161   
162  1 Date dateMillisecond = DateTools.round(date, DateTools.Resolution.MILLISECOND);
163  1 assertEquals("2004-02-03 22:08:56:333", isoFormat(dateMillisecond));
164   
165    // long parameter:
166  1 long dateYearLong = DateTools.round(date.getTime(), DateTools.Resolution.YEAR);
167  1 assertEquals("2004-01-01 00:00:00:000", isoFormat(new Date(dateYearLong)));
168