1561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/*
2561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Licensed to the Apache Software Foundation (ASF) under one or more
3561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * contributor license agreements.  See the NOTICE file distributed with
4561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * this work for additional information regarding copyright ownership.
5561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * The ASF licenses this file to You under the Apache License, Version 2.0
6561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * (the "License"); you may not use this file except in compliance with
7561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * the License.  You may obtain a copy of the License at
8561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *
9561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *     http://www.apache.org/licenses/LICENSE-2.0
10561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *
11561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Unless required by applicable law or agreed to in writing, software
12561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * distributed under the License is distributed on an "AS IS" BASIS,
13561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * See the License for the specific language governing permissions and
15561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * limitations under the License.
16561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */
17561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage org.apache.harmony.text.tests.java.text;
18561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
19561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.File;
20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.net.URL;
21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.ByteArrayInputStream;
22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.ByteArrayOutputStream;
23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.ObjectInputStream;
24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.ObjectOutputStream;
25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.text.DateFormatSymbols;
26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Arrays;
27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Locale;
28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.ServiceConfigurationError;
29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport org.apache.harmony.text.tests.java.text.MockedDateFormatSymbolsProvider.MockedDateFormatSymbols;
31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class DateFormatSymbolsTest extends junit.framework.TestCase {
33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    private DateFormatSymbols dfs;
35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.text.DateFormatSymbols#DateFormatSymbols()
38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_Constructor() {
40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method java.text.DateFormatSymbols()
41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Used in tests
42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        new DateFormatSymbols();
43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.text.DateFormatSymbols#DateFormatSymbols(java.util.Locale)
47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_ConstructorLjava_util_Locale() {
49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method java.text.DateFormatSymbols(java.util.Locale)
50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        new DateFormatSymbols(new Locale("en", "us"));
51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.text.DateFormatSymbols#getAvailableLocales()
55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_getAvailableLocales_no_provider() throws Exception {
57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Locale[] locales = DateFormatSymbols.getAvailableLocales();
58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertNotNull(locales);
59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // must contain Locale.US
60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        boolean flag = false;
61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (Locale locale : locales) {
62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            if (locale.equals(Locale.US)) {
63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                flag = true;
64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                break;
65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            }
66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(flag);
68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.text.DateFormatSymbols#getAvailableLocales()
72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_getAvailableLocales_correct_provider() throws Exception {
74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        URL path1 = new File("src/test/resources/provider/correct").toURL();
75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        URL path2 = new File("resources/provider/correct").toURL();
76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        LoadLocaleProviderTestHelper helper = new LoadLocaleProviderTestHelper(
77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                new URL[] { path1, path2 }) {
78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            @Override
79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            public void test() {
80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                Locale[] locales = DateFormatSymbols.getAvailableLocales();
81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertNotNull(locales);
82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                // must contain mock Locale
83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                boolean flag = false;
84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                for (Locale locale : locales) {
85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    if (locale.getLanguage().equals("mock")) {
86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                        flag = true;
87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                        break;
88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    }
89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                }
90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertTrue(flag);
91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            }
92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        };
94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        if (helper.getThrowable() != null) {
96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            throw new Exception(helper.getThrowable());
97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.text.DateFormatSymbols#getAvailableLocales()
102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_getAvailableLocales_wrong_provider() throws Exception {
104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        URL path1 = new File("src/test/resources/provider/wrong").toURL();
105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        URL path2 = new File("resources/provider/wrong").toURL();
106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        LoadLocaleProviderTestHelper helper = new LoadLocaleProviderTestHelper(
107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                new URL[] { path1, path2 }) {
108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            @Override
109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            public void test() {
110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                try {
111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    DateFormatSymbols.getAvailableLocales();
112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    fail("Should throw ServiceConfigurationError");
113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                } catch (ServiceConfigurationError e) {
114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    // expected
115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                }
116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            }
117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        };
118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        if (helper.getThrowable() != null) {
120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            throw new Exception(helper.getThrowable());
121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.text.DateFormatSymbols#getInstance()
126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_getInstance() {
128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        DateFormatSymbols.getInstance();
129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(new DateFormatSymbols(), DateFormatSymbols.getInstance());
130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(new DateFormatSymbols(Locale.getDefault()),
131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                DateFormatSymbols.getInstance());
132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertNotSame(DateFormatSymbols.getInstance(), DateFormatSymbols.getInstance());
134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_getInstanceLjava_util_Locale() {
137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            DateFormatSymbols.getInstance(null);
139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw NullPointerException");
140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(new DateFormatSymbols(Locale.GERMANY), DateFormatSymbols
145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                .getInstance(Locale.GERMANY));
146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Locale locale = new Locale("not exist language", "not exist country");
148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        DateFormatSymbols symbols = DateFormatSymbols.getInstance(locale);
149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertNotNull(symbols);
150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(DateFormatSymbols.getInstance(), symbols);
151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.text.DateFormatSymbols#getInstance(Locale)
155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_getInstanceLjava_util_Locale_no_provider() {
157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            DateFormatSymbols.getInstance(null);
159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw NullPointerException");
160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(new DateFormatSymbols(Locale.GERMANY), DateFormatSymbols
165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                .getInstance(Locale.GERMANY));
166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Locale locale = new Locale("not exist language", "not exist country");
168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        DateFormatSymbols symbols = DateFormatSymbols.getInstance(locale);
169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertNotNull(symbols);
170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(DateFormatSymbols.getInstance(), symbols);
171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.text.DateFormatSymbols#getInstance(Locale)
175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_getInstanceLjava_util_Locale_correct_provider()
177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            throws Exception {
178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        URL path1 = new File("src/test/resources/provider/correct").toURL();
179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        URL path2 = new File("resources/provider/correct").toURL();
180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        LoadLocaleProviderTestHelper helper = new LoadLocaleProviderTestHelper(
181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                new URL[] { path1, path2 }) {
182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            @Override
183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            public void test() {
184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                DateFormatSymbols symbols = DateFormatSymbols
185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                        .getInstance(new Locale("Mock"));
186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertTrue(symbols instanceof MockedDateFormatSymbols);
187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            }
189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        };
190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        if (helper.getThrowable() != null) {
192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            throw new Exception(helper.getThrowable());
193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.text.DateFormatSymbols#getInstance(Locale)
198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_getInstanceLjava_util_Locale_wrong_provider()
200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            throws Exception {
201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        URL path1 = new File("src/test/resources/provider/wrong").toURL();
202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        URL path2 = new File("resources/provider/wrong").toURL();
203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        LoadLocaleProviderTestHelper helper = new LoadLocaleProviderTestHelper(
204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                new URL[] { path1, path2 }) {
205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            @Override
206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            public void test() {
207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                try {
208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    DateFormatSymbols.getInstance(new Locale("Mock"));
209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    fail("Should throw ServiceConfigurationError");
210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                } catch (ServiceConfigurationError e) {
211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    // expected
212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                }
213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            }
214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        };
215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        if (helper.getThrowable() != null) {
217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            throw new Exception(helper.getThrowable());
218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.text.DateFormatSymbols#clone()
223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_clone() {
225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method java.lang.Object java.text.DateFormatSymbols.clone()
226561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        DateFormatSymbols symbols = new DateFormatSymbols();
227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        DateFormatSymbols clone = (DateFormatSymbols) symbols.clone();
228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Not equal", symbols.equals(clone));
229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.text.DateFormatSymbols#equals(java.lang.Object)
233561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
234561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_equalsLjava_lang_Object() {
235561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method boolean
236561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // java.text.DateFormatSymbols.equals(java.lang.Object)
237561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Equal object returned true", dfs.equals(dfs.clone()));
238561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        dfs.setLocalPatternChars("KKKKKKKKK");
239561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Un-Equal objects returned false", !dfs
240561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                .equals(new DateFormatSymbols()));
241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
242561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
244561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.text.DateFormatSymbols#getAmPmStrings()
245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
246561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_getAmPmStrings() {
247561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method java.lang.String []
248561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // java.text.DateFormatSymbols.getAmPmStrings()
249561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String[] retVal = dfs.getAmPmStrings();
250561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String[] val = { "AM", "PM" };
251561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        if (retVal.length != val.length)
252561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Returned wrong array");
253561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < val.length; i++)
254561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertTrue("Array values do not match", retVal[i].equals(val[i]));
255561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
256561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
257561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
258561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.text.DateFormatSymbols#getEras()
259561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
260561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_getEras() {
261561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method java.lang.String []
262561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // java.text.DateFormatSymbols.getEras()
263561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String[] retVal = dfs.getEras();
264561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String[] val = { "BC", "AD" };
265561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        if (retVal.length != val.length)
266561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Returned wrong array");
267561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < val.length; i++)
268561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertTrue("Array values do not match", retVal[i].equals(val[i]));
269561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
270561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
271561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
272561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.text.DateFormatSymbols#getLocalPatternChars()
273561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
274561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_getLocalPatternChars() {
275561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method java.lang.String
276561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // java.text.DateFormatSymbols.getLocalPatternChars()
277561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String retVal = dfs.getLocalPatternChars();
278561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
279561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String val = "GyMdkHmsSEDFwWahKzYeugAZvcLQqV";
280561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
281561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Returned incorrect pattern string", val, retVal);
282561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
283561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
284561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
285561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.text.DateFormatSymbols#getMonths()
286561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
287561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_getMonths() {
288561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method java.lang.String []
289561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // java.text.DateFormatSymbols.getMonths()
290561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String[] retVal = dfs.getMonths();
291561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String[] val = { "January", "February", "March", "April", "May",
292561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                "June", "July", "August", "September", "October", "November",
293561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                "December"};
294561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Returned wrong array: ", val.length, retVal.length);
295561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < val.length; i++)
296561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertTrue("Array values do not match", retVal[i].equals(val[i]));
297561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
298561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
299561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
300561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.text.DateFormatSymbols#getShortMonths()
301561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
302561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_getShortMonths() {
303561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method java.lang.String []
304561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // java.text.DateFormatSymbols.getShortMonths()
305561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String[] retVal = dfs.getShortMonths();
306561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String[] val = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul",
307561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                "Aug", "Sep", "Oct", "Nov", "Dec"};
308561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Returned wrong array: ", val.length, retVal.length);
309561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < val.length; i++)
310561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertTrue("Array values do not match", retVal[i].equals(val[i]));
311561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
312561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
313561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
314561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.text.DateFormatSymbols#getShortWeekdays()
315561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
316561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_getShortWeekdays() {
317561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method java.lang.String []
318561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // java.text.DateFormatSymbols.getShortWeekdays()
319561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String[] retVal = dfs.getShortWeekdays();
320561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String[] val = { "", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" };
321561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        if (retVal.length != val.length)
322561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Returned wrong array");
323561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < val.length; i++)
324561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertTrue("Array values do not match", retVal[i].equals(val[i]));
325561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
326561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
327561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
328561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.text.DateFormatSymbols#getWeekdays()
329561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
330561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_getWeekdays() {
331561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method java.lang.String []
332561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // java.text.DateFormatSymbols.getWeekdays()
333561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String[] retVal = dfs.getWeekdays();
334561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String[] val = { "", "Sunday", "Monday", "Tuesday", "Wednesday",
335561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                "Thursday", "Friday", "Saturday" };
336561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        if (retVal.length != val.length)
337561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Returned wrong array");
338561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < val.length; i++)
339561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertTrue("Array values do not match", retVal[i].equals(val[i]));
340561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
341561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
342561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
343561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.text.DateFormatSymbols#getZoneStrings()
344561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
345561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_getZoneStrings() {
346561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method java.lang.String [][]
347561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // java.text.DateFormatSymbols.getZoneStrings()
348561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String[][] val = { { "XX", "XX", "XX", "XX", "XX" },
349561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                { "YY", "YY", "YY", "YY", "YY" } };
350561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        dfs.setZoneStrings(val);
351561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String[][] retVal = dfs.getZoneStrings();
352561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        if (retVal.length != val.length)
353561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Returned wrong array");
354561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < val.length; i++)
355561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertTrue("Failed to set strings", Arrays
356561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    .equals(retVal[i], val[i]));
357561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
358561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
359561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
360561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.text.DateFormatSymbols#hashCode()
361561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
362561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_hashCode() {
363561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method int java.text.DateFormatSymbols.hashCode()
364561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int hc1 = dfs.hashCode();
365561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int hc2 = dfs.hashCode();
366561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("hashCode() returned inconsistent number : " + hc1 + " - " + hc2, hc1 == hc2);
367561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
368561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("hashCode() returns different values for equal() objects",
369561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                            dfs.hashCode() == dfs.clone().hashCode());
370561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
371561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
372561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
373561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.text.DateFormatSymbols#setAmPmStrings(java.lang.String[])
374561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
375561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_setAmPmStrings$Ljava_lang_String() {
376561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method void
377561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // java.text.DateFormatSymbols.setAmPmStrings(java.lang.String [])
378561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String[] val = { "XX", "YY" };
379561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        dfs.setAmPmStrings(val);
380561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String[] retVal = dfs.getAmPmStrings();
381561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        if (retVal.length != val.length)
382561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Returned wrong array");
383561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < val.length; i++)
384561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertTrue("Failed to set strings", retVal[i].equals(val[i]));
385561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
386561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
387561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
388561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.text.DateFormatSymbols#setEras(java.lang.String[])
389561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
390561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_setEras$Ljava_lang_String() {
391561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method void
392561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // java.text.DateFormatSymbols.setEras(java.lang.String [])
393561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String[] val = { "XX", "YY" };
394561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        dfs.setEras(val);
395561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String[] retVal = dfs.getEras();
396561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        if (retVal.length != val.length)
397561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Returned wrong array");
398561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < val.length; i++)
399561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertTrue("Failed to set strings", retVal[i].equals(val[i]));
400561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
401561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
402561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
403561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.text.DateFormatSymbols#setLocalPatternChars(java.lang.String)
404561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
405561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_setLocalPatternCharsLjava_lang_String() {
406561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method void
407561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // java.text.DateFormatSymbols.setLocalPatternChars(java.lang.String)
408561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        dfs.setLocalPatternChars("GyMZZkHmsSEHHFwWahKz");
409561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String retVal = dfs.getLocalPatternChars();
410561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String val = "GyMZZkHmsSEHHFwWahKz";
411561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Returned incorrect pattern string", retVal.equals(val));
412561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
413561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
414561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // Regression for HARMONY-466
415561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            new DateFormatSymbols().setLocalPatternChars(null);
416561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("NullPointerException expected");
417561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
418561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
419561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
420561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
421561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
422561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
423561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.text.DateFormatSymbols#setMonths(java.lang.String[])
424561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
425561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_setMonths$Ljava_lang_String() {
426561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method void
427561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // java.text.DateFormatSymbols.setMonths(java.lang.String [])
428561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String[] val = { "XX", "YY" };
429561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        dfs.setMonths(val);
430561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String[] retVal = dfs.getMonths();
431561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Return is identical", retVal != dfs.getMonths());
432561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        if (retVal.length != val.length)
433561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Returned wrong array");
434561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < val.length; i++)
435561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertTrue("Failed to set strings", retVal[i].equals(val[i]));
436561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
437561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
438561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
439561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.text.DateFormatSymbols#setShortMonths(java.lang.String[])
440561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
441561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_setShortMonths$Ljava_lang_String() {
442561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method void
443561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // java.text.DateFormatSymbols.setShortMonths(java.lang.String [])
444561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String[] val = { "XX", "YY" };
445561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        dfs.setShortMonths(val);
446561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String[] retVal = dfs.getShortMonths();
447561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Return is identical", retVal != dfs.getShortMonths());
448561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        if (retVal.length != val.length)
449561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Returned wrong array");
450561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < val.length; i++)
451561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertTrue("Failed to set strings", retVal[i].equals(val[i]));
452561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
453561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
454561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
455561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.text.DateFormatSymbols#setShortWeekdays(java.lang.String[])
456561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
457561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_setShortWeekdays$Ljava_lang_String() {
458561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method void
459561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // java.text.DateFormatSymbols.setShortWeekdays(java.lang.String [])
460561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String[] val = { "XX", "YY" };
461561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        dfs.setShortWeekdays(val);
462561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String[] retVal = dfs.getShortWeekdays();
463561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Return is identical", retVal != dfs.getShortWeekdays());
464561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        if (retVal.length != val.length)
465561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Returned wrong array");
466561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < val.length; i++)
467561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertTrue("Failed to set strings", retVal[i].equals(val[i]));
468561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
469561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
470561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
471561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.text.DateFormatSymbols#setWeekdays(java.lang.String[])
472561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
473561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_setWeekdays$Ljava_lang_String() {
474561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method void
475561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // java.text.DateFormatSymbols.setWeekdays(java.lang.String [])
476561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String[] val = { "XX", "YY" };
477561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        dfs.setWeekdays(val);
478561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String[] retVal = dfs.getWeekdays();
479561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Return is identical", retVal != dfs.getWeekdays());
480561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        if (retVal.length != val.length)
481561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Returned wrong array");
482561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < val.length; i++)
483561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertTrue("Failed to set strings", retVal[i].equals(val[i]));
484561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
485561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
486561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
487561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.text.DateFormatSymbols#setZoneStrings(java.lang.String[][])
488561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
489561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_setZoneStrings$$Ljava_lang_String() {
490561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method void
491561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // java.text.DateFormatSymbols.setZoneStrings(java.lang.String [][])
492561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String[][] val = { { "XX", "XX", "XX", "XX", "XX" },
493561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                        { "YY", "YY", "YY", "YY", "YY" } };
494561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        dfs.setZoneStrings(val);
495561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String[][] retVal = dfs.getZoneStrings();
496561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("get returns identical", retVal != dfs.getZoneStrings());
497561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("get[0] returns identical", retVal[0] != dfs
498561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                .getZoneStrings()[0]);
499561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("get returned identical", retVal != val);
500561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Returned wrong array", val.length, retVal.length);
501561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < val.length; i++)
502561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertTrue("Failed to set strings: " + retVal[i], Arrays.equals(
503561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    retVal[i], val[i]));
504561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
505561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
506561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
507561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.text.DateFormatSymbols#setZoneStrings(java.lang.String[][])
508561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     *
509561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * Tests setting zone strings to invalid values
510561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * Regression for HARMONY-6337
511561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
512561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_setZoneStrings_invalid() {
513561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // failing cases
514561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String[][] val1 = null;
515561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
516561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            dfs.setZoneStrings(val1);
517561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Attempt to set zone strings a null array should throw NullPointerException");
518561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
519561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
520561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
521561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
522561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String[][] val2 = { { "XX", "XX" }, { "YY", "YY" } };
523561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
524561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            dfs.setZoneStrings(val2);
525561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Attempt to set zone strings to a 2D array that contains one or more "
526561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                 + "rows of length less than 5 should throw IllegalArgumentException");
527561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
528561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected because each subarray has length < 5
529561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
530561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
531561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String[][] val3 = { { "a", "b", "c", "d", "e" },
532561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                { "a", "b", "c", "d", "e" },
533561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                { "a", "b", "c", "d" },
534561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                { "a", "b", "c", "d", "e" } };
535561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
536561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            dfs.setZoneStrings(val3);
537561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Attempt to set zone strings to a 2D array that contains one or more "
538561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                 + "rows of length less than 5 should throw IllegalArgumentException");
539561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
540561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected because each subarray has length < 5
541561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
542561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
543561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
544561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
545561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * Sets up the fixture, for example, open a network connection. This method
546561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * is called before a test is executed.
547561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
548561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    protected void setUp() {
549561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        dfs = new DateFormatSymbols(new Locale("en", "us"));
550561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
551561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
552561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
553561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * Tears down the fixture, for example, close a network connection. This
554561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * method is called after a test is executed.
555561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
556561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    protected void tearDown() {
557561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
558561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
559561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    // Test serialization mechanism of DateFormatSymbols
560561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_serialization() throws Exception {
561561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        DateFormatSymbols symbols = new DateFormatSymbols(Locale.FRANCE);
562561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String[][] zoneStrings = symbols.getZoneStrings();
563561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertNotNull(zoneStrings);
564561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
565561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // serialize
566561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ByteArrayOutputStream byteOStream = new ByteArrayOutputStream();
567561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ObjectOutputStream objectOStream = new ObjectOutputStream(byteOStream);
568561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        objectOStream.writeObject(symbols);
569561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
570561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // and deserialize
571561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ObjectInputStream objectIStream = new ObjectInputStream(
572561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                new ByteArrayInputStream(byteOStream.toByteArray()));
573561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        DateFormatSymbols symbolsD = (DateFormatSymbols) objectIStream
574561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                .readObject();
575561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
576561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // The associated currency will not persist
577561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String[][] zoneStringsD = symbolsD.getZoneStrings();
578561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertNotNull(zoneStringsD);
579561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(symbols, symbolsD);
580561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
581561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes}
582