17935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert/* 27935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert ******************************************************************************* 37935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * Copyright (C) 2001-2010, International Business Machines Corporation and * 47935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * others. All Rights Reserved. * 57935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert ******************************************************************************* 67935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert */ 77935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 87935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert/** 97935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * Port From: ICU4C v1.8.1 : format : IntlTestDateFormatAPI 107935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * Source File: $ICU4CRoot/source/test/intltest/dtfmapts.cpp 117935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert **/ 127935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 137935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertpackage com.ibm.icu.dev.test.format; 147935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 157935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertimport java.text.FieldPosition; 167935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertimport java.text.ParsePosition; 177935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertimport java.util.Date; 187935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 197935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertimport com.ibm.icu.text.DateFormat; 207935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertimport com.ibm.icu.text.DecimalFormat; 217935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertimport com.ibm.icu.text.NumberFormat; 227935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertimport com.ibm.icu.text.SimpleDateFormat; 237935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 247935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert/* 257935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * This is an API test, not a unit test. It doesn't test very many cases, and doesn't 267935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * try to test the full functionality. It just calls each function in the class and 277935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * verifies that it works on a basic level. 287935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert */ 297935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertpublic class IntlTestDateFormatAPIC extends com.ibm.icu.dev.test.TestFmwk { 307935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 317935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert public static void main(String[] args) throws Exception { 327935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert new IntlTestDateFormatAPIC().run(args); 337935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } 347935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 357935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert /** 367935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * Test hiding of parse() and format() APIs in the Format hierarchy. 377935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * We test the entire hierarchy, even though this test is located in 387935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * the DateFormat API test. 397935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert */ 407935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert public void TestNameHiding() { 417935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 427935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert // N.B.: This test passes if it COMPILES, since it's a test of 437935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert // compile-time name hiding. 447935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 457935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert Date dateObj = new Date(0); 467935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert Number numObj = new Double(3.1415926535897932384626433832795); 477935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert StringBuffer strBuffer = new StringBuffer(""); 487935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert String str; 497935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert FieldPosition fpos = new FieldPosition(0); 507935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert ParsePosition ppos = new ParsePosition(0); 517935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 527935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert // DateFormat calling Format API 537935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert { 547935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert logln("DateFormat"); 557935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert DateFormat dateFmt = DateFormat.getInstance(); 567935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert if (dateFmt != null) { 577935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert str = dateFmt.format(dateObj); 587935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert strBuffer = dateFmt.format(dateObj, strBuffer, fpos); 597935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } else { 607935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert errln("FAIL: Can't create DateFormat"); 617935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } 627935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } 637935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 647935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert // SimpleDateFormat calling Format & DateFormat API 657935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert { 667935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert logln("SimpleDateFormat"); 677935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert SimpleDateFormat sdf = new SimpleDateFormat(); 687935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert // Format API 697935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert str = sdf.format(dateObj); 707935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert strBuffer = sdf.format(dateObj, strBuffer, fpos); 717935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert // DateFormat API 727935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert strBuffer = sdf.format(new Date(0), strBuffer, fpos); 737935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert str = sdf.format(new Date(0)); 747935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert try { 757935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert sdf.parse(str); 767935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert sdf.parse(str, ppos); 777935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } catch (java.text.ParseException pe) { 787935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert System.out.println(pe); 797935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } 807935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } 817935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 827935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert // NumberFormat calling Format API 837935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert { 847935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert logln("NumberFormat"); 857935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert NumberFormat fmt = NumberFormat.getInstance(); 867935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert if (fmt != null) { 877935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert str = fmt.format(numObj); 887935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert strBuffer = fmt.format(numObj, strBuffer, fpos); 897935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } else { 907935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert errln("FAIL: Can't create NumberFormat"); 917935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } 927935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } 937935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 947935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert // DecimalFormat calling Format & NumberFormat API 957935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert { 967935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert logln("DecimalFormat"); 977935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert DecimalFormat fmt = new DecimalFormat(); 987935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert // Format API 997935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert str = fmt.format(numObj); 1007935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert strBuffer = fmt.format(numObj, strBuffer, fpos); 1017935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert // NumberFormat API 1027935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert str = fmt.format(2.71828); 1037935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert str = fmt.format(1234567); 1047935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert strBuffer = fmt.format(1.41421, strBuffer, fpos); 1057935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert strBuffer = fmt.format(9876543, strBuffer, fpos); 1067935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert Number obj = fmt.parse(str, ppos); 1077935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert try { 1087935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert obj = fmt.parse(str); 1097935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert if(obj==null){ 1107935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert errln("FAIL: The format object could not parse the string : "+str); 1117935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } 1127935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } catch (java.text.ParseException pe) { 1137935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert System.out.println(pe); 1147935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } 1157935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } 1167935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 1177935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert //ICU4J have not the classes ChoiceFormat and MessageFormat 1187935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert /* 1197935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert // ChoiceFormat calling Format & NumberFormat API 1207935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert { 1217935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert logln("ChoiceFormat"); 1227935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert ChoiceFormat fmt = new ChoiceFormat("0#foo|1#foos|2#foos"); 1237935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert // Format API 1247935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert str = fmt.format(numObj); 1257935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert strBuffer = fmt.format(numObj, strBuffer, fpos); 1267935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert // NumberFormat API 1277935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert str = fmt.format(2.71828); 1287935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert str = fmt.format(1234567); 1297935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert strBuffer = fmt.format(1.41421, strBuffer, fpos); 1307935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert strBuffer = fmt.format(9876543, strBuffer, fpos); 1317935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert Number obj = fmt.parse(str, ppos); 1327935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert try { 1337935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert obj = fmt.parse(str); 1347935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } catch (java.text.ParseException pe) { 1357935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert System.out.println(pe); 1367935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } 1377935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } 1387935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 1397935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 1407935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert // MessageFormat calling Format API 1417935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert { 1427935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert logln("MessageFormat"); 1437935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert MessageFormat fmt = new MessageFormat(""); 1447935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert // Format API 1457935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert // We use dateObj, which MessageFormat should reject. 1467935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert // We're testing name hiding, not the format method. 1477935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert try { 1487935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert str = fmt.format(dateObj); 1497935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } catch (Exception e) { 1507935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert //e.printStackTrace(); 1517935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } 1527935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert try { 1537935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert strBuffer = fmt.format(dateObj, strBuffer, fpos); 1547935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } catch (Exception e) { 1557935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert //e.printStackTrace(); 1567935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } 1577935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } 1587935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert */ 1597935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } 1607935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert}