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