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 Hughes 18561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage org.apache.harmony.text.tests.java.text; 19561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.ByteArrayInputStream; 21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.ByteArrayOutputStream; 22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.IOException; 23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.ObjectInputStream; 24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.ObjectOutputStream; 25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.text.ChoiceFormat; 26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.text.DateFormat; 27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.text.FieldPosition; 28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.text.Format; 29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.text.MessageFormat; 30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.text.NumberFormat; 31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.text.ParseException; 32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.text.ParsePosition; 33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.text.SimpleDateFormat; 34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Calendar; 35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Date; 36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.GregorianCalendar; 37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Locale; 38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.TimeZone; 39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport junit.framework.TestCase; 41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class MessageFormatTest extends TestCase { 43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private MessageFormat format1, format2, format3; 45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private Locale defaultLocale; 47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private void checkSerialization(MessageFormat format) { 49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ByteArrayOutputStream ba = new ByteArrayOutputStream(); 51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ObjectOutputStream out = new ObjectOutputStream(ba); 52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes out.writeObject(format); 53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes out.close(); 54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ObjectInputStream in = new ObjectInputStream( 55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new ByteArrayInputStream(ba.toByteArray())); 56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes MessageFormat read = (MessageFormat) in.readObject(); 57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Not equal: " + format.toPattern(), format.equals(read)); 58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException e) { 59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Format: " + format.toPattern() 60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + " caused IOException: " + e); 61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ClassNotFoundException e) { 62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Format: " + format.toPattern() 63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + " caused ClassNotFoundException: " + e); 64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.MessageFormat#MessageFormat(java.lang.String, 69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * java.util.Locale) 70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_ConstructorLjava_lang_StringLjava_util_Locale() { 72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.text.MessageFormat(java.lang.String, 73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.util.Locale) 74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Locale mk = new Locale("mk", "MK"); 75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes MessageFormat format = new MessageFormat( 76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "Date: {0,date} Currency: {1, number, currency} Integer: {2, number, integer}", 77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes mk); 78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Wrong locale1", format.getLocale().equals(mk)); 80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Wrong locale2", format.getFormats()[0].equals(DateFormat 81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getDateInstance(DateFormat.DEFAULT, mk))); 82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Wrong locale3", format.getFormats()[1].equals(NumberFormat 83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getCurrencyInstance(mk))); 84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Wrong locale4", format.getFormats()[2].equals(NumberFormat 85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getIntegerInstance(mk))); 86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.MessageFormat#MessageFormat(java.lang.String) 90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_ConstructorLjava_lang_String() { 92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.text.MessageFormat(java.lang.String) 93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes MessageFormat format = new MessageFormat( 94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "abc {4,time} def {3,date} ghi {2,number} jkl {1,choice,0#low|1#high} mnop {0}"); 95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Not a MessageFormat", 96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format.getClass() == MessageFormat.class); 97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Format[] formats = format.getFormats(); 98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNotNull("null formats", formats); 99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Wrong format count: " + formats.length, formats.length >= 5); 100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Wrong time format", formats[0].equals(DateFormat 101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getTimeInstance())); 102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Wrong date format", formats[1].equals(DateFormat 103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getDateInstance())); 104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Wrong number format", formats[2].equals(NumberFormat 105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getInstance())); 106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Wrong choice format", formats[3].equals(new ChoiceFormat( 107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0.0#low|1.0#high"))); 108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull("Wrong string format", formats[4]); 109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Date date = new Date(); 111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes FieldPosition pos = new FieldPosition(-1); 112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes StringBuffer buffer = new StringBuffer(); 113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format.format(new Object[] { "123", new Double(1.6), new Double(7.2), 114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes date, date }, buffer, pos); 115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String result = buffer.toString(); 116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffer.setLength(0); 117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffer.append("abc "); 118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffer.append(DateFormat.getTimeInstance().format(date)); 119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffer.append(" def "); 120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffer.append(DateFormat.getDateInstance().format(date)); 121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffer.append(" ghi "); 122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffer.append(NumberFormat.getInstance().format(new Double(7.2))); 123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffer.append(" jkl high mnop 123"); 124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Wrong answer:\n" + result + "\n" + buffer, result 125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .equals(buffer.toString())); 126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Simple string", "Test message", new MessageFormat("Test message").format( 128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new Object[0])); 129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes result = new MessageFormat("Don't").format(new Object[0]); 131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Should not throw IllegalArgumentException: " + result, 132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "Dont".equals(result)); 133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new MessageFormat("Invalid {1,foobar} format descriptor!"); 136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Expected test_ConstructorLjava_lang_String to throw IAE."); 137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException ex) { 138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new MessageFormat( 143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "Invalid {1,date,invalid-spec} format descriptor!"); 144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException ex) { 145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes checkSerialization(new MessageFormat("")); 149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes checkSerialization(new MessageFormat("noargs")); 150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes checkSerialization(new MessageFormat("{0}")); 151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes checkSerialization(new MessageFormat("a{0}")); 152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes checkSerialization(new MessageFormat("{0}b")); 153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes checkSerialization(new MessageFormat("a{0}b")); 154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Regression for HARMONY-65 156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new MessageFormat("{0,number,integer"); 158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Assert 0: Failed to detect unmatched brackets."); 159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.MessageFormat#applyPattern(java.lang.String) 166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_applyPatternLjava_lang_String() { 168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method void 169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.text.MessageFormat.applyPattern(java.lang.String) 170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes MessageFormat format = new MessageFormat("test"); 171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format.applyPattern("xx {0}"); 172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Invalid number", "xx 46", format.format( 173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new Object[] { new Integer(46) })); 174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Date date = new Date(); 175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String result = format.format(new Object[] { date }); 176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String expected = "xx " + DateFormat.getInstance().format(date); 177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Invalid date:\n" + result + "\n" + expected, result 178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .equals(expected)); 179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format = new MessageFormat("{0,date}{1,time}{2,number,integer}"); 180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format.applyPattern("nothing"); 181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Found formats", "nothing", format.toPattern()); 182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format.applyPattern("{0}"); 184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull("Wrong format", format.getFormats()[0]); 185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong pattern", "{0}", format.toPattern()); 186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format.applyPattern("{0, \t\u001ftime }"); 188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Wrong time format", format.getFormats()[0] 189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .equals(DateFormat.getTimeInstance())); 190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong time pattern", "{0,time}", format.toPattern()); 191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format.applyPattern("{0,Time, Short\n}"); 192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Wrong short time format", format.getFormats()[0] 193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .equals(DateFormat.getTimeInstance(DateFormat.SHORT))); 194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong short time pattern", 195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "{0,time,short}", format.toPattern()); 196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format.applyPattern("{0,TIME,\nmedium }"); 197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Wrong medium time format", format.getFormats()[0] 198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .equals(DateFormat.getTimeInstance(DateFormat.MEDIUM))); 199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong medium time pattern", 200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "{0,time}", format.toPattern()); 201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format.applyPattern("{0,time,LONG}"); 202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Wrong long time format", format.getFormats()[0] 203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .equals(DateFormat.getTimeInstance(DateFormat.LONG))); 204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong long time pattern", 205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "{0,time,long}", format.toPattern()); 206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format.setLocale(Locale.FRENCH); // use French since English has the 207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // same LONG and FULL time patterns 208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format.applyPattern("{0,time, Full}"); 209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Wrong full time format", format.getFormats()[0] 210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .equals(DateFormat.getTimeInstance(DateFormat.FULL, 211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Locale.FRENCH))); 212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong full time pattern", 213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "{0,time,full}", format.toPattern()); 214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format.setLocale(Locale.getDefault()); 215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format.applyPattern("{0, date}"); 217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Wrong date format", format.getFormats()[0] 218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .equals(DateFormat.getDateInstance())); 219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong date pattern", "{0,date}", format.toPattern()); 220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format.applyPattern("{0, date, short}"); 221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Wrong short date format", format.getFormats()[0] 222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .equals(DateFormat.getDateInstance(DateFormat.SHORT))); 223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong short date pattern", 224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "{0,date,short}", format.toPattern()); 225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format.applyPattern("{0, date, medium}"); 226561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Wrong medium date format", format.getFormats()[0] 227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .equals(DateFormat.getDateInstance(DateFormat.MEDIUM))); 228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong medium date pattern", 229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "{0,date}", format.toPattern()); 230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format.applyPattern("{0, date, long}"); 231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Wrong long date format", format.getFormats()[0] 232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .equals(DateFormat.getDateInstance(DateFormat.LONG))); 233561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong long date pattern", 234561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "{0,date,long}", format.toPattern()); 235561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format.applyPattern("{0, date, full}"); 236561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Wrong full date format", format.getFormats()[0] 237561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .equals(DateFormat.getDateInstance(DateFormat.FULL))); 238561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong full date pattern", 239561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "{0,date,full}", format.toPattern()); 240561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format.applyPattern("{0, date, MMM d {hh:mm:ss}}"); 242561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong time/date format", " MMM d {hh:mm:ss}", ((SimpleDateFormat) (format 243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getFormats()[0])).toPattern()); 244561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong time/date pattern", 245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "{0,date, MMM d {hh:mm:ss}}", format.toPattern()); 246561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 247561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format.applyPattern("{0, number}"); 248561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Wrong number format", format.getFormats()[0] 249561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .equals(NumberFormat.getNumberInstance())); 250561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong number pattern", 251561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "{0,number}", format.toPattern()); 252561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format.applyPattern("{0, number, currency}"); 253561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Wrong currency number format", format.getFormats()[0] 254561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .equals(NumberFormat.getCurrencyInstance())); 255561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong currency number pattern", 256561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "{0,number,currency}", format.toPattern()); 257561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format.applyPattern("{0, number, percent}"); 258561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Wrong percent number format", format.getFormats()[0] 259561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .equals(NumberFormat.getPercentInstance())); 260561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong percent number pattern", 261561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "{0,number,percent}", format.toPattern()); 262561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format.applyPattern("{0, number, integer}"); 263561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes NumberFormat nf = NumberFormat.getInstance(); 264561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes nf.setMaximumFractionDigits(0); 265561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes nf.setParseIntegerOnly(true); 266561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Wrong integer number format", format.getFormats()[0] 267561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .equals(nf)); 268561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong integer number pattern", 269561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "{0,number,integer}", format.toPattern()); 270561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 271561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format.applyPattern("{0, number, {'#'}##0.0E0}"); 272561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 273561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /* 274561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * TODO validate these assertions 275561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * String actual = ((DecimalFormat)(format.getFormats()[0])).toPattern(); 276561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * assertEquals("Wrong pattern number format", "' {#}'##0.0E0", actual); 277561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * assertEquals("Wrong pattern number pattern", "{0,number,' {#}'##0.0E0}", format.toPattern()); 278561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 279561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 280561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 281561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format.applyPattern("{0, choice,0#no|1#one|2#{1,number}}"); 282561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong choice format", 283561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 284561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0.0#no|1.0#one|2.0#{1,number}", ((ChoiceFormat) format.getFormats()[0]).toPattern()); 285561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong choice pattern", 286561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "{0,choice,0.0#no|1.0#one|2.0#{1,number}}", format.toPattern()); 287561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong formatted choice", "3.6", format.format( 288561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new Object[] { new Integer(2), new Float(3.6) })); 289561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 290561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 291561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format.applyPattern("WRONG MESSAGE FORMAT {0,number,{}"); 292561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Expected IllegalArgumentException for invalid pattern"); 293561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 294561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 295561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 296561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Regression for HARMONY-65 297561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes MessageFormat mf = new MessageFormat("{0,number,integer}"); 298561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String badpattern = "{0,number,#"; 299561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 300561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes mf.applyPattern(badpattern); 301561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Assert 0: Failed to detect unmatched brackets."); 302561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 303561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 304561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 305561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 306561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 307561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 308561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.MessageFormat#clone() 309561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 310561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_clone() { 311561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.lang.Object java.text.MessageFormat.clone() 312561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes MessageFormat format = new MessageFormat("'{'choice'}'{0}"); 313561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes MessageFormat clone = (MessageFormat) format.clone(); 314561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Clone not equal", format.equals(clone)); 315561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong answer", 316561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "{choice}{0}", format.format(new Object[] {})); 317561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes clone.setFormat(0, DateFormat.getInstance()); 318561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Clone shares format data", !format.equals(clone)); 319561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format = (MessageFormat) clone.clone(); 320561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Format[] formats = clone.getFormats(); 321561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ((SimpleDateFormat) formats[0]).applyPattern("adk123"); 322561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Clone shares format data", !format.equals(clone)); 323561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 324561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 325561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 326561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.MessageFormat#equals(java.lang.Object) 327561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 328561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_equalsLjava_lang_Object() { 329561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method boolean 330561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.text.MessageFormat.equals(java.lang.Object) 331561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes MessageFormat format1 = new MessageFormat("{0}"); 332561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes MessageFormat format2 = new MessageFormat("{1}"); 333561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Should not be equal", !format1.equals(format2)); 334561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format2.applyPattern("{0}"); 335561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Should be equal", format1.equals(format2)); 336561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SimpleDateFormat date = (SimpleDateFormat) DateFormat.getTimeInstance(); 337561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format1.setFormat(0, DateFormat.getTimeInstance()); 338561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format2.setFormat(0, new SimpleDateFormat(date.toPattern())); 339561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Should be equal2", format1.equals(format2)); 340561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 341561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 342561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 343561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.MessageFormat#hashCode() 344561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 345561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_hashCode() { 346561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method 347561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // int java.text.MessageFormat.hashCode() 348561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Should be equal", 3648, new MessageFormat("rr", null).hashCode()); 349561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 350561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 351561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 352561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.MessageFormat#formatToCharacterIterator(java.lang.Object) 353561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 354561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //FIXME This test fails on Harmony ClassLibrary 355561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void failing_test_formatToCharacterIteratorLjava_lang_Object() { 356561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method formatToCharacterIterator(java.lang.Object) 357561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new Support_MessageFormat("test_formatToCharacterIteratorLjava_lang_Object").t_formatToCharacterIterator(); 358561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 359561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 360561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 361561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.MessageFormat#format(java.lang.Object[], 362561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * java.lang.StringBuffer, java.text.FieldPosition) 363561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 364561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_format$Ljava_lang_ObjectLjava_lang_StringBufferLjava_text_FieldPosition() { 365561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.lang.StringBuffer 366561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.text.MessageFormat.format(java.lang.Object [], 367561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.lang.StringBuffer, java.text.FieldPosition) 368561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes MessageFormat format = new MessageFormat("{1,number,integer}"); 369561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes StringBuffer buffer = new StringBuffer(); 370561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format.format(new Object[] { "0", new Double(53.863) }, buffer, 371561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new FieldPosition(0)); 372561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong result", "54", buffer.toString()); 373561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format 374561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .applyPattern("{0,choice,0#zero|1#one '{1,choice,2#two {2,time}}'}"); 375561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Date date = new Date(); 376561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String expected = "one two " 377561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + DateFormat.getTimeInstance().format(date); 378561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String result = format.format(new Object[] { new Double(1.6), 379561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new Integer(3), date }); 380561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Choice not recursive:\n" + expected + "\n" + result, 381561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes expected.equals(result)); 382561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 383561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 384561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 385561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.MessageFormat#format(java.lang.Object, 386561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * java.lang.StringBuffer, java.text.FieldPosition) 387561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 388561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_formatLjava_lang_ObjectLjava_lang_StringBufferLjava_text_FieldPosition() { 389561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.lang.StringBuffer 390561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.text.MessageFormat.format(java.lang.Object, 391561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.lang.StringBuffer, java.text.FieldPosition) 392561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new Support_MessageFormat( 393561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "test_formatLjava_lang_ObjectLjava_lang_StringBufferLjava_text_FieldPosition") 394561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .t_format_with_FieldPosition(); 395561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 396561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 397561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 398561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.MessageFormat#getFormats() 399561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 400561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_getFormats() { 401561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.text.Format [] 402561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.text.MessageFormat.getFormats() 403561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 404561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test with repeating formats and max argument index < max offset 405561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Format[] formats = format1.getFormats(); 406561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Format[] correctFormats = new Format[] { 407561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes NumberFormat.getCurrencyInstance(), 408561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes DateFormat.getTimeInstance(), 409561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes NumberFormat.getPercentInstance(), null, 410561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new ChoiceFormat("0#off|1#on"), DateFormat.getDateInstance(), }; 411561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 412561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test1:Returned wrong number of formats:", 413561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes correctFormats.length, formats.length); 414561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < correctFormats.length; i++) { 415561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test1:wrong format for pattern index " + i + ":", 416561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes correctFormats[i], formats[i]); 417561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 418561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 419561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test with max argument index > max offset 420561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes formats = format2.getFormats(); 421561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes correctFormats = new Format[] { NumberFormat.getCurrencyInstance(), 422561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes DateFormat.getTimeInstance(), 423561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes NumberFormat.getPercentInstance(), null, 424561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new ChoiceFormat("0#off|1#on"), DateFormat.getDateInstance() }; 425561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 426561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test2:Returned wrong number of formats:", 427561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes correctFormats.length, formats.length); 428561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < correctFormats.length; i++) { 429561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test2:wrong format for pattern index " + i + ":", 430561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes correctFormats[i], formats[i]); 431561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 432561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 433561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test with argument number being zero 434561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes formats = format3.getFormats(); 435561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test3: Returned wrong number of formats:", 0, 436561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes formats.length); 437561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 438561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 439561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 440561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.MessageFormat#getFormatsByArgumentIndex() 441561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 442561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_getFormatsByArgumentIndex() { 443561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.text.Format [] test_getFormatsByArgumentIndex() 444561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 445561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test with repeating formats and max argument index < max offset 446561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Format[] formats = format1.getFormatsByArgumentIndex(); 447561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Format[] correctFormats = new Format[] { DateFormat.getDateInstance(), 448561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new ChoiceFormat("0#off|1#on"), DateFormat.getTimeInstance(), 449561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes NumberFormat.getCurrencyInstance(), null }; 450561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 451561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test1:Returned wrong number of formats:", 452561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes correctFormats.length, formats.length); 453561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < correctFormats.length; i++) { 454561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test1:wrong format for argument index " + i + ":", 455561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes correctFormats[i], formats[i]); 456561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 457561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 458561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test with max argument index > max offset 459561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes formats = format2.getFormatsByArgumentIndex(); 460561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes correctFormats = new Format[] { DateFormat.getDateInstance(), 461561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new ChoiceFormat("0#off|1#on"), null, 462561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes NumberFormat.getCurrencyInstance(), null, null, null, null, 463561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes DateFormat.getTimeInstance() }; 464561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 465561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test2:Returned wrong number of formats:", 466561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes correctFormats.length, formats.length); 467561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < correctFormats.length; i++) { 468561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test2:wrong format for argument index " + i + ":", 469561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes correctFormats[i], formats[i]); 470561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 471561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 472561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test with argument number being zero 473561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes formats = format3.getFormatsByArgumentIndex(); 474561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test3: Returned wrong number of formats:", 0, 475561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes formats.length); 476561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 477561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 478561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 479561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.MessageFormat#setFormatByArgumentIndex(int, 480561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * java.text.Format) 481561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 482561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_setFormatByArgumentIndexILjava_text_Format() { 483561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test for method setFormatByArgumentIndex(int, Format) 484561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes MessageFormat f1 = (MessageFormat) format1.clone(); 485561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f1.setFormatByArgumentIndex(0, DateFormat.getTimeInstance()); 486561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f1.setFormatByArgumentIndex(4, new ChoiceFormat("1#few|2#ok|3#a lot")); 487561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 488561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test with repeating formats and max argument index < max offset 489561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // compare getFormatsByArgumentIndex() results after calls to 490561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // setFormatByArgumentIndex() 491561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Format[] formats = f1.getFormatsByArgumentIndex(); 492561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 493561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Format[] correctFormats = new Format[] { DateFormat.getTimeInstance(), 494561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new ChoiceFormat("0#off|1#on"), DateFormat.getTimeInstance(), 495561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes NumberFormat.getCurrencyInstance(), 496561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new ChoiceFormat("1#few|2#ok|3#a lot") }; 497561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 498561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test1A:Returned wrong number of formats:", 499561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes correctFormats.length, formats.length); 500561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < correctFormats.length; i++) { 501561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test1B:wrong format for argument index " + i + ":", 502561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes correctFormats[i], formats[i]); 503561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 504561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 505561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // compare getFormats() results after calls to 506561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // setFormatByArgumentIndex() 507561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes formats = f1.getFormats(); 508561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 509561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes correctFormats = new Format[] { NumberFormat.getCurrencyInstance(), 510561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes DateFormat.getTimeInstance(), DateFormat.getTimeInstance(), 511561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new ChoiceFormat("1#few|2#ok|3#a lot"), 512561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new ChoiceFormat("0#off|1#on"), DateFormat.getTimeInstance(), }; 513561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 514561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test1C:Returned wrong number of formats:", 515561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes correctFormats.length, formats.length); 516561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < correctFormats.length; i++) { 517561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test1D:wrong format for pattern index " + i + ":", 518561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes correctFormats[i], formats[i]); 519561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 520561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 521561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test setting argumentIndexes that are not used 522561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes MessageFormat f2 = (MessageFormat) format2.clone(); 523561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f2.setFormatByArgumentIndex(2, NumberFormat.getPercentInstance()); 524561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f2.setFormatByArgumentIndex(4, DateFormat.getTimeInstance()); 525561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 526561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes formats = f2.getFormatsByArgumentIndex(); 527561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes correctFormats = format2.getFormatsByArgumentIndex(); 528561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 529561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test2A:Returned wrong number of formats:", 530561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes correctFormats.length, formats.length); 531561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < correctFormats.length; i++) { 532561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test2B:wrong format for argument index " + i + ":", 533561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes correctFormats[i], formats[i]); 534561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 535561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 536561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes formats = f2.getFormats(); 537561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes correctFormats = format2.getFormats(); 538561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 539561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test2C:Returned wrong number of formats:", 540561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes correctFormats.length, formats.length); 541561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < correctFormats.length; i++) { 542561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test2D:wrong format for pattern index " + i + ":", 543561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes correctFormats[i], formats[i]); 544561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 545561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 546561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test exceeding the argumentIndex number 547561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes MessageFormat f3 = (MessageFormat) format3.clone(); 548561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f3.setFormatByArgumentIndex(1, NumberFormat.getCurrencyInstance()); 549561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 550561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes formats = f3.getFormatsByArgumentIndex(); 551561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test3A:Returned wrong number of formats:", 0, 552561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes formats.length); 553561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 554561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes formats = f3.getFormats(); 555561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test3B:Returned wrong number of formats:", 0, 556561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes formats.length); 557561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 558561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 559561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 560561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.MessageFormat#setFormatsByArgumentIndex(java.text.Format[]) 561561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 562561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_setFormatsByArgumentIndex$Ljava_text_Format() { 563561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test for method setFormatByArgumentIndex(Format[]) 564561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes MessageFormat f1 = (MessageFormat) format1.clone(); 565561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 566561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test with repeating formats and max argument index < max offset 567561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // compare getFormatsByArgumentIndex() results after calls to 568561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // setFormatsByArgumentIndex(Format[]) 569561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Format[] correctFormats = new Format[] { DateFormat.getTimeInstance(), 570561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new ChoiceFormat("0#off|1#on"), DateFormat.getTimeInstance(), 571561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes NumberFormat.getCurrencyInstance(), 572561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new ChoiceFormat("1#few|2#ok|3#a lot") }; 573561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 574561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f1.setFormatsByArgumentIndex(correctFormats); 575561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Format[] formats = f1.getFormatsByArgumentIndex(); 576561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 577561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test1A:Returned wrong number of formats:", 578561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes correctFormats.length, formats.length); 579561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < correctFormats.length; i++) { 580561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test1B:wrong format for argument index " + i + ":", 581561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes correctFormats[i], formats[i]); 582561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 583561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 584561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // compare getFormats() results after calls to 585561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // setFormatByArgumentIndex() 586561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes formats = f1.getFormats(); 587561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes correctFormats = new Format[] { NumberFormat.getCurrencyInstance(), 588561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes DateFormat.getTimeInstance(), DateFormat.getTimeInstance(), 589561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new ChoiceFormat("1#few|2#ok|3#a lot"), 590561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new ChoiceFormat("0#off|1#on"), DateFormat.getTimeInstance(), }; 591561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 592561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test1C:Returned wrong number of formats:", 593561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes correctFormats.length, formats.length); 594561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < correctFormats.length; i++) { 595561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test1D:wrong format for pattern index " + i + ":", 596561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes correctFormats[i], formats[i]); 597561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 598561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 599561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test setting argumentIndexes that are not used 600561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes MessageFormat f2 = (MessageFormat) format2.clone(); 601561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Format[] inputFormats = new Format[] { DateFormat.getDateInstance(), 602561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new ChoiceFormat("0#off|1#on"), 603561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes NumberFormat.getPercentInstance(), 604561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes NumberFormat.getCurrencyInstance(), 605561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes DateFormat.getTimeInstance(), null, null, null, 606561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes DateFormat.getTimeInstance() }; 607561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f2.setFormatsByArgumentIndex(inputFormats); 608561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 609561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes formats = f2.getFormatsByArgumentIndex(); 610561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes correctFormats = format2.getFormatsByArgumentIndex(); 611561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 612561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test2A:Returned wrong number of formats:", 613561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes correctFormats.length, formats.length); 614561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < correctFormats.length; i++) { 615561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test2B:wrong format for argument index " + i + ":", 616561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes correctFormats[i], formats[i]); 617561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 618561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 619561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes formats = f2.getFormats(); 620561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes correctFormats = new Format[] { NumberFormat.getCurrencyInstance(), 621561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes DateFormat.getTimeInstance(), DateFormat.getDateInstance(), 622561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes null, new ChoiceFormat("0#off|1#on"), 623561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes DateFormat.getDateInstance() }; 624561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 625561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test2C:Returned wrong number of formats:", 626561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes correctFormats.length, formats.length); 627561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < correctFormats.length; i++) { 628561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test2D:wrong format for pattern index " + i + ":", 629561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes correctFormats[i], formats[i]); 630561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 631561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 632561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test exceeding the argumentIndex number 633561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes MessageFormat f3 = (MessageFormat) format3.clone(); 634561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f3.setFormatsByArgumentIndex(inputFormats); 635561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 636561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes formats = f3.getFormatsByArgumentIndex(); 637561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test3A:Returned wrong number of formats:", 0, 638561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes formats.length); 639561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 640561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes formats = f3.getFormats(); 641561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test3B:Returned wrong number of formats:", 0, 642561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes formats.length); 643561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 644561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 645561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 646561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 647561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.MessageFormat#parse(java.lang.String, 648561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * java.text.ParsePosition) 649561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 650561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_parseLjava_lang_StringLjava_text_ParsePosition() { 651561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes MessageFormat format = new MessageFormat("date is {0,date,MMM d, yyyy}"); 652561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ParsePosition pos = new ParsePosition(2); 653561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Object[] result = (Object[]) format 654561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .parse("xxdate is Feb 28, 1999", pos); 655561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("No result: " + result.length, result.length >= 1); 656561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Wrong answer", ((Date) result[0]) 657561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .equals(new GregorianCalendar(1999, Calendar.FEBRUARY, 28) 658561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getTime())); 659561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 660561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes MessageFormat mf = new MessageFormat("vm={0},{1},{2}"); 661561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes result = mf.parse("vm=win,foo,bar", new ParsePosition(0)); 662561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Invalid parse", result[0].equals("win") 663561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes && result[1].equals("foo") && result[2].equals("bar")); 664561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 665561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes mf = new MessageFormat("{0}; {0}; {0}"); 666561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String parse = "a; b; c"; 667561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes result = mf.parse(parse, new ParsePosition(0)); 668561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong variable result", "c", result[0]); 669561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 670561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes mf = new MessageFormat("before {0}, after {1,number}"); 671561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes parse = "before you, after 42"; 672561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pos.setIndex(0); 673561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pos.setErrorIndex(8); 674561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes result = mf.parse(parse, pos); 675561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(2, result.length); 676561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 677561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 678561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 679561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.MessageFormat#setLocale(java.util.Locale) 680561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 681561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_setLocaleLjava_util_Locale() { 682561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method void 683561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.text.MessageFormat.setLocale(java.util.Locale) 684561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes MessageFormat format = new MessageFormat("date {0,date}"); 685561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format.setLocale(Locale.CHINA); 686561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong locale1", Locale.CHINA, format.getLocale()); 687561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format.applyPattern("{1,date}"); 688561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong locale3", DateFormat.getDateInstance(DateFormat.DEFAULT, 689561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Locale.CHINA), format.getFormats()[0]); 690561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 691561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 692561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 693561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.MessageFormat#toPattern() 694561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 695561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_toPattern() { 696561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.lang.String java.text.MessageFormat.toPattern() 697561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String pattern = "[{0}]"; 698561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes MessageFormat mf = new MessageFormat(pattern); 699561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Wrong pattern", mf.toPattern().equals(pattern)); 700561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 701561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Regression for HARMONY-59 702561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new MessageFormat("CHOICE {1,choice}").toPattern(); 703561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 704561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 705561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 706561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Sets up the fixture, for example, open a network connection. This method 707561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * is called before a test is executed. 708561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 709561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected void setUp() { 710561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes defaultLocale = Locale.getDefault(); 711561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Locale.setDefault(Locale.US); 712561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 713561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test with repeating formats and max argument index < max offset 714561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String pattern = "A {3, number, currency} B {2, time} C {0, number, percent} D {4} E {1,choice,0#off|1#on} F {0, date}"; 715561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format1 = new MessageFormat(pattern); 716561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 717561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test with max argument index > max offset 718561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pattern = "A {3, number, currency} B {8, time} C {0, number, percent} D {6} E {1,choice,0#off|1#on} F {0, date}"; 719561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format2 = new MessageFormat(pattern); 720561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 721561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test with argument number being zero 722561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pattern = "A B C D E F"; 723561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format3 = new MessageFormat(pattern); 724561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 725561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 726561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 727561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tears down the fixture, for example, close a network connection. This 728561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * method is called after a test is executed. 729561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 730561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected void tearDown() { 731561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Locale.setDefault(defaultLocale); 732561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 733561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 734561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 735561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.MessageFormat(java.util.Locale) 736561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 737561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_ConstructorLjava_util_Locale() { 738561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Regression for HARMONY-65 739561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 740561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new MessageFormat("{0,number,integer", Locale.US); 741561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Assert 0: Failed to detect unmatched brackets."); 742561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 743561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 744561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 745561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 746561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 747561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 748561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.MessageFormat#parse(java.lang.String) 749561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 750561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_parse() throws ParseException { 751561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Regression for HARMONY-63 752561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes MessageFormat mf = new MessageFormat("{0,number,#,####}", Locale.US); 753561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Object[] res = mf.parse("1,00,00"); 754561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Assert 0: incorrect size of parsed data ", 1, res.length); 755561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Assert 1: parsed value incorrectly", new Long(10000), (Long)res[0]); 756561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 757561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 758561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_format_Object() { 759561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Regression for HARMONY-1875 760561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Locale.setDefault(Locale.CANADA); 761561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TimeZone.setDefault(TimeZone.getTimeZone("UTC")); 762561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String pat="text here {0, date, yyyyyyyyy } and here"; 763561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String etalon="text here 000002007 and here"; 764561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes MessageFormat obj = new MessageFormat(pat); 765561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(etalon, obj.format(new Object[]{new Date(1198141737640L)})); 766561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 767561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("{0}", MessageFormat.format("{0}", (Object[])null)); 768561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("nullABC", MessageFormat.format("{0}{1}", new String[]{null, "ABC"})); 769561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 770561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 771561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testHARMONY5323() { 772561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Object []messageArgs = new Object[11]; 773561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < messageArgs.length; i++) 774561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes messageArgs[i] = "dumb"+i; 775561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 776561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String res = MessageFormat.format("bgcolor=\"{10}\"", messageArgs); 777561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(res, "bgcolor=\"dumb10\""); 778561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 779561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes} 780