]> gitweb.fperrin.net Git - Dictionary.git/blob - jars/icu4j-4_2_1-src/src/com/ibm/icu/dev/eclipse/plugins/com.ibm.icu.base.tests/src/com/ibm/icu/tests/DateFormatTest.java
icu4jsrc
[Dictionary.git] / jars / icu4j-4_2_1-src / src / com / ibm / icu / dev / eclipse / plugins / com.ibm.icu.base.tests / src / com / ibm / icu / tests / DateFormatTest.java
1 /*\r
2  *******************************************************************************\r
3  * Copyright (C) 2006, International Business Machines Corporation and         *\r
4  * others. All Rights Reserved.                                                *\r
5  *******************************************************************************\r
6  */\r
7 \r
8 package com.ibm.icu.tests;\r
9 \r
10 import java.text.FieldPosition;\r
11 import java.text.ParseException;\r
12 import java.text.ParsePosition;\r
13 import java.util.Date;\r
14 import java.util.Locale;\r
15 \r
16 import com.ibm.icu.text.DateFormat;\r
17 import com.ibm.icu.text.NumberFormat;\r
18 import com.ibm.icu.util.Calendar;\r
19 import com.ibm.icu.util.TimeZone;\r
20 import com.ibm.icu.util.ULocale;\r
21 \r
22 public class DateFormatTest extends ICUTestCase {\r
23     private Calendar aCal;\r
24     private Calendar anESTCal;\r
25     private Date aDate;\r
26     private String aDateString;\r
27     private String aTimeString;\r
28     private String anESTTimeString;\r
29     private String aDateTimeString;\r
30     private String aShortDateTimeString;\r
31     private String aDefaultESTDateTimeString;\r
32     private DateFormat aDF;\r
33     private StringBuffer aBuf;\r
34     private FieldPosition anFP;\r
35         \r
36     protected void setUp() throws Exception {\r
37         super.setUp();\r
38                 \r
39         java.util.GregorianCalendar gcal = new java.util.GregorianCalendar();\r
40         gcal.clear();\r
41         gcal.set(java.util.GregorianCalendar.YEAR, 1990);\r
42         gcal.set(java.util.GregorianCalendar.MONTH, java.util.GregorianCalendar.DECEMBER);\r
43         gcal.set(java.util.GregorianCalendar.DATE, 17);\r
44         gcal.set(java.util.GregorianCalendar.HOUR, 5);\r
45         gcal.set(java.util.GregorianCalendar.MINUTE, 17);\r
46         aCal = new Calendar(gcal);\r
47         anESTCal = Calendar.getInstance();\r
48         anESTCal.setTimeZone(TimeZone.getTimeZone("EST"));\r
49         aDate = gcal.getTime();\r
50         aDateString = "Dec 17, 1990"; // medium -- the default\r
51         aTimeString = "5:17:00 AM"; // medium\r
52         anESTTimeString = "8:17:00 AM";\r
53         aDateTimeString = "Dec 17, 1990 5:17:00 AM"; // medium, medium\r
54         aDefaultESTDateTimeString = "Dec 17, 1990 8:17 AM"; // medium, short -- the default\r
55         aShortDateTimeString = "12/17/90 5:17 AM"; // short, short\r
56         aDF = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM, Locale.US);\r
57         aBuf = new StringBuffer();\r
58         anFP = new FieldPosition(0);\r
59     }\r
60 \r
61     /*\r
62      * Test method for 'com.ibm.icu.text.DateFormat.hashCode()'\r
63      */\r
64     public final void testHashCode() {\r
65         DateFormat df = DateFormat.getInstance();\r
66         DateFormat eq = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);\r
67         testEHCS(df, eq, aDF);\r
68     }\r
69 \r
70     /*\r
71      * Test method for 'com.ibm.icu.text.DateFormat.DateFormat(DateFormat)'\r
72      */\r
73     public final void testDateFormat() {\r
74         DateFormat df = new DateFormat(java.text.DateFormat.getInstance());\r
75         assertEquals(DateFormat.getInstance(), df);\r
76     }\r
77 \r
78     private void assertEqualDateString(StringBuffer buf) {\r
79         assertEquals(aDateTimeString, buf.toString());\r
80     }\r
81         \r
82     private void assertEqualDateString(String str) {\r
83         assertEquals(aDateTimeString, str);\r
84     }\r
85         \r
86     /*\r
87      * Test method for 'com.ibm.icu.text.DateFormat.format(Object, StringBuffer, FieldPosition)'\r
88      */\r
89     public final void testFormatObjectStringBufferFieldPosition() {\r
90         assertEqualDateString(aDF.format(aDate, aBuf, anFP));\r
91     }\r
92 \r
93     /*\r
94      * Test method for 'com.ibm.icu.text.DateFormat.format(Calendar, StringBuffer, FieldPosition)'\r
95      */\r
96     public final void testFormatCalendarStringBufferFieldPosition() {\r
97         assertEqualDateString(aDF.format(aCal, aBuf, anFP));\r
98     }\r
99 \r
100     /*\r
101      * Test method for 'com.ibm.icu.text.DateFormat.format(Date, StringBuffer, FieldPosition)'\r
102      */\r
103     public final void testFormatDateStringBufferFieldPosition() {\r
104         assertEqualDateString(aDF.format(aDate, aBuf, anFP));\r
105     }\r
106 \r
107     /*\r
108      * Test method for 'com.ibm.icu.text.DateFormat.format(Date)'\r
109      */\r
110     public final void testFormatDate() {\r
111         assertEqualDateString(aDF.format(aDate));\r
112     }\r
113 \r
114     /*\r
115      * Test method for 'com.ibm.icu.text.DateFormat.parse(String)'\r
116      */\r
117     public final void testParseString() throws Exception {\r
118         assertEquals(aDate, aDF.parse(aDateTimeString));\r
119     }\r
120 \r
121     /*\r
122      * Test method for 'com.ibm.icu.text.DateFormat.parse(String, Calendar, ParsePosition)'\r
123      */\r
124     public final void testParseStringCalendarParsePosition() {\r
125         aDF.parse(aDateTimeString, aCal, new ParsePosition(0));\r
126         assertEquals(aDate, aCal.getTime());\r
127     }\r
128 \r
129     /*\r
130      * Test method for 'com.ibm.icu.text.DateFormat.parse(String, ParsePosition)'\r
131      */\r
132     public final void testParseStringParsePosition() {\r
133         assertEquals(aDate, aDF.parse(aDateTimeString, new ParsePosition(0)));\r
134     }\r
135 \r
136     /*\r
137      * Test method for 'com.ibm.icu.text.DateFormat.parseObject(String, ParsePosition)'\r
138      */\r
139     public final void testParseObjectStringParsePosition() {\r
140         assertEquals(aDate, aDF.parseObject(aDateTimeString, new ParsePosition(0)));\r
141     }\r
142 \r
143     /*\r
144      * Test method for 'com.ibm.icu.text.DateFormat.getTimeInstance()'\r
145      */\r
146     public final void testGetTimeInstance() {\r
147         assertEquals(aTimeString, DateFormat.getTimeInstance().format(aDate));\r
148     }\r
149 \r
150     /*\r
151      * Test method for 'com.ibm.icu.text.DateFormat.getTimeInstance(int)'\r
152      */\r
153     public final void testGetTimeInstanceInt() {\r
154         assertEquals(aTimeString, DateFormat.getTimeInstance(DateFormat.MEDIUM).format(aDate));\r
155     }\r
156 \r
157     /*\r
158      * Test method for 'com.ibm.icu.text.DateFormat.getTimeInstance(int, Locale)'\r
159      */\r
160     public final void testGetTimeInstanceIntLocale() {\r
161         assertEquals(aTimeString, DateFormat.getTimeInstance(DateFormat.MEDIUM, Locale.US).format(aDate));\r
162     }\r
163 \r
164     /*\r
165      * Test method for 'com.ibm.icu.text.DateFormat.getTimeInstance(int, ULocale)'\r
166      */\r
167     public final void testGetTimeInstanceIntULocale() {\r
168         assertEquals(aTimeString, DateFormat.getTimeInstance(DateFormat.MEDIUM, ULocale.US).format(aDate));\r
169     }\r
170 \r
171     /*\r
172      * Test method for 'com.ibm.icu.text.DateFormat.getDateInstance()'\r
173      */\r
174     public final void testGetDateInstance() {\r
175         assertEquals(aDateString, DateFormat.getDateInstance().format(aDate));\r
176     }\r
177 \r
178     /*\r
179      * Test method for 'com.ibm.icu.text.DateFormat.getDateInstance(int)'\r
180      */\r
181     public final void testGetDateInstanceInt() {\r
182         assertEquals(aDateString, DateFormat.getDateInstance(DateFormat.MEDIUM).format(aDate));\r
183     }\r
184 \r
185     /*\r
186      * Test method for 'com.ibm.icu.text.DateFormat.getDateInstance(int, Locale)'\r
187      */\r
188     public final void testGetDateInstanceIntLocale() {\r
189         assertEquals(aDateString, DateFormat.getDateInstance(DateFormat.MEDIUM, Locale.US).format(aDate));\r
190     }\r
191 \r
192     /*\r
193      * Test method for 'com.ibm.icu.text.DateFormat.getDateInstance(int, ULocale)'\r
194      */\r
195     public final void testGetDateInstanceIntULocale() {\r
196         assertEquals(aDateString, DateFormat.getDateInstance(DateFormat.MEDIUM, ULocale.US).format(aDate));\r
197     }\r
198 \r
199     /*\r
200      * Test method for 'com.ibm.icu.text.DateFormat.getDateTimeInstance()'\r
201      */\r
202     public final void testGetDateTimeInstance() {\r
203         assertEquals(aDateTimeString, DateFormat.getDateTimeInstance().format(aDate));\r
204     }\r
205 \r
206     /*\r
207      * Test method for 'com.ibm.icu.text.DateFormat.getDateTimeInstance(int, int)'\r
208      */\r
209     public final void testGetDateTimeInstanceIntInt() {\r
210         assertEquals(aDateTimeString, \r
211                      DateFormat.getDateTimeInstance(\r
212                                                     DateFormat.MEDIUM, DateFormat.MEDIUM).format(aDate));\r
213     }\r
214 \r
215     /*\r
216      * Test method for 'com.ibm.icu.text.DateFormat.getDateTimeInstance(int, int, Locale)'\r
217      */\r
218     public final void testGetDateTimeInstanceIntIntLocale() {\r
219         assertEquals(aDateTimeString, \r
220                      DateFormat.getDateTimeInstance(\r
221                                                     DateFormat.MEDIUM, DateFormat.MEDIUM, Locale.US).format(aDate));\r
222     }\r
223 \r
224     /*\r
225      * Test method for 'com.ibm.icu.text.DateFormat.getDateTimeInstance(int, int, ULocale)'\r
226      */\r
227     public final void testGetDateTimeInstanceIntIntULocale() {\r
228         assertEquals(aDateTimeString, \r
229                      DateFormat.getDateTimeInstance(\r
230                                                     DateFormat.MEDIUM, DateFormat.MEDIUM, ULocale.US).format(aDate));\r
231     }\r
232 \r
233     /*\r
234      * Test method for 'com.ibm.icu.text.DateFormat.getInstance()'\r
235      */\r
236     public final void testGetInstance() {\r
237         assertEquals(aShortDateTimeString, DateFormat.getInstance().format(aDate));\r
238     }\r
239 \r
240     /*\r
241      * Test method for 'com.ibm.icu.text.DateFormat.getAvailableLocales()'\r
242      */\r
243     public final void testGetAvailableLocales() {\r
244         Locale[] locales = DateFormat.getAvailableLocales();\r
245         if (ICUTestCase.testingWrapper) {\r
246             ICUTestCase.assertArraysEqual(java.text.DateFormat.getAvailableLocales(), locales);\r
247         } else {\r
248             assertNotNull(locales);\r
249         }\r
250     }\r
251 \r
252     /*\r
253      * Test method for 'com.ibm.icu.text.DateFormat.setCalendar(Calendar)'\r
254      */\r
255     public final void testSetCalendar() {\r
256         Calendar cal = Calendar.getInstance();\r
257         cal.setTimeZone(TimeZone.getTimeZone("EST"));\r
258         DateFormat df = DateFormat.getTimeInstance(DateFormat.SHORT);\r
259         df.setCalendar(cal);\r
260         assertEquals("8:17 AM", df.format(aDate));\r
261     }\r
262 \r
263     /*\r
264      * Test method for 'com.ibm.icu.text.DateFormat.getCalendar()'\r
265      */\r
266     public final void testGetCalendar() {\r
267         Calendar cal = Calendar.getInstance();\r
268         cal.setTimeZone(TimeZone.getTimeZone("EST"));\r
269         DateFormat df = DateFormat.getTimeInstance(DateFormat.SHORT);\r
270         df.setCalendar(cal);\r
271         assertEquals(cal, df.getCalendar());\r
272     }\r
273 \r
274     /*\r
275      * Test method for 'com.ibm.icu.text.DateFormat.setNumberFormat(NumberFormat)'\r
276      */\r
277     public final void testSetNumberFormat() {\r
278         // no easy way to test effect of setting the number format\r
279         NumberFormat nf = NumberFormat.getInstance();\r
280         DateFormat df = DateFormat.getTimeInstance(DateFormat.SHORT);\r
281         df.setNumberFormat(nf);\r
282         // note, can't actually USE the dateformat since it changes the calendar\r
283         assertEquals(nf, df.getNumberFormat());\r
284     }\r
285 \r
286     /*\r
287      * Test method for 'com.ibm.icu.text.DateFormat.getNumberFormat()'\r
288      */\r
289     public final void testGetNumberFormat() {\r
290         // see testSetNumberFormat\r
291     }\r
292 \r
293     /*\r
294      * Test method for 'com.ibm.icu.text.DateFormat.setTimeZone(TimeZone)'\r
295      */\r
296     public final void testSetTimeZone() {\r
297         DateFormat df = DateFormat.getTimeInstance(DateFormat.SHORT);\r
298         TimeZone tz = TimeZone.getTimeZone("EST");\r
299         df.setTimeZone(tz);\r
300         assertEquals("8:17 AM", df.format(aDate));\r
301     }\r
302 \r
303     /*\r
304      * Test method for 'com.ibm.icu.text.DateFormat.getTimeZone()'\r
305      */\r
306     public final void testGetTimeZone() {\r
307         DateFormat df = DateFormat.getTimeInstance(DateFormat.SHORT);\r
308         TimeZone tz = TimeZone.getTimeZone("EST");\r
309         df.setTimeZone(tz);\r
310         assertEquals(tz, df.getTimeZone());\r
311     }\r
312 \r
313     /*\r
314      * Test method for 'com.ibm.icu.text.DateFormat.setLenient(boolean)'\r
315      */\r
316     public final void testSetLenient() throws Exception {\r
317         DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT);\r
318         df.parse("2/31/90"); // succeeds, default is lenient\r
319         df.setLenient(false);\r
320         try {\r
321             df.parse("2/31/90");\r
322             throw new Exception("strict parse should have failed");\r
323         }\r
324         catch (ParseException e) {\r
325             // ok, this is what we expect\r
326         }\r
327     }\r
328 \r
329     /*\r
330      * Test method for 'com.ibm.icu.text.DateFormat.isLenient()'\r
331      */\r
332     public final void testIsLenient() {\r
333         DateFormat df = DateFormat.getInstance();\r
334         assertTrue(df.isLenient());\r
335         df.setLenient(false);\r
336         assertFalse(df.isLenient());\r
337     }\r
338 \r
339     /*\r
340      * Test method for 'com.ibm.icu.text.DateFormat.getDateInstance(Calendar, int, Locale)'\r
341      */\r
342     public final void testGetDateInstanceCalendarIntLocale() {\r
343         assertEquals(aDateString, DateFormat.getDateInstance(aCal, DateFormat.MEDIUM, Locale.US).format(aDate));\r
344     }\r
345 \r
346     /*\r
347      * Test method for 'com.ibm.icu.text.DateFormat.getDateInstance(Calendar, int, ULocale)'\r
348      */\r
349     public final void testGetDateInstanceCalendarIntULocale() {\r
350         assertEquals(aDateString, DateFormat.getDateInstance(aCal, DateFormat.MEDIUM, ULocale.US).format(aDate));\r
351     }\r
352 \r
353     /*\r
354      * Test method for 'com.ibm.icu.text.DateFormat.getTimeInstance(Calendar, int, Locale)'\r
355      */\r
356     public final void testGetTimeInstanceCalendarIntLocale() {\r
357         assertEquals(anESTTimeString, DateFormat.getTimeInstance(anESTCal, DateFormat.MEDIUM, Locale.US).format(aDate));\r
358     }\r
359 \r
360     /*\r
361      * Test method for 'com.ibm.icu.text.DateFormat.getTimeInstance(Calendar, int, ULocale)'\r
362      */\r
363     public final void testGetTimeInstanceCalendarIntULocale() {\r
364         assertEquals(anESTTimeString, DateFormat.getTimeInstance(anESTCal, DateFormat.MEDIUM, ULocale.US).format(aDate));\r
365     }\r
366 \r
367     /*\r
368      * Test method for 'com.ibm.icu.text.DateFormat.getDateTimeInstance(Calendar, int, int, Locale)'\r
369      */\r
370     public final void testGetDateTimeInstanceCalendarIntIntLocale() {\r
371         assertEquals(aDefaultESTDateTimeString, DateFormat.getDateTimeInstance(anESTCal, DateFormat.MEDIUM, DateFormat.SHORT, Locale.US).format(aDate));\r
372     }\r
373 \r
374     /*\r
375      * Test method for 'com.ibm.icu.text.DateFormat.getDateTimeInstance(Calendar, int, int, ULocale)'\r
376      */\r
377     public final void testGetDateTimeInstanceCalendarIntIntULocale() {\r
378         assertEquals(aDefaultESTDateTimeString, DateFormat.getDateTimeInstance(anESTCal, DateFormat.MEDIUM, DateFormat.SHORT, ULocale.US).format(aDate));\r
379     }\r
380 \r
381     /*\r
382      * Test method for 'com.ibm.icu.text.DateFormat.getInstance(Calendar, Locale)'\r
383      */\r
384     public final void testGetInstanceCalendarLocale() {\r
385         assertEquals(aDefaultESTDateTimeString, DateFormat.getInstance(anESTCal, Locale.US).format(aDate));\r
386     }\r
387 \r
388     /*\r
389      * Test method for 'com.ibm.icu.text.DateFormat.getInstance(Calendar, ULocale)'\r
390      */\r
391     public final void testGetInstanceCalendarULocale() {\r
392         assertEquals(aDefaultESTDateTimeString, DateFormat.getInstance(anESTCal, ULocale.US).format(aDate));\r
393     }\r
394 \r
395     /*\r
396      * Test method for 'com.ibm.icu.text.DateFormat.getInstance(Calendar)'\r
397      */\r
398     public final void testGetInstanceCalendar() {\r
399         assertEquals(aDefaultESTDateTimeString, DateFormat.getInstance(anESTCal).format(aDate));\r
400     }\r
401 \r
402     /*\r
403      * Test method for 'com.ibm.icu.text.DateFormat.getDateInstance(Calendar, int)'\r
404      */\r
405     public final void testGetDateInstanceCalendarInt() {\r
406         assertEquals(aDateString, DateFormat.getDateInstance(aCal, DateFormat.MEDIUM).format(aDate));\r
407     }\r
408 \r
409     /*\r
410      * Test method for 'com.ibm.icu.text.DateFormat.getTimeInstance(Calendar, int)'\r
411      */\r
412     public final void testGetTimeInstanceCalendarInt() {\r
413         assertEquals(anESTTimeString, DateFormat.getTimeInstance(anESTCal, DateFormat.MEDIUM).format(aDate));\r
414     }\r
415 \r
416     /*\r
417      * Test method for 'com.ibm.icu.text.DateFormat.getDateTimeInstance(Calendar, int, int)'\r
418      */\r
419     public final void testGetDateTimeInstanceCalendarIntInt() {\r
420         assertEquals(aDefaultESTDateTimeString, DateFormat.getDateTimeInstance(anESTCal, DateFormat.MEDIUM, DateFormat.SHORT).format(aDate));\r
421     }\r
422 \r
423     /*\r
424      * Test method for 'com.ibm.icu.text.DateFormat.toString()'\r
425      */\r
426     public final void testToString() {\r
427         assertNotNull(aDF.toString());\r
428     }\r
429 \r
430     /*\r
431      * Test method for 'com.ibm.icu.text.DateFormat.clone()'\r
432      */\r
433     public final void testClone() {\r
434         // see testHashCode\r
435     }\r
436 \r
437     /*\r
438      * Test method for 'com.ibm.icu.text.DateFormat.equals(Object)'\r
439      */\r
440     public final void testEqualsObject() {\r
441         // see testHashCode\r
442     }\r
443 }\r