]> 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/SimpleDateFormatTest.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 / SimpleDateFormatTest.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.DateFormatSymbols;\r
17 import com.ibm.icu.text.SimpleDateFormat;\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 SimpleDateFormatTest extends ICUTestCase {\r
23     private static final String mdy = "MMM dd yyyy";\r
24     private static final String md2 = "MMM dd yy";\r
25     private static final String hmz = "'The time is' HH:mm:ss zzz";\r
26     private static final String hmzmdy = hmz + " 'on' " + mdy;\r
27     private static final String hmzmdyStr = "The time is 15:05:20 CST on Jan 10 2006";\r
28         \r
29     private static final TimeZone tzc = TimeZone.getTimeZone("CST");\r
30     private static final TimeZone tzp = TimeZone.getTimeZone("PST");\r
31     private static final Calendar cal = Calendar.getInstance(tzc);\r
32     private static final Date date;\r
33     static {\r
34         cal.clear();\r
35         cal.set(2006, 0, 10, 15, 5, 20); // arrgh, doesn't clear millis\r
36         date = cal.getTime();\r
37     }\r
38 \r
39     /*\r
40      * Test method for 'com.ibm.icu.text.SimpleDateFormat.format(Calendar, StringBuffer, FieldPosition)'\r
41      */\r
42     public void testFormatCalendarStringBufferFieldPosition() {\r
43         StringBuffer buf = new StringBuffer();\r
44         FieldPosition fp = new FieldPosition(0);\r
45         SimpleDateFormat sdf = new SimpleDateFormat(hmzmdy);\r
46         sdf.format(cal, buf, fp);\r
47         assertEquals(hmzmdyStr, buf.toString());\r
48     }\r
49 \r
50     /*\r
51      * Test method for 'com.ibm.icu.text.SimpleDateFormat.parse(String, Calendar, ParsePosition)'\r
52      */\r
53     public void testParseStringCalendarParsePosition() {\r
54         Calendar cal = Calendar.getInstance(tzp);\r
55         cal.clear();\r
56         ParsePosition pp = new ParsePosition(0);\r
57         SimpleDateFormat sdf = new SimpleDateFormat(hmzmdy);\r
58         sdf.parse(hmzmdyStr, cal, pp);\r
59         assertEquals(date, cal.getTime());\r
60         // note: java doesn't return the parsed time zone\r
61     }\r
62 \r
63     /*\r
64      * Test method for 'com.ibm.icu.text.SimpleDateFormat.clone()'\r
65      */\r
66     public void testClone() {\r
67 \r
68     }\r
69 \r
70     /*\r
71      * Test method for 'com.ibm.icu.text.SimpleDateFormat.SimpleDateFormat()'\r
72      */\r
73     public void testSimpleDateFormat() {\r
74         SimpleDateFormat sdf = new SimpleDateFormat();\r
75         java.text.SimpleDateFormat jsdf = new java.text.SimpleDateFormat();\r
76         assertEquals(jsdf.format(date), sdf.format(date));\r
77     }\r
78 \r
79     /*\r
80      * Test method for 'com.ibm.icu.text.SimpleDateFormat.SimpleDateFormat(String)'\r
81      */\r
82     public void testSimpleDateFormatString() {\r
83         SimpleDateFormat sdf = new SimpleDateFormat(mdy);\r
84         java.text.SimpleDateFormat jsdf = new java.text.SimpleDateFormat(mdy);\r
85         assertEquals(jsdf.format(date), sdf.format(date));\r
86     }\r
87 \r
88     /*\r
89      * Test method for 'com.ibm.icu.text.SimpleDateFormat.SimpleDateFormat(String, Locale)'\r
90      */\r
91     public void testSimpleDateFormatStringLocale() {\r
92         Locale l = Locale.JAPAN;\r
93         SimpleDateFormat sdf = new SimpleDateFormat(mdy, l);\r
94         java.text.SimpleDateFormat jsdf = new java.text.SimpleDateFormat(mdy, l);\r
95         assertEquals(jsdf.format(date), sdf.format(date));\r
96     }\r
97 \r
98     /*\r
99      * Test method for 'com.ibm.icu.text.SimpleDateFormat.SimpleDateFormat(String, ULocale)'\r
100      */\r
101     public void testSimpleDateFormatStringULocale() {\r
102         ULocale l = ULocale.JAPAN;\r
103         SimpleDateFormat sdf = new SimpleDateFormat(mdy, l);\r
104         java.text.SimpleDateFormat jsdf = new java.text.SimpleDateFormat(mdy, l.toLocale());\r
105         assertEquals(jsdf.format(date), sdf.format(date));\r
106     }\r
107 \r
108     /*\r
109      * Test method for 'com.ibm.icu.text.SimpleDateFormat.SimpleDateFormat(String, DateFormatSymbols)'\r
110      */\r
111     public void testSimpleDateFormatStringDateFormatSymbols() {\r
112         Locale l = Locale.US;\r
113         DateFormatSymbols dfs = new DateFormatSymbols(l);\r
114         java.text.DateFormatSymbols jdfs = new java.text.DateFormatSymbols(l);\r
115         SimpleDateFormat sdf = new SimpleDateFormat(mdy, dfs);\r
116         java.text.SimpleDateFormat jsdf = new java.text.SimpleDateFormat(mdy, jdfs);\r
117         assertEquals(jsdf.format(date), sdf.format(date));\r
118     }\r
119 \r
120     /*\r
121      * Test method for 'com.ibm.icu.text.SimpleDateFormat.set2DigitYearStart(Date)'\r
122      */\r
123     public void testSet2DigitYearStart() {\r
124         SimpleDateFormat sdf = new SimpleDateFormat(md2);\r
125         sdf.set2DigitYearStart(date);\r
126         try {\r
127             Date d = sdf.parse("Jan 15 04");\r
128             assertNotEqual(-1, d.toString().indexOf("2104"));\r
129         }\r
130         catch (ParseException pe) {\r
131             fail(pe.getMessage());\r
132         }\r
133     }\r
134 \r
135     /*\r
136      * Test method for 'com.ibm.icu.text.SimpleDateFormat.get2DigitYearStart()'\r
137      */\r
138     public void testGet2DigitYearStart() {\r
139         SimpleDateFormat sdf = new SimpleDateFormat(md2);\r
140         sdf.set2DigitYearStart(date);\r
141         assertEquals(date, sdf.get2DigitYearStart());\r
142     }\r
143 \r
144     /*\r
145      * Test method for 'com.ibm.icu.text.SimpleDateFormat.toPattern()'\r
146      */\r
147     public void testToPattern() {\r
148         SimpleDateFormat sdf = new SimpleDateFormat(mdy);\r
149         assertEquals(mdy, sdf.toPattern());\r
150     }\r
151 \r
152     /*\r
153      * Test method for 'com.ibm.icu.text.SimpleDateFormat.toLocalizedPattern()'\r
154      */\r
155     public void testToLocalizedPattern() {\r
156         Locale l = Locale.getDefault();\r
157         Locale.setDefault(Locale.US);\r
158         SimpleDateFormat sdf = new SimpleDateFormat(mdy);\r
159         assertEquals(mdy, sdf.toLocalizedPattern());\r
160         Locale.setDefault(l);\r
161     }\r
162 \r
163     /*\r
164      * Test method for 'com.ibm.icu.text.SimpleDateFormat.applyPattern(String)'\r
165      */\r
166     public void testApplyPattern() {\r
167         SimpleDateFormat sdf = new SimpleDateFormat();\r
168         sdf.setTimeZone(tzc);\r
169         sdf.applyPattern(hmzmdy);\r
170         assertEquals(hmzmdyStr, sdf.format(date));\r
171     }\r
172 \r
173     /*\r
174      * Test method for 'com.ibm.icu.text.SimpleDateFormat.applyLocalizedPattern(String)'\r
175      */\r
176     public void testApplyLocalizedPattern() {\r
177         SimpleDateFormat sdf = new SimpleDateFormat();\r
178         sdf.setTimeZone(tzc);\r
179         sdf.applyLocalizedPattern(hmzmdy);\r
180         assertEquals(hmzmdyStr, sdf.format(date));\r
181     }\r
182 \r
183     /*\r
184      * Test method for 'com.ibm.icu.text.SimpleDateFormat.getDateFormatSymbols()'\r
185      */\r
186     public void testGetDateFormatSymbols() {\r
187         DateFormatSymbols dfs = new DateFormatSymbols(Locale.US);\r
188         SimpleDateFormat sdf = new SimpleDateFormat(mdy, dfs);\r
189         assertEquals(dfs, sdf.getDateFormatSymbols());\r
190     }\r
191 \r
192     /*\r
193      * Test method for 'com.ibm.icu.text.SimpleDateFormat.setDateFormatSymbols(DateFormatSymbols)'\r
194      */\r
195     public void testSetDateFormatSymbols() {\r
196         DateFormatSymbols dfs = new DateFormatSymbols(Locale.JAPAN);\r
197         SimpleDateFormat sdf = new SimpleDateFormat(hmzmdy);\r
198         sdf.setDateFormatSymbols(dfs);\r
199         // assumes Japanese symbols do not have gregorian month names\r
200         assertEquals(-1, sdf.format(date).indexOf("Jan"));\r
201     }\r
202 }\r