]> gitweb.fperrin.net Git - Dictionary.git/blob - jars/icu4j-4_2_1-src/src/com/ibm/icu/dev/test/format/IntlTestSimpleDateFormatAPI.java
icu4jsrc
[Dictionary.git] / jars / icu4j-4_2_1-src / src / com / ibm / icu / dev / test / format / IntlTestSimpleDateFormatAPI.java
1 /*****************************************************************************************\r
2  * (C) Copyright Taligent, Inc. 1996, 1997 - All Rights Reserved\r
3  * (C) Copyright IBM Corp. 1996-2008 - All Rights Reserved\r
4  *\r
5  *   The original version of this source code and documentation is copyrighted and\r
6  * owned by Taligent, Inc., a wholly-owned subsidiary of IBM. These materials are\r
7  * provided under terms of a License Agreement between Taligent and Sun. This\r
8  * technology is protected by multiple US and International patents. This notice and\r
9  * attribution to Taligent may not be removed.\r
10  *   Taligent is a registered trademark of Taligent, Inc.\r
11  **/\r
12 \r
13 /** \r
14  * Port From:   JDK 1.4b1 : java.text.Format.IntlTestSimpleDateFormatAPI\r
15  * Source File: java/text/format/IntlTestSimpleDateFormatAPI.java\r
16  **/\r
17  \r
18 package com.ibm.icu.dev.test.format;\r
19 \r
20 import com.ibm.icu.text.*;\r
21 import java.util.Locale;\r
22 import java.util.Date;\r
23 import java.text.ParsePosition;\r
24 import java.text.Format;\r
25 import java.text.FieldPosition;\r
26 import java.text.ParseException;\r
27 \r
28 /**\r
29 * @test 1.4 98/03/06\r
30 * @summary test International Simple Date Format API\r
31 */\r
32 public class IntlTestSimpleDateFormatAPI extends com.ibm.icu.dev.test.TestFmwk\r
33 {\r
34     public static void main(String[] args) throws Exception {\r
35         new IntlTestSimpleDateFormatAPI().run(args);\r
36     }\r
37 \r
38     // This test checks various generic API methods in DecimalFormat to achieve 100% API coverage.\r
39     public void TestAPI()\r
40     {\r
41         logln("SimpleDateFormat API test---"); logln("");\r
42 \r
43         Locale.setDefault(Locale.ENGLISH);\r
44 \r
45         // ======= Test constructors\r
46 \r
47         logln("Testing SimpleDateFormat constructors");\r
48 \r
49         SimpleDateFormat def = new SimpleDateFormat();\r
50 \r
51         final String pattern = new String("yyyy.MM.dd G 'at' hh:mm:ss z");\r
52         SimpleDateFormat pat = new SimpleDateFormat(pattern);\r
53 \r
54         SimpleDateFormat pat_fr = new SimpleDateFormat(pattern, Locale.FRENCH);\r
55 \r
56         DateFormatSymbols symbols = new DateFormatSymbols(Locale.FRENCH);\r
57 \r
58         SimpleDateFormat cust1 = new SimpleDateFormat(pattern, symbols);\r
59 \r
60         // ======= Test clone() and equality\r
61 \r
62         logln("Testing clone(), assignment and equality operators");\r
63 \r
64         Format clone = (Format) def.clone();\r
65         if( ! clone.equals(def) ) {\r
66             errln("ERROR: Format clone or equals failed");\r
67         }\r
68 \r
69         // ======= Test various format() methods\r
70 \r
71         logln("Testing various format() methods");\r
72 \r
73         Date d = new Date((long)837039928046.0);\r
74 \r
75         StringBuffer res1 = new StringBuffer();\r
76         StringBuffer res2 = new StringBuffer();\r
77         FieldPosition pos1 = new FieldPosition(0);\r
78         FieldPosition pos2 = new FieldPosition(0);\r
79 \r
80         res1 = def.format(d, res1, pos1);\r
81         logln( "" + d.getTime() + " formatted to " + res1);\r
82 \r
83         res2 = cust1.format(d, res2, pos2);\r
84         logln("" + d.getTime() + " formatted to " + res2);\r
85 \r
86         // ======= Test parse()\r
87 \r
88         logln("Testing parse()");\r
89 \r
90         String text = new String("02/03/76 2:50 AM, CST");\r
91         Date result1 = new Date();\r
92         Date result2 = new Date();\r
93         ParsePosition pos= new ParsePosition(0);\r
94         result1 = def.parse(text, pos);\r
95         logln(text + " parsed into " + result1);\r
96 \r
97         try {\r
98             result2 = def.parse(text);\r
99         }\r
100         catch (ParseException e) {\r
101             errln("ERROR: parse() failed");\r
102         }\r
103         logln(text + " parsed into " + result2);\r
104 \r
105         // ======= Test getters and setters\r
106 \r
107         logln("Testing getters and setters");\r
108 \r
109         final DateFormatSymbols syms = pat.getDateFormatSymbols();\r
110         def.setDateFormatSymbols(syms);\r
111         pat_fr.setDateFormatSymbols(syms);\r
112         if( ! pat.getDateFormatSymbols().equals(def.getDateFormatSymbols()) ) {\r
113             errln("ERROR: set DateFormatSymbols() failed");\r
114         }\r
115 \r
116         /*\r
117         DateFormatSymbols has not the method getTwoDigitStartDate();\r
118         //Date startDate = null; //The variable is never used\r
119         try {\r
120 //            startDate = pat.getTwoDigitStartDate();\r
121         }\r
122         catch (Exception e) {\r
123             errln("ERROR: getTwoDigitStartDate() failed");\r
124         }\r
125 \r
126         try {\r
127 //            pat_fr.setTwoDigitStartDate(startDate);\r
128         }\r
129         catch (Exception e) {\r
130             errln("ERROR: setTwoDigitStartDate() failed");\r
131         }*/\r
132 \r
133         // ======= Test applyPattern()\r
134 \r
135         logln("Testing applyPattern()");\r
136 \r
137         String p1 = new String("yyyy.MM.dd G 'at' hh:mm:ss z");\r
138         logln("Applying pattern " + p1);\r
139         pat.applyPattern(p1);\r
140 \r
141         String s2 = pat.toPattern();\r
142         logln("Extracted pattern is " + s2);\r
143         if( ! s2.equals(p1) ) {\r
144             errln("ERROR: toPattern() result did not match pattern applied");\r
145         }\r
146 \r
147         logln("Applying pattern " + p1);\r
148         pat.applyLocalizedPattern(p1);\r
149         String s3 = pat.toLocalizedPattern();\r
150         logln("Extracted pattern is " + s3);\r
151         if( ! s3.equals(p1) ) {\r
152             errln("ERROR: toLocalizedPattern() result did not match pattern applied");\r
153         }\r
154         \r
155         // ======= Test for Ticket 5684 (Parsing patterns with 'Y' and 'e'\r
156         logln("Testing parse()");\r
157 \r
158         String p2 = new String("YYYY'W'wwe");\r
159         logln("Applying pattern " + p2);\r
160         pat.applyPattern(p2);\r
161         Date dt = pat.parse("2007W014", new ParsePosition(0));\r
162         if (dt == null) {\r
163             errln("ERROR: Parsing failed using 'Y' and 'e'");\r
164         }\r
165 \r
166 \r
167         // ======= Test getStaticClassID()\r
168 \r
169 //        logln("Testing instanceof");\r
170 \r
171 //        try {\r
172 //            DateFormat test = new SimpleDateFormat();\r
173 \r
174 //            if (! (test instanceof SimpleDateFormat)) {\r
175 //                errln("ERROR: instanceof failed");\r
176 //            }\r
177 //        }\r
178 //        catch (Exception e) {\r
179 //            errln("ERROR: Couldn't create a SimpleDateFormat");\r
180 //        }\r
181     }\r
182     \r
183     // Jitterbug 4451, for coverage\r
184     public void TestCoverage(){\r
185         class StubDateFormat extends SimpleDateFormat{\r
186             /**\r
187              * For serialization\r
188              */\r
189             private static final long serialVersionUID = 8460897119491427934L;\r
190 \r
191             public void run(){\r
192                 if (!zeroPaddingNumber(12, 4, 6).equals("0012")){\r
193                     errln("SimpleDateFormat(zeroPaddingNumber(long , int , int )");\r
194                 }\r
195             }\r
196         }\r
197         new StubDateFormat().run();\r
198     }\r
199 }\r