harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ton...@apache.org
Subject svn commit: r613794 - in /harmony/enhanced/classlib/trunk/modules/luni: make/exclude.common src/test/api/common/org/apache/harmony/luni/tests/java/util/CurrencyTest.java
Date Mon, 21 Jan 2008 08:32:48 GMT
Author: tonywu
Date: Mon Jan 21 00:32:47 2008
New Revision: 613794

URL: http://svn.apache.org/viewvc?rev=613794&view=rev
Log:
Correct the testcase against latest ICU version 3.8/CLDR 5.0 and move this test out of exclude
list. Filed these failures on RI as non-bug differences

Modified:
    harmony/enhanced/classlib/trunk/modules/luni/make/exclude.common
    harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/util/CurrencyTest.java

Modified: harmony/enhanced/classlib/trunk/modules/luni/make/exclude.common
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/luni/make/exclude.common?rev=613794&r1=613793&r2=613794&view=diff
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/luni/make/exclude.common (original)
+++ harmony/enhanced/classlib/trunk/modules/luni/make/exclude.common Mon Jan 21 00:32:47 2008
@@ -1,6 +1,5 @@
 org/apache/harmony/luni/tests/java/net/URLClassLoaderTest.java
 org/apache/harmony/luni/tests/java/net/ExcludedProxyTest.java
-org/apache/harmony/luni/tests/java/util/CurrencyTest.java
 org/apache/harmony/luni/tests/java/util/FormatterTest.java
 org/apache/harmony/luni/tests/java/util/GregorianCalendarTest.java
 org/apache/harmony/luni/tests/java/util/LocaleTest.java

Modified: harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/util/CurrencyTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/util/CurrencyTest.java?rev=613794&r1=613793&r2=613794&view=diff
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/util/CurrencyTest.java
(original)
+++ harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/util/CurrencyTest.java
Mon Jan 21 00:32:47 2008
@@ -22,337 +22,328 @@
 
 public class CurrencyTest extends junit.framework.TestCase {
 
-	private static Locale defaultLocale = Locale.getDefault();
+    private static Locale defaultLocale = Locale.getDefault();
 
-	/**
-	 * @tests java.util.Currency#getInstance(java.lang.String)
-	 */
-	public void test_getInstanceLjava_lang_String() {
-		// see test_getInstanceLjava_util_Locale() tests
-	}
-
-	/**
-	 * @tests java.util.Currency#getInstance(java.util.Locale)
-	 */
-	public void test_getInstanceLjava_util_Locale() {
-		/*
-		 * the behaviour in all these three cases should be the same since this
-		 * method ignores language and variant component of the locale.
-		 */
-		Currency c0 = Currency.getInstance("CAD");
-		Currency c1 = Currency.getInstance(new Locale("en", "CA"));
-		assertTrue(
-				"Currency.getInstance(new Locale(\"en\",\"CA\")) isn't equal to Currency.getInstance(\"CAD\")",
-				c1 == c0);
-		Currency c2 = Currency.getInstance(new Locale("fr", "CA"));
-		assertTrue(
-				"Currency.getInstance(new Locale(\"fr\",\"CA\")) isn't equal to Currency.getInstance(\"CAD\")",
-				c2 == c0);
-		Currency c3 = Currency.getInstance(new Locale("", "CA"));
-		assertTrue(
-				"Currency.getInstance(new Locale(\"\",\"CA\")) isn't equal to Currency.getInstance(\"CAD\")",
-				c3 == c0);
-
-		c0 = Currency.getInstance("JPY");
-		c1 = Currency.getInstance(new Locale("ja", "JP"));
-		assertTrue(
-				"Currency.getInstance(new Locale(\"ja\",\"JP\")) isn't equal to Currency.getInstance(\"JPY\")",
-				c1 == c0);
-		c2 = Currency.getInstance(new Locale("", "JP"));
-		assertTrue(
-				"Currency.getInstance(new Locale(\"\",\"JP\")) isn't equal to Currency.getInstance(\"JPY\")",
-				c2 == c0);
-		c3 = Currency.getInstance(new Locale("bogus", "JP"));
-		assertTrue(
-				"Currency.getInstance(new Locale(\"bogus\",\"JP\")) isn't equal to Currency.getInstance(\"JPY\")",
-				c3 == c0);
-
-		Locale localeGu = new Locale("gu", "IN");
-		Currency cGu = Currency.getInstance(localeGu);
-		Locale localeKn = new Locale("kn", "IN");
-		Currency cKn = Currency.getInstance(localeKn);
-		assertTrue("Currency.getInstance(Locale_" + localeGu.toString() + "))"
-				+ "isn't equal to " + "Currency.getInstance(Locale_"
-				+ localeKn.toString() + "))", cGu == cKn);
-
-		// some teritories do not have currencies, like Antarctica
-		Locale loc = new Locale("", "AQ");
-		try {
-			Currency curr = Currency.getInstance(loc);
-			assertNull(
-					"Currency.getInstance(new Locale(\"\", \"AQ\")) did not return null",
-					curr);
-		} catch (IllegalArgumentException e) {
-			fail("Unexpected IllegalArgumentException " + e);
-		}
-
-		// unsupported/legacy iso3 countries
-		loc = new Locale("", "ZR");
-		try {
-			Currency curr = Currency.getInstance(loc);
-			fail("Expected IllegalArgumentException");
-		} catch (IllegalArgumentException e) {
-		}
-
-		loc = new Locale("", "ZAR");
-		try {
-			Currency curr = Currency.getInstance(loc);
-			fail("Expected IllegalArgumentException");
-		} catch (IllegalArgumentException e) {
-		}
-
-		loc = new Locale("", "FX");
-		try {
-			Currency curr = Currency.getInstance(loc);
-			fail("Expected IllegalArgumentException");
-		} catch (IllegalArgumentException e) {
-		}
-
-		loc = new Locale("", "FXX");
-		try {
-			Currency curr = Currency.getInstance(loc);
-			fail("Expected IllegalArgumentException");
-		} catch (IllegalArgumentException e) {
-		}
-	}
-
-	/**
-	 * @tests java.util.Currency#getSymbol()
-	 */
-	public void test_getSymbol() {
-
-		Currency currK = Currency.getInstance("KRW");
-		Currency currI = Currency.getInstance("INR");
-		Currency currUS = Currency.getInstance("USD");
-
-		Locale.setDefault(Locale.US);
-		assertEquals("currK.getSymbol()", "KRW", currK.getSymbol());
-		assertEquals("currI.getSymbol()", "INR", currI.getSymbol());
-		assertEquals("currUS.getSymbol()", "$", currUS.getSymbol());
-
-		Locale.setDefault(new Locale("ko", "KR"));
-		assertEquals("currK.getSymbol()", "\uffe6", currK.getSymbol());
-		assertEquals("currI.getSymbol()", "INR", currI.getSymbol());
-		assertEquals("currUS.getSymbol()", "USD", currUS.getSymbol());
-
-		// test what happens if this is an invalid locale,
-		// one with Korean country but an India language
-		// this method should return the currency codes in that case
-		Locale.setDefault(new Locale("kr", "KR"));
-		assertEquals("currK.getSymbol()", "KRW", currK.getSymbol());
-		assertEquals("currI.getSymbol()", "INR", currI.getSymbol());
-		assertEquals("currUS.getSymbol()", "USD", currUS.getSymbol());
-	}
-
-	/**
-	 * @tests java.util.Currency#getSymbol(java.util.Locale)
-	 */
-	public void test_getSymbolLjava_util_Locale() {
-		Locale.setDefault(Locale.US);
-		Currency currE = Currency.getInstance("EUR");
-		assertEquals("EUR", currE.getSymbol(Locale.JAPAN));
-		assertEquals("EUR", currE.getSymbol(Locale.JAPANESE));
-		assertEquals("EUR", currE.getSymbol(new Locale("", "FR")));
-		assertEquals("\u20ac", currE.getSymbol(Locale.FRANCE));
-		assertEquals("EUR", currE.getSymbol(Locale.FRENCH));
-
-		Currency currJ = Currency.getInstance("JPY");
-		assertEquals("\uffe5", currJ.getSymbol(Locale.JAPAN));
-		assertEquals("JPY", currJ.getSymbol(Locale.JAPANESE));
-		assertEquals("JPY", currJ.getSymbol(Locale.FRANCE));
-		assertEquals("JPY", currJ.getSymbol(Locale.FRENCH));
-
-		Currency currUS = Currency.getInstance("USD");
-		assertEquals("USD", currUS.getSymbol(Locale.JAPAN));
-
-		Locale.setDefault(new Locale("ja", "JP"));
-		assertEquals("\uffe5", currJ.getSymbol(new Locale("", "JP")));
-		assertEquals("USD", currUS.getSymbol(new Locale("", "JP")));
-
-		Locale.setDefault(Locale.US);
-		assertEquals("JPY", currJ.getSymbol(new Locale("", "JP")));
-		assertEquals("$", currUS.getSymbol(new Locale("", "JP")));
-
-		assertEquals("USD", currUS.getSymbol(Locale.JAPANESE));
-		assertEquals("USD", currUS.getSymbol(Locale.FRANCE));
-		assertEquals("USD", currUS.getSymbol(Locale.FRENCH));
-		assertEquals("USD", currUS.getSymbol(new Locale("fr", "FR")));
-		assertEquals("$", currUS.getSymbol(new Locale("", "FR"))); // default
-		// locale
-
-		assertEquals("$", currUS.getSymbol(Locale.US));
-		assertEquals("USD", currUS.getSymbol(Locale.ENGLISH));
-
-		assertEquals("$", currUS.getSymbol(new Locale("en", "US")));
-		assertEquals("$", currUS.getSymbol(new Locale("", "US")));
-
-		Currency currCA = Currency.getInstance("CAD");
-		assertEquals("CAD", currCA.getSymbol(Locale.JAPAN));
-		assertEquals("CAD", currCA.getSymbol(Locale.JAPANESE));
-		assertEquals("CAD", currCA.getSymbol(Locale.FRANCE));
-		assertEquals("CAD", currCA.getSymbol(Locale.FRENCH));
-		assertEquals("CAD", currCA.getSymbol(Locale.US));
-		assertEquals("CAD", currCA.getSymbol(Locale.ENGLISH));
-		assertEquals("CAD", currCA.getSymbol(new Locale("es", "US")));
-		assertEquals("CAD", currCA.getSymbol(new Locale("en", "US")));
-
-		assertEquals("$", currCA.getSymbol(Locale.CANADA));
-		assertEquals("$", currCA.getSymbol(Locale.CANADA_FRENCH));
-		assertEquals("$", currCA.getSymbol(new Locale("en", "CA")));
-		assertEquals("$", currCA.getSymbol(new Locale("fr", "CA")));
-		assertEquals("CAD", currCA.getSymbol(new Locale("", "CA")));
-
-		// tests what happens with improper locales, i.e. countries without the
-		// given language
-		assertEquals("currUS.getSymbol(new Locale(\"ar\", \"US\"))", "USD",
-				currUS.getSymbol(new Locale("ar", "US")));
-		assertEquals("currUS.getSymbol(new Locale(\"ar\", \"CA\"))", "USD",
-				currUS.getSymbol(new Locale("ar", "CA")));
-		assertEquals("currCA.getSymbol(new Locale(\"ar\", \"US\"))", "CAD",
-				currCA.getSymbol(new Locale("ar", "US")));
-		assertEquals("currCA.getSymbol(new Locale(\"ar\", \"CA\"))", "CAD",
-				currCA.getSymbol(new Locale("ar", "CA")));
-		assertEquals("currJ.getSymbol(new Locale(\"ja\", \"US\"))", "JPY",
-				currJ.getSymbol(new Locale("ja", "US")));
-		assertEquals("currUS.getSymbol(new Locale(\"ja\", \"US\"))", "USD",
-				currUS.getSymbol(new Locale("ja", "US")));
-
-		// cross testing between USD and JPY when locale is JAPANESE JAPAN
-
-		// set default locale to Locale_ja_JP
-		Locale.setDefault(new Locale("ja", "JP"));
-
-		Currency currJ2 = Currency.getInstance("JPY");
-		Currency currUS2 = Currency.getInstance("USD");
-
-		// the real JAPAN locale
-		assertEquals("\uffe5", currJ2.getSymbol(new Locale("ja", "JP")));
-
-		// no language
-		assertEquals("\uffe5", currJ2.getSymbol(new Locale("", "JP")));
-
-		// no country
-		assertEquals("JPY", currJ2.getSymbol(new Locale("ja", "")));
-
-		// no language
-		assertEquals("\uffe5", currJ2.getSymbol(new Locale("", "US")));
-
-		// no country
-		assertEquals("JPY", currJ2.getSymbol(new Locale("en", "")));
-
-		// bogus Locales , when default locale is Locale_ja_JP
-		assertEquals("JPY", currJ2.getSymbol(new Locale("ar", "JP")));
-		assertEquals("JPY", currJ2.getSymbol(new Locale("ar", "US")));
-		assertEquals("JPY", currJ2.getSymbol(new Locale("ja", "AE")));
-		assertEquals("JPY", currJ2.getSymbol(new Locale("en", "AE")));
-		assertEquals("currJ.getSymbol(new Locale(\"ja\", \"US\"))", "JPY",
-				currJ.getSymbol(new Locale("ja", "US")));
-
-		// the real US locale
-		assertEquals("$", currUS2.getSymbol(new Locale("en", "US")));
-
-		// no country
-		assertEquals("USD", currUS2.getSymbol(new Locale("ja", "")));
-
-		// no language
-		assertEquals("USD", currUS2.getSymbol(new Locale("", "JP")));
-
-		// no language
-		assertEquals("USD", currUS2.getSymbol(new Locale("", "US")));
-
-		// no country
-		assertEquals("USD", currUS2.getSymbol(new Locale("en", "")));
-
-		// bogus Locales , when default locale is Locale_ja_JP
-		assertEquals("USD", currUS2.getSymbol(new Locale("ar", "JP")));
-		assertEquals("USD", currUS2.getSymbol(new Locale("ar", "US")));
-		assertEquals("USD", currUS2.getSymbol(new Locale("ja", "AE")));
-		assertEquals("USD", currUS2.getSymbol(new Locale("en", "AE")));
-		assertEquals("currUS.getSymbol(new Locale(\"ja\", \"US\"))", "USD",
-				currUS.getSymbol(new Locale("ja", "US")));
-
-		Locale.setDefault(Locale.US);
-
-		// euro tests
-		Currency currDKK = Currency.getInstance("DKK");
-		assertEquals("\u20ac", currE.getSymbol(new Locale("da", "DK")));
-		assertEquals("kr", currDKK.getSymbol(new Locale("da", "DK")));
-
-		assertEquals("EUR", currE.getSymbol(new Locale("da", "")));
-		assertEquals("DKK", currDKK.getSymbol(new Locale("da", "")));
-
-		assertEquals("EUR", currE.getSymbol(new Locale("", "DK")));
-		assertEquals("DKK", currDKK.getSymbol(new Locale("", "DK")));
-
-		Locale.setDefault(new Locale("da", "DK"));
-		assertEquals("\u20ac", currE.getSymbol(new Locale("da", "DK")));
-		assertEquals("kr", currDKK.getSymbol(new Locale("da", "DK")));
-
-		assertEquals("EUR", currE.getSymbol(new Locale("da", "")));
-		assertEquals("DKK", currDKK.getSymbol(new Locale("da", "")));
-
-		assertEquals("\u20ac", currE.getSymbol(new Locale("", "DK")));
-		assertEquals("kr", currDKK.getSymbol(new Locale("", "DK")));
-
-		assertEquals("EUR", currE.getSymbol(new Locale("ar", "AE")));
-		assertEquals("DKK", currDKK.getSymbol(new Locale("ar", "AE")));
-	}
-
-	/**
-	 * @tests java.util.Currency#getDefaultFractionDigits()
-	 */
-	public void test_getDefaultFractionDigits() {
-		Currency c1 = Currency.getInstance("EUR");
-		c1.getDefaultFractionDigits();
-		assertEquals(" Currency.getInstance(\"" + c1
-				+ "\") returned incorrect number of digits. ", 2, c1
-				.getDefaultFractionDigits());
-
-		Currency c2 = Currency.getInstance("JPY");
-		c2.getDefaultFractionDigits();
-		assertEquals(" Currency.getInstance(\"" + c2
-				+ "\") returned incorrect number of digits. ", 0, c2
-				.getDefaultFractionDigits());
-
-		Currency c3 = Currency.getInstance("XBD");
-		c3.getDefaultFractionDigits();
-		assertEquals(" Currency.getInstance(\"" + c3
-				+ "\") returned incorrect number of digits. ", -1, c3
-				.getDefaultFractionDigits());
-
-	}
-
-	protected void setUp() {
-		Locale.setDefault(defaultLocale);
-	}
-
-	protected void tearDown() {
-	}
-
-	/**
-	 * Helper method to display Currency info
-	 * 
-	 * @param c
-	 */
-	private void printCurrency(Currency c) {
-		System.out.println();
-		System.out.println(c.getCurrencyCode());
-		System.out.println(c.getSymbol());
-		System.out.println(c.getDefaultFractionDigits());
-	}
-
-	/**
-	 * helper method to display Locale info
-	 */
-	private static void printLocale(Locale loc) {
-		System.out.println();
-		System.out.println(loc.getDisplayName());
-		System.out.println(loc.getCountry());
-		System.out.println(loc.getLanguage());
-		System.out.println(loc.getDisplayCountry());
-		System.out.println(loc.getDisplayLanguage());
-		System.out.println(loc.getDisplayName());
-		System.out.println(loc.getISO3Country());
-		System.out.println(loc.getISO3Language());
-	}
+    /**
+     * @tests java.util.Currency#getInstance(java.lang.String)
+     */
+    public void test_getInstanceLjava_lang_String() {
+        // see test_getInstanceLjava_util_Locale() tests
+    }
+
+    /**
+     * @tests java.util.Currency#getInstance(java.util.Locale)
+     */
+    public void test_getInstanceLjava_util_Locale() {
+        /*
+         * the behaviour in all these three cases should be the same since this
+         * method ignores language and variant component of the locale.
+         */
+        Currency c0 = Currency.getInstance("CAD");
+        Currency c1 = Currency.getInstance(new Locale("en", "CA"));
+        assertTrue(
+                "Currency.getInstance(new Locale(\"en\",\"CA\")) isn't equal to Currency.getInstance(\"CAD\")",
+                c1 == c0);
+        Currency c2 = Currency.getInstance(new Locale("fr", "CA"));
+        assertTrue(
+                "Currency.getInstance(new Locale(\"fr\",\"CA\")) isn't equal to Currency.getInstance(\"CAD\")",
+                c2 == c0);
+        Currency c3 = Currency.getInstance(new Locale("", "CA"));
+        assertTrue(
+                "Currency.getInstance(new Locale(\"\",\"CA\")) isn't equal to Currency.getInstance(\"CAD\")",
+                c3 == c0);
+
+        c0 = Currency.getInstance("JPY");
+        c1 = Currency.getInstance(new Locale("ja", "JP"));
+        assertTrue(
+                "Currency.getInstance(new Locale(\"ja\",\"JP\")) isn't equal to Currency.getInstance(\"JPY\")",
+                c1 == c0);
+        c2 = Currency.getInstance(new Locale("", "JP"));
+        assertTrue(
+                "Currency.getInstance(new Locale(\"\",\"JP\")) isn't equal to Currency.getInstance(\"JPY\")",
+                c2 == c0);
+        c3 = Currency.getInstance(new Locale("bogus", "JP"));
+        assertTrue(
+                "Currency.getInstance(new Locale(\"bogus\",\"JP\")) isn't equal to Currency.getInstance(\"JPY\")",
+                c3 == c0);
+
+        Locale localeGu = new Locale("gu", "IN");
+        Currency cGu = Currency.getInstance(localeGu);
+        Locale localeKn = new Locale("kn", "IN");
+        Currency cKn = Currency.getInstance(localeKn);
+        assertTrue("Currency.getInstance(Locale_" + localeGu.toString() + "))"
+                + "isn't equal to " + "Currency.getInstance(Locale_"
+                + localeKn.toString() + "))", cGu == cKn);
+
+        // some teritories do not have currencies, like Antarctica
+        Locale loc = new Locale("", "AQ");
+        try {
+            Currency curr = Currency.getInstance(loc);
+            assertNull(
+                    "Currency.getInstance(new Locale(\"\", \"AQ\")) did not return null",
+                    curr);
+        } catch (IllegalArgumentException e) {
+            fail("Unexpected IllegalArgumentException " + e);
+        }
+
+        // unsupported/legacy iso3 countries
+        // RI does not support them.
+        loc = new Locale("", "ZR");
+        Currency.getInstance(loc);
+
+        loc = new Locale("", "ZAR");
+        Currency.getInstance(loc);
+
+        loc = new Locale("", "FX");
+        Currency.getInstance(loc);
+
+        loc = new Locale("", "FXX");
+        Currency.getInstance(loc);
+    }
+
+    /**
+     * @tests java.util.Currency#getSymbol()
+     */
+    public void test_getSymbol() {
+
+        Currency currK = Currency.getInstance("KRW");
+        Currency currI = Currency.getInstance("INR");
+        Currency currUS = Currency.getInstance("USD");
+
+        Locale.setDefault(Locale.US);
+        assertEquals("currK.getSymbol()", "KRW", currK.getSymbol());
+        // Some non-bug differences below because of CLDR data.
+        assertEquals("currI.getSymbol()", "0#Rs.|1#Re.|1<Rs.", currI
+                .getSymbol());
+        assertEquals("currUS.getSymbol()", "$", currUS.getSymbol());
+
+        Locale.setDefault(new Locale("ko", "KR"));
+        assertEquals("currK.getSymbol()", "\uffe6", currK.getSymbol());
+        assertEquals("currI.getSymbol()", "0#Rs.|1#Re.|1<Rs.", currI
+                .getSymbol());
+        assertEquals("currUS.getSymbol()", "US$", currUS.getSymbol());
+
+        // test what happens if this is an invalid locale,
+        // one with Korean country but an India language
+        // this method should return the currency codes in that case
+        Locale.setDefault(new Locale("kr", "KR"));
+        assertEquals("currK.getSymbol()", "KRW", currK.getSymbol());
+        assertEquals("currI.getSymbol()", "0#Rs.|1#Re.|1<Rs.", currI
+                .getSymbol());
+        assertEquals("currUS.getSymbol()", "$", currUS.getSymbol());
+    }
+
+    /**
+     * @tests java.util.Currency#getSymbol(java.util.Locale)
+     */
+    public void test_getSymbolLjava_util_Locale() {
+        Locale.setDefault(Locale.US);
+        Currency currE = Currency.getInstance("EUR");
+        // Some non-bug differences below because of CLDR data.
+        assertEquals("\u20ac", currE.getSymbol(Locale.JAPAN));
+        assertEquals("EUR", currE.getSymbol(Locale.JAPANESE));
+        assertEquals("\u20ac", currE.getSymbol(new Locale("", "FR")));
+        assertEquals("\u20ac", currE.getSymbol(Locale.FRANCE));
+        assertEquals("EUR", currE.getSymbol(Locale.FRENCH));
+
+        Currency currJ = Currency.getInstance("JPY");
+        assertEquals("\uffe5", currJ.getSymbol(Locale.JAPAN));
+        assertEquals("JPY", currJ.getSymbol(Locale.JAPANESE));
+        assertEquals("\u00a5", currJ.getSymbol(Locale.FRANCE));
+        assertEquals("JPY", currJ.getSymbol(Locale.FRENCH));
+
+        Currency currUS = Currency.getInstance("USD");
+        assertEquals("$", currUS.getSymbol(Locale.JAPAN));
+
+        Locale.setDefault(new Locale("ja", "JP"));
+        assertEquals("\u00a5", currJ.getSymbol(new Locale("", "JP")));
+        assertEquals("$", currUS.getSymbol(new Locale("", "JP")));
+
+        Locale.setDefault(Locale.US);
+        assertEquals("\u00a5", currJ.getSymbol(new Locale("", "JP")));
+        assertEquals("$", currUS.getSymbol(new Locale("", "JP")));
+
+        assertEquals("USD", currUS.getSymbol(Locale.JAPANESE));
+        assertEquals("$", currUS.getSymbol(Locale.FRANCE));
+        assertEquals("USD", currUS.getSymbol(Locale.FRENCH));
+        assertEquals("$", currUS.getSymbol(new Locale("fr", "FR")));
+        assertEquals("$", currUS.getSymbol(new Locale("", "FR"))); // default
+        // locale
+
+        assertEquals("$", currUS.getSymbol(Locale.US));
+        assertEquals("USD", currUS.getSymbol(Locale.ENGLISH));
+
+        assertEquals("$", currUS.getSymbol(new Locale("en", "US")));
+        assertEquals("$", currUS.getSymbol(new Locale("", "US")));
+
+        Currency currCA = Currency.getInstance("CAD");
+        assertEquals("CAD", currCA.getSymbol(Locale.JAPAN));
+        assertEquals("CAD", currCA.getSymbol(Locale.JAPANESE));
+        assertEquals("CAD", currCA.getSymbol(Locale.FRANCE));
+        assertEquals("CAD", currCA.getSymbol(Locale.FRENCH));
+        assertEquals("Can$", currCA.getSymbol(Locale.US));
+        assertEquals("CAD", currCA.getSymbol(Locale.ENGLISH));
+        assertEquals("Can$", currCA.getSymbol(new Locale("es", "US")));
+        assertEquals("Can$", currCA.getSymbol(new Locale("en", "US")));
+
+        assertEquals("$", currCA.getSymbol(Locale.CANADA));
+        assertEquals("$", currCA.getSymbol(Locale.CANADA_FRENCH));
+        assertEquals("$", currCA.getSymbol(new Locale("en", "CA")));
+        assertEquals("$", currCA.getSymbol(new Locale("fr", "CA")));
+        assertEquals("CAD", currCA.getSymbol(new Locale("", "CA")));
+
+        // tests what happens with improper locales, i.e. countries without the
+        // given language
+        assertEquals("currUS.getSymbol(new Locale(\"ar\", \"US\"))", "$",
+                currUS.getSymbol(new Locale("ar", "US")));
+        assertEquals("currUS.getSymbol(new Locale(\"ar\", \"CA\"))", "$",
+                currUS.getSymbol(new Locale("ar", "CA")));
+        assertEquals("currCA.getSymbol(new Locale(\"ar\", \"US\"))", "CAD",
+                currCA.getSymbol(new Locale("ar", "US")));
+        assertEquals("currCA.getSymbol(new Locale(\"ar\", \"CA\"))", "CAD",
+                currCA.getSymbol(new Locale("ar", "CA")));
+        assertEquals("currJ.getSymbol(new Locale(\"ja\", \"US\"))", "\uffe5",
+                currJ.getSymbol(new Locale("ja", "US")));
+        assertEquals("currUS.getSymbol(new Locale(\"ja\", \"US\"))", "$",
+                currUS.getSymbol(new Locale("ja", "US")));
+
+        // cross testing between USD and JPY when locale is JAPANESE JAPAN
+
+        // set default locale to Locale_ja_JP
+        Locale.setDefault(new Locale("ja", "JP"));
+
+        Currency currJ2 = Currency.getInstance("JPY");
+        Currency currUS2 = Currency.getInstance("USD");
+
+        // the real JAPAN locale
+        assertEquals("\uffe5", currJ2.getSymbol(new Locale("ja", "JP")));
+
+        // no language
+        assertEquals("\u00a5", currJ2.getSymbol(new Locale("", "JP")));
+
+        // no country
+        assertEquals("JPY", currJ2.getSymbol(new Locale("ja", "")));
+
+        // no language
+        assertEquals("\u00a5", currJ2.getSymbol(new Locale("", "US")));
+
+        // no country
+        assertEquals("JPY", currJ2.getSymbol(new Locale("en", "")));
+
+        // bogus Locales , when default locale is Locale_ja_JP
+        assertEquals("\u00a5", currJ2.getSymbol(new Locale("ar", "JP")));
+        assertEquals("\u00a5", currJ2.getSymbol(new Locale("ar", "US")));
+        assertEquals("\uffe5", currJ2.getSymbol(new Locale("ja", "AE")));
+        assertEquals("\u00a5", currJ2.getSymbol(new Locale("en", "AE")));
+        assertEquals("currJ.getSymbol(new Locale(\"ja\", \"US\"))", "\uffe5",
+                currJ.getSymbol(new Locale("ja", "US")));
+
+        // the real US locale
+        assertEquals("$", currUS2.getSymbol(new Locale("en", "US")));
+
+        // no country
+        assertEquals("USD", currUS2.getSymbol(new Locale("ja", "")));
+
+        // no language
+        assertEquals("$", currUS2.getSymbol(new Locale("", "JP")));
+
+        // no language
+        assertEquals("$", currUS2.getSymbol(new Locale("", "US")));
+
+        // no country
+        assertEquals("USD", currUS2.getSymbol(new Locale("en", "")));
+
+        // bogus Locales , when default locale is Locale_ja_JP
+        assertEquals("$", currUS2.getSymbol(new Locale("ar", "JP")));
+        assertEquals("$", currUS2.getSymbol(new Locale("ar", "US")));
+        assertEquals("$", currUS2.getSymbol(new Locale("ja", "AE")));
+        assertEquals("US$", currUS2.getSymbol(new Locale("en", "AE")));
+        assertEquals("currUS.getSymbol(new Locale(\"ja\", \"US\"))", "$",
+                currUS.getSymbol(new Locale("ja", "US")));
+
+        Locale.setDefault(Locale.US);
+
+        // euro tests
+        Currency currDKK = Currency.getInstance("DKK");
+        assertEquals("\u20ac", currE.getSymbol(new Locale("da", "DK")));
+        assertEquals("kr", currDKK.getSymbol(new Locale("da", "DK")));
+
+        assertEquals("EUR", currE.getSymbol(new Locale("da", "")));
+        assertEquals("DKK", currDKK.getSymbol(new Locale("da", "")));
+
+        assertEquals("\u20ac", currE.getSymbol(new Locale("", "DK")));
+        assertEquals("DKK", currDKK.getSymbol(new Locale("", "DK")));
+
+        Locale.setDefault(new Locale("da", "DK"));
+        assertEquals("\u20ac", currE.getSymbol(new Locale("da", "DK")));
+        assertEquals("kr", currDKK.getSymbol(new Locale("da", "DK")));
+
+        assertEquals("EUR", currE.getSymbol(new Locale("da", "")));
+        assertEquals("DKK", currDKK.getSymbol(new Locale("da", "")));
+
+        assertEquals("\u20ac", currE.getSymbol(new Locale("", "DK")));
+        assertEquals("DKK", currDKK.getSymbol(new Locale("", "DK")));
+
+        assertEquals("\u20ac", currE.getSymbol(new Locale("ar", "AE")));
+        assertEquals("DKK", currDKK.getSymbol(new Locale("ar", "AE")));
+    }
+
+    /**
+     * @tests java.util.Currency#getDefaultFractionDigits()
+     */
+    public void test_getDefaultFractionDigits() {
+        Currency c1 = Currency.getInstance("EUR");
+        c1.getDefaultFractionDigits();
+        assertEquals(" Currency.getInstance(\"" + c1
+                + "\") returned incorrect number of digits. ", 2, c1
+                .getDefaultFractionDigits());
+
+        Currency c2 = Currency.getInstance("JPY");
+        c2.getDefaultFractionDigits();
+        assertEquals(" Currency.getInstance(\"" + c2
+                + "\") returned incorrect number of digits. ", 0, c2
+                .getDefaultFractionDigits());
+
+        Currency c3 = Currency.getInstance("XBD");
+        // A non-bug differences below because of CLDR data.
+        c3.getDefaultFractionDigits();
+        assertEquals(" Currency.getInstance(\"" + c3
+                + "\") returned incorrect number of digits. ", 2, c3
+                .getDefaultFractionDigits());
+
+    }
+
+    protected void setUp() {
+        Locale.setDefault(defaultLocale);
+    }
+
+    protected void tearDown() {
+    }
+
+    /**
+     * Helper method to display Currency info
+     * 
+     * @param c
+     */
+    private void printCurrency(Currency c) {
+        System.out.println();
+        System.out.println(c.getCurrencyCode());
+        System.out.println(c.getSymbol());
+        System.out.println(c.getDefaultFractionDigits());
+    }
+
+    /**
+     * helper method to display Locale info
+     */
+    private static void printLocale(Locale loc) {
+        System.out.println();
+        System.out.println(loc.getDisplayName());
+        System.out.println(loc.getCountry());
+        System.out.println(loc.getLanguage());
+        System.out.println(loc.getDisplayCountry());
+        System.out.println(loc.getDisplayLanguage());
+        System.out.println(loc.getDisplayName());
+        System.out.println(loc.getISO3Country());
+        System.out.println(loc.getISO3Language());
+    }
 }



Mime
View raw message