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.text.DateFormat;
20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.text.DateFormatSymbols;
21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.text.NumberFormat;
22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.text.ParseException;
23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.text.SimpleDateFormat;
24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Calendar;
25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Date;
26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Locale;
27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class DateFormatTest extends junit.framework.TestCase {
29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.text.DateFormat#clone()
32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_clone() {
34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		DateFormat format = DateFormat.getInstance();
35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		DateFormat clone = (DateFormat) format.clone();
36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Clone not equal", format.equals(clone));
37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		clone.getNumberFormat().setMinimumFractionDigits(123);
38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Clone shares NumberFormat", !format.equals(clone));
39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.text.DateFormat#getAvailableLocales()
43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_getAvailableLocales() {
45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Locale[] locales = DateFormat.getAvailableLocales();
46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("No locales", locales.length > 0);
47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		boolean english = false, german = false;
48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = locales.length; --i >= 0;) {
49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (locales[i].equals(Locale.ENGLISH))
50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				english = true;
51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (locales[i].equals(Locale.GERMAN))
52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				german = true;
53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			DateFormat f1 = DateFormat.getDateTimeInstance(DateFormat.SHORT,
54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					DateFormat.SHORT, locales[i]);
55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Doesn't work",
56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					f1.format(new Date()).getClass() == String.class);
57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Missing locales", english && german);
59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.text.DateFormat#getCalendar()
63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_getCalendar() {
65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		DateFormat format = DateFormat.getInstance();
66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Calendar cal1 = format.getCalendar();
67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Calendar cal2 = format.getCalendar();
68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Calendars not identical", cal1 == cal2);
69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.text.DateFormat#getDateInstance()
73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_getDateInstance() {
75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		SimpleDateFormat f2 = (SimpleDateFormat) DateFormat.getDateInstance();
76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong class", f2.getClass() == SimpleDateFormat.class);
77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong default", f2.equals(DateFormat.getDateInstance(
78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				DateFormat.DEFAULT, Locale.getDefault())));
79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong symbols", f2.getDateFormatSymbols().equals(
80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				new DateFormatSymbols()));
81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Doesn't work",
82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				f2.format(new Date()).getClass() == String.class);
83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.text.DateFormat#getDateInstance(int)
87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_getDateInstanceI() {
89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Default not medium",
90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				DateFormat.DEFAULT == DateFormat.MEDIUM);
91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		SimpleDateFormat f2 = (SimpleDateFormat) DateFormat
93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				.getDateInstance(DateFormat.SHORT);
94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong class1", f2.getClass() == SimpleDateFormat.class);
95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong default1", f2.equals(DateFormat.getDateInstance(
96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				DateFormat.SHORT, Locale.getDefault())));
97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong symbols1", f2.getDateFormatSymbols().equals(
98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				new DateFormatSymbols()));
99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Doesn't work1",
100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				f2.format(new Date()).getClass() == String.class);
101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		f2 = (SimpleDateFormat) DateFormat.getDateInstance(DateFormat.MEDIUM);
103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong class2", f2.getClass() == SimpleDateFormat.class);
104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong default2", f2.equals(DateFormat.getDateInstance(
105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				DateFormat.MEDIUM, Locale.getDefault())));
106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong symbols2", f2.getDateFormatSymbols().equals(
107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				new DateFormatSymbols()));
108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Doesn't work2",
109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				f2.format(new Date()).getClass() == String.class);
110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		f2 = (SimpleDateFormat) DateFormat.getDateInstance(DateFormat.LONG);
112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong class3", f2.getClass() == SimpleDateFormat.class);
113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong default3", f2.equals(DateFormat.getDateInstance(
114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				DateFormat.LONG, Locale.getDefault())));
115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong symbols3", f2.getDateFormatSymbols().equals(
116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				new DateFormatSymbols()));
117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Doesn't work3",
118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				f2.format(new Date()).getClass() == String.class);
119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		f2 = (SimpleDateFormat) DateFormat.getDateInstance(DateFormat.FULL);
121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong class4", f2.getClass() == SimpleDateFormat.class);
122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong default4", f2.equals(DateFormat.getDateInstance(
123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				DateFormat.FULL, Locale.getDefault())));
124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong symbols4", f2.getDateFormatSymbols().equals(
125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				new DateFormatSymbols()));
126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Doesn't work4",
127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				f2.format(new Date()).getClass() == String.class);
128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// regression test for HARMONY-940
130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			DateFormat.getDateInstance(77);
132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw IAE");
133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalArgumentException iae) {
134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			//expected
135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.text.DateFormat#getDateInstance(int, java.util.Locale)
140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_getDateInstanceILjava_util_Locale() {
142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		SimpleDateFormat f2 = (SimpleDateFormat) DateFormat.getDateInstance(
143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				DateFormat.SHORT, Locale.GERMAN);
144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong class", f2.getClass() == SimpleDateFormat.class);
145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong symbols", f2.getDateFormatSymbols().equals(
146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				new DateFormatSymbols(Locale.GERMAN)));
147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Doesn't work",
148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				f2.format(new Date()).getClass() == String.class);
149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		f2 = (SimpleDateFormat) DateFormat.getDateInstance(DateFormat.MEDIUM,
151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				Locale.GERMAN);
152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong class", f2.getClass() == SimpleDateFormat.class);
153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong symbols", f2.getDateFormatSymbols().equals(
154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				new DateFormatSymbols(Locale.GERMAN)));
155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Doesn't work",
156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				f2.format(new Date()).getClass() == String.class);
157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		f2 = (SimpleDateFormat) DateFormat.getDateInstance(DateFormat.LONG,
159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				Locale.GERMAN);
160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong class", f2.getClass() == SimpleDateFormat.class);
161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong symbols", f2.getDateFormatSymbols().equals(
162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				new DateFormatSymbols(Locale.GERMAN)));
163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Doesn't work",
164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				f2.format(new Date()).getClass() == String.class);
165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		f2 = (SimpleDateFormat) DateFormat.getDateInstance(DateFormat.FULL,
167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				Locale.GERMAN);
168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong class", f2.getClass() == SimpleDateFormat.class);
169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong symbols", f2.getDateFormatSymbols().equals(
170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				new DateFormatSymbols(Locale.GERMAN)));
171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Doesn't work",
172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				f2.format(new Date()).getClass() == String.class);
173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// regression test for HARMONY-940
175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			DateFormat.getDateInstance(77, Locale.GERMAN);
177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw IAE");
178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalArgumentException iae) {
179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			//expected
180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.text.DateFormat#getDateTimeInstance()
185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_getDateTimeInstance() {
187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		SimpleDateFormat f2 = (SimpleDateFormat) DateFormat
188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				.getDateTimeInstance();
189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong class", f2.getClass() == SimpleDateFormat.class);
190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong default", f2.equals(DateFormat.getDateTimeInstance(
191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				DateFormat.DEFAULT, DateFormat.DEFAULT, Locale.getDefault())));
192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong symbols", f2.getDateFormatSymbols().equals(
193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				new DateFormatSymbols()));
194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Doesn't work",
195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				f2.format(new Date()).getClass() == String.class);
196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	private void testDateTime(int dStyle, int tStyle) {
199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		SimpleDateFormat f2 = (SimpleDateFormat) DateFormat
200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				.getDateTimeInstance(dStyle, tStyle);
201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong class", f2.getClass() == SimpleDateFormat.class);
202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		SimpleDateFormat date = (SimpleDateFormat) DateFormat.getDateInstance(
203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				dStyle, Locale.getDefault());
204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		SimpleDateFormat time = (SimpleDateFormat) DateFormat.getTimeInstance(
205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				tStyle, Locale.getDefault());
206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong default", f2.toPattern().equals(
207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				date.toPattern() + " " + time.toPattern()));
208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong symbols", f2.getDateFormatSymbols().equals(
209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				new DateFormatSymbols()));
210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Doesn't work",
211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				f2.format(new Date()).getClass() == String.class);
212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.text.DateFormat#getDateTimeInstance(int, int)
216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_getDateTimeInstanceII() {
218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		testDateTime(DateFormat.SHORT, DateFormat.SHORT);
219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		testDateTime(DateFormat.SHORT, DateFormat.MEDIUM);
220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		testDateTime(DateFormat.SHORT, DateFormat.LONG);
221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		testDateTime(DateFormat.SHORT, DateFormat.FULL);
222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		testDateTime(DateFormat.MEDIUM, DateFormat.SHORT);
224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		testDateTime(DateFormat.MEDIUM, DateFormat.MEDIUM);
225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		testDateTime(DateFormat.MEDIUM, DateFormat.LONG);
226561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		testDateTime(DateFormat.MEDIUM, DateFormat.FULL);
227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		testDateTime(DateFormat.LONG, DateFormat.SHORT);
229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		testDateTime(DateFormat.LONG, DateFormat.MEDIUM);
230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		testDateTime(DateFormat.LONG, DateFormat.LONG);
231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		testDateTime(DateFormat.LONG, DateFormat.FULL);
232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
233561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		testDateTime(DateFormat.FULL, DateFormat.SHORT);
234561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		testDateTime(DateFormat.FULL, DateFormat.MEDIUM);
235561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		testDateTime(DateFormat.FULL, DateFormat.LONG);
236561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		testDateTime(DateFormat.FULL, DateFormat.FULL);
237561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
238561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// regression test for HARMONY-940
239561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
240561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			DateFormat.getDateTimeInstance(77, 66);
241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw IAE");
242561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalArgumentException iae) {
243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			//expected
244561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
246561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
247561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	private void testDateTimeLocale(int dStyle, int tStyle) {
248561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		SimpleDateFormat f2 = (SimpleDateFormat) DateFormat
249561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				.getDateTimeInstance(dStyle, tStyle, Locale.GERMAN);
250561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong class", f2.getClass() == SimpleDateFormat.class);
251561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		SimpleDateFormat date = (SimpleDateFormat) DateFormat.getDateInstance(
252561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				dStyle, Locale.GERMAN);
253561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		SimpleDateFormat time = (SimpleDateFormat) DateFormat.getTimeInstance(
254561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				tStyle, Locale.GERMAN);
255561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong default", f2.toPattern().equals(
256561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				date.toPattern() + " " + time.toPattern()));
257561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong symbols", f2.getDateFormatSymbols().equals(
258561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				new DateFormatSymbols(Locale.GERMAN)));
259561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Doesn't work",
260561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				f2.format(new Date()).getClass() == String.class);
261561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
262561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
263561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
264561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.text.DateFormat#getDateTimeInstance(int, int,
265561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 *        java.util.Locale)
266561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
267561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_getDateTimeInstanceIILjava_util_Locale() {
268561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		testDateTimeLocale(DateFormat.SHORT, DateFormat.SHORT);
269561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		testDateTimeLocale(DateFormat.SHORT, DateFormat.MEDIUM);
270561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		testDateTimeLocale(DateFormat.SHORT, DateFormat.LONG);
271561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		testDateTimeLocale(DateFormat.SHORT, DateFormat.FULL);
272561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
273561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		testDateTimeLocale(DateFormat.MEDIUM, DateFormat.SHORT);
274561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		testDateTimeLocale(DateFormat.MEDIUM, DateFormat.MEDIUM);
275561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		testDateTimeLocale(DateFormat.MEDIUM, DateFormat.LONG);
276561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		testDateTimeLocale(DateFormat.MEDIUM, DateFormat.FULL);
277561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
278561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		testDateTimeLocale(DateFormat.LONG, DateFormat.SHORT);
279561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		testDateTimeLocale(DateFormat.LONG, DateFormat.MEDIUM);
280561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		testDateTimeLocale(DateFormat.LONG, DateFormat.LONG);
281561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		testDateTimeLocale(DateFormat.LONG, DateFormat.FULL);
282561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
283561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		testDateTimeLocale(DateFormat.FULL, DateFormat.SHORT);
284561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		testDateTimeLocale(DateFormat.FULL, DateFormat.MEDIUM);
285561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		testDateTimeLocale(DateFormat.FULL, DateFormat.LONG);
286561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		testDateTimeLocale(DateFormat.FULL, DateFormat.FULL);
287561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
288561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// regression test for HARMONY-940
289561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
290561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			DateFormat.getDateTimeInstance(77, 66, Locale.GERMAN);
291561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw IAE");
292561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalArgumentException iae) {
293561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			//expected
294561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
295561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
296561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
297561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
298561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.text.DateFormat#getInstance()
299561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
300561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_getInstance() {
301561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		SimpleDateFormat f2 = (SimpleDateFormat) DateFormat.getInstance();
302561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong class", f2.getClass() == SimpleDateFormat.class);
303561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong default", f2.equals(DateFormat.getDateTimeInstance(
304561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				DateFormat.SHORT, DateFormat.SHORT, Locale.getDefault())));
305561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong symbols", f2.getDateFormatSymbols().equals(
306561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				new DateFormatSymbols()));
307561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Doesn't work",
308561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				f2.format(new Date()).getClass() == String.class);
309561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
310561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
311561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
312561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.text.DateFormat#getNumberFormat()
313561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
314561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_getNumberFormat() {
315561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		DateFormat format = DateFormat.getInstance();
316561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		NumberFormat nf1 = format.getNumberFormat();
317561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		NumberFormat nf2 = format.getNumberFormat();
318561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("NumberFormats not identical", nf1 == nf2);
319561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
320561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
321561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
322561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.text.DateFormat#getTimeInstance()
323561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
324561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_getTimeInstance() {
325561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		SimpleDateFormat f2 = (SimpleDateFormat) DateFormat.getTimeInstance();
326561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong class", f2.getClass() == SimpleDateFormat.class);
327561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong default", f2.equals(DateFormat.getTimeInstance(
328561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				DateFormat.DEFAULT, Locale.getDefault())));
329561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong symbols", f2.getDateFormatSymbols().equals(
330561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				new DateFormatSymbols()));
331561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Doesn't work",
332561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				f2.format(new Date()).getClass() == String.class);
333561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
334561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
335561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
336561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.text.DateFormat#getTimeInstance(int)
337561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
338561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_getTimeInstanceI() {
339561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		SimpleDateFormat f2 = (SimpleDateFormat) DateFormat
340561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				.getTimeInstance(DateFormat.SHORT);
341561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong class1", f2.getClass() == SimpleDateFormat.class);
342561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong default1", f2.equals(DateFormat.getTimeInstance(
343561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				DateFormat.SHORT, Locale.getDefault())));
344561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong symbols1", f2.getDateFormatSymbols().equals(
345561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				new DateFormatSymbols()));
346561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Doesn't work1",
347561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				f2.format(new Date()).getClass() == String.class);
348561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
349561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		f2 = (SimpleDateFormat) DateFormat.getTimeInstance(DateFormat.MEDIUM);
350561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong class2", f2.getClass() == SimpleDateFormat.class);
351561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong default2", f2.equals(DateFormat.getTimeInstance(
352561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				DateFormat.MEDIUM, Locale.getDefault())));
353561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong symbols2", f2.getDateFormatSymbols().equals(
354561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				new DateFormatSymbols()));
355561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Doesn't work2",
356561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				f2.format(new Date()).getClass() == String.class);
357561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
358561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		f2 = (SimpleDateFormat) DateFormat.getTimeInstance(DateFormat.LONG);
359561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong class3", f2.getClass() == SimpleDateFormat.class);
360561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong default3", f2.equals(DateFormat.getTimeInstance(
361561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				DateFormat.LONG, Locale.getDefault())));
362561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong symbols3", f2.getDateFormatSymbols().equals(
363561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				new DateFormatSymbols()));
364561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Doesn't work3",
365561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				f2.format(new Date()).getClass() == String.class);
366561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
367561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		f2 = (SimpleDateFormat) DateFormat.getTimeInstance(DateFormat.FULL);
368561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong class4", f2.getClass() == SimpleDateFormat.class);
369561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong default4", f2.equals(DateFormat.getTimeInstance(
370561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				DateFormat.FULL, Locale.getDefault())));
371561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong symbols4", f2.getDateFormatSymbols().equals(
372561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				new DateFormatSymbols()));
373561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Doesn't work4",
374561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				f2.format(new Date()).getClass() == String.class);
375561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
376561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// regression test for HARMONY-940
377561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
378561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			DateFormat.getTimeInstance(77);
379561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw IAE");
380561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalArgumentException iae) {
381561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			//expected
382561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
383561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
384561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
385561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
386561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.text.DateFormat#getTimeInstance(int, java.util.Locale)
387561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
388561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_getTimeInstanceILjava_util_Locale() {
389561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		SimpleDateFormat f2 = (SimpleDateFormat) DateFormat.getTimeInstance(
390561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				DateFormat.SHORT, Locale.GERMAN);
391561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong class", f2.getClass() == SimpleDateFormat.class);
392561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong symbols", f2.getDateFormatSymbols().equals(
393561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				new DateFormatSymbols(Locale.GERMAN)));
394561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Doesn't work",
395561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				f2.format(new Date()).getClass() == String.class);
396561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
397561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		f2 = (SimpleDateFormat) DateFormat.getTimeInstance(DateFormat.MEDIUM,
398561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				Locale.GERMAN);
399561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong class", f2.getClass() == SimpleDateFormat.class);
400561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong symbols", f2.getDateFormatSymbols().equals(
401561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				new DateFormatSymbols(Locale.GERMAN)));
402561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Doesn't work",
403561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				f2.format(new Date()).getClass() == String.class);
404561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
405561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		f2 = (SimpleDateFormat) DateFormat.getTimeInstance(DateFormat.LONG,
406561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				Locale.GERMAN);
407561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong class", f2.getClass() == SimpleDateFormat.class);
408561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong symbols", f2.getDateFormatSymbols().equals(
409561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				new DateFormatSymbols(Locale.GERMAN)));
410561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Doesn't work",
411561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				f2.format(new Date()).getClass() == String.class);
412561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
413561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		f2 = (SimpleDateFormat) DateFormat.getTimeInstance(DateFormat.FULL,
414561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				Locale.GERMAN);
415561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong class", f2.getClass() == SimpleDateFormat.class);
416561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Wrong symbols", f2.getDateFormatSymbols().equals(
417561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				new DateFormatSymbols(Locale.GERMAN)));
418561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Doesn't work",
419561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				f2.format(new Date()).getClass() == String.class);
420561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
421561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// regression test for HARMONY-940
422561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
423561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			DateFormat.getTimeInstance(77, Locale.GERMAN);
424561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw IAE");
425561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalArgumentException iae) {
426561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			//expected
427561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
428561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
429561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
430561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
431561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.text.DateFormat#setCalendar(java.util.Calendar)
432561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
433561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_setCalendarLjava_util_Calendar() {
434561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		DateFormat format = DateFormat.getInstance();
435561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Calendar cal = Calendar.getInstance();
436561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		format.setCalendar(cal);
437561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Not identical Calendar", cal == format.getCalendar());
438561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
439561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
440561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
441561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.text.DateFormat#setNumberFormat(java.text.NumberFormat)
442561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
443561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_setNumberFormatLjava_text_NumberFormat() {
444561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		DateFormat format = DateFormat.getInstance();
445561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		NumberFormat f1 = NumberFormat.getInstance();
446561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		format.setNumberFormat(f1);
447561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Not identical NumberFormat", f1 == format.getNumberFormat());
448561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
449561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
450561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
451561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.text.DateFormat#parse(String)
452561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
453561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_parse_LString() {
454561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		DateFormat format = DateFormat.getInstance();
455561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
456561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			format.parse("not a Date");
457561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("should throw ParseException first");
458561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ParseException e) {
459561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertNotNull(e.getMessage());
460561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
461561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
462561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
463561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
464561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.text.DateFormat#setLenient(boolean)
465561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
466561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_setLenient() {
467561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	Date d = null;
468561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	DateFormat output = new SimpleDateFormat("MM/dd/yy");
469561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	output.setLenient(false);
470561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	try {
471561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	    d = output.parse("01/01/-1");
472561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	    fail("Should throw ParseException here.");
473561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	} catch (ParseException e) {}
474561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
475561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes}
476