1/*
2 * Copyright (c) 1998, 2016, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24/*
25 * @test
26 * @library /java/text/testlib
27 * @summary test International Date Format Symbols
28 */
29/*
30(C) Copyright Taligent, Inc. 1996, 1997 - All Rights Reserved
31(C) Copyright IBM Corp. 1996, 1997 - All Rights Reserved
32
33  The original version of this source code and documentation is copyrighted and
34owned by Taligent, Inc., a wholly-owned subsidiary of IBM. These materials are
35provided under terms of a License Agreement between Taligent and Sun. This
36technology is protected by multiple US and International patents. This notice and
37attribution to Taligent may not be removed.
38  Taligent is a registered trademark of Taligent, Inc.
39*/
40
41import java.text.*;
42import java.util.*;
43
44public class IntlTestDateFormatSymbols extends IntlTest
45{
46    public static void main(String[] args) throws Exception {
47        new IntlTestDateFormatSymbols().run(args);
48    }
49
50    // Test getMonths
51    public void TestGetMonths()
52    {
53        final String[] month;
54        DateFormatSymbols symbol;
55
56        symbol=new DateFormatSymbols(Locale.getDefault());
57
58        month=symbol.getMonths();
59        int cnt = month.length;
60
61        logln("size = " + cnt);
62
63        for (int i=0; i<cnt; ++i)
64        {
65            logln(month[i]);
66        }
67    }
68
69    // Test the API of DateFormatSymbols; primarily a simple get/set set.
70    public void TestSymbols()
71    {
72        DateFormatSymbols fr = new DateFormatSymbols(Locale.FRENCH);
73
74        DateFormatSymbols en = new DateFormatSymbols(Locale.ENGLISH);
75
76        if(en.equals(fr)) {
77            errln("ERROR: English DateFormatSymbols equal to French");
78        }
79
80        // just do some VERY basic tests to make sure that get/set work
81
82        long count;
83        final String[] eras = en.getEras();
84        fr.setEras(eras);
85        final String[] eras1 = fr.getEras();
86        count = eras.length;
87        if( count != eras1.length) {
88            errln("ERROR: setEras() failed (different size array)");
89        }
90        else {
91            for(int i = 0; i < count; i++) {
92                if(! eras[i].equals(eras1[i])) {
93                    errln("ERROR: setEras() failed (different string values)");
94                }
95            }
96        }
97
98
99        final String[] months = en.getMonths();
100        fr.setMonths(months);
101        final String[] months1 = fr.getMonths();
102        count = months.length;
103        if( count != months1.length) {
104            errln("ERROR: setMonths() failed (different size array)");
105        }
106        else {
107            for(int i = 0; i < count; i++) {
108                if(! months[i].equals(months1[i])) {
109                    errln("ERROR: setMonths() failed (different string values)");
110                }
111            }
112        }
113
114        final String[] shortMonths = en.getShortMonths();
115        fr.setShortMonths(shortMonths);
116        final String[] shortMonths1 = fr.getShortMonths();
117        count = shortMonths.length;
118        if( count != shortMonths1.length) {
119            errln("ERROR: setShortMonths() failed (different size array)");
120        }
121        else {
122            for(int i = 0; i < count; i++) {
123                if(! shortMonths[i].equals(shortMonths1[i])) {
124                    errln("ERROR: setShortMonths() failed (different string values)");
125                }
126            }
127        }
128
129        final String[] weekdays = en.getWeekdays();
130        fr.setWeekdays(weekdays);
131        final String[] weekdays1 = fr.getWeekdays();
132        count = weekdays.length;
133        if( count != weekdays1.length) {
134            errln("ERROR: setWeekdays() failed (different size array)");
135        }
136        else {
137            for(int i = 0; i < count; i++) {
138                if(! weekdays[i].equals(weekdays1[i])) {
139                    errln("ERROR: setWeekdays() failed (different string values)");
140                }
141            }
142        }
143
144        final String[] shortWeekdays = en.getShortWeekdays();
145        fr.setShortWeekdays(shortWeekdays);
146        final String[] shortWeekdays1 = fr.getShortWeekdays();
147        count = shortWeekdays.length;
148        if( count != shortWeekdays1.length) {
149            errln("ERROR: setShortWeekdays() failed (different size array)");
150        }
151        else {
152            for(int i = 0; i < count; i++) {
153                if(! shortWeekdays[i].equals(shortWeekdays1[i])) {
154                    errln("ERROR: setShortWeekdays() failed (different string values)");
155                }
156            }
157        }
158
159        final String[] ampms = en.getAmPmStrings();
160        fr.setAmPmStrings(ampms);
161        final String[] ampms1 = fr.getAmPmStrings();
162        count = ampms.length;
163        if( count != ampms1.length) {
164            errln("ERROR: setAmPmStrings() failed (different size array)");
165        }
166        else {
167            for(int i = 0; i < count; i++) {
168                if(! ampms[i].equals(ampms1[i])) {
169                    errln("ERROR: setAmPmStrings() failed (different string values)");
170                }
171            }
172        }
173
174        long rowCount = 0, columnCount = 0;
175        final String[][] strings = en.getZoneStrings();
176        fr.setZoneStrings(strings);
177        final String[][] strings1 = fr.getZoneStrings();
178        rowCount = strings.length;
179        for(int i = 0; i < rowCount; i++) {
180            columnCount = strings[i].length;
181            for(int j = 0; j < columnCount; j++) {
182                if( strings[i][j] != strings1[i][j] ) {
183                    errln("ERROR: setZoneStrings() failed");
184                }
185            }
186        }
187
188//        final String pattern = DateFormatSymbols.getPatternChars();
189
190        String localPattern, pat1, pat2;
191        localPattern = en.getLocalPatternChars();
192        fr.setLocalPatternChars(localPattern);
193        if(! en.getLocalPatternChars().equals(fr.getLocalPatternChars())) {
194            errln("ERROR: setLocalPatternChars() failed");
195        }
196
197
198        DateFormatSymbols foo = new DateFormatSymbols();
199
200        en = (DateFormatSymbols) fr.clone();
201
202        if(! en.equals(fr)) {
203            errln("ERROR: Clone failed");
204        }
205    }
206}
207