/** ******************************************************************************* * Copyright (C) 2009, International Business Machines Corporation and * * others. All Rights Reserved. * ******************************************************************************* */ package com.ibm.icu.dev.test.util; import java.util.MissingResourceException; import com.ibm.icu.dev.test.TestFmwk; import com.ibm.icu.impl.ICUResourceBundle; import com.ibm.icu.text.Collator; import com.ibm.icu.util.ULocale; import com.ibm.icu.util.UResourceBundle; public final class ICUResourceBundleCollationTest extends TestFmwk { private static final String COLLATION_RESNAME = "collations"; private static final String COLLATION_KEYWORD = "collation"; private static final String DEFAULT_NAME = "default"; private static final String STANDARD_NAME = "standard"; public static void main(String args[]) throws Exception { new ICUResourceBundleCollationTest().run(args); } public void TestFunctionalEquivalent(){ String[] collCases = { // avail locale equiv "f", "de_US_CALIFORNIA", "de", "f", "zh_TW@collation=stroke", "zh@collation=stroke", /* alias of zh_Hant_TW */ "t", "zh_Hant_TW@collation=stroke", "zh@collation=stroke", "f", "de_CN@collation=pinyin", "de", "t", "zh@collation=pinyin", "zh", "f", "zh_CN@collation=pinyin", "zh", /* alias of zh_Hans_CN */ "t", "zh_Hans_CN@collation=pinyin", "zh", "f", "zh_HK@collation=pinyin", "zh", /* alias of zh_Hant_HK */ "t", "zh_Hant_HK@collation=pinyin", "zh", "f", "zh_HK@collation=stroke", "zh@collation=stroke", /* alias of zh_Hant_HK */ "t", "zh_Hant_HK@collation=stroke", "zh@collation=stroke", "f", "zh_HK", "zh@collation=stroke", /* alias of zh_Hant_HK */ "t", "zh_Hant_HK", "zh@collation=stroke", "f", "zh_MO", "zh@collation=stroke", /* alias of zh_Hant_MO */ "t", "zh_Hant_MO", "zh@collation=stroke", "f", "zh_TW_STROKE", "zh@collation=stroke", "f", "zh_TW_STROKE@collation=big5han", "zh@collation=big5han", "f", "de_CN@calendar=japanese", "de", "t", "de@calendar=japanese", "de", "f", "zh_TW@collation=big5han", "zh@collation=big5han", /* alias of zh_Hant_TW */ "t", "zh_Hant_TW@collation=big5han", "zh@collation=big5han", "f", "zh_TW@collation=gb2312han", "zh@collation=gb2312han", /* alias of zh_Hant_TW */ "t", "zh_Hant_TW@collation=gb2312han", "zh@collation=gb2312han", "f", "zh_CN@collation=big5han", "zh@collation=big5han", /* alias of zh_Hans_CN */ "t", "zh_Hans_CN@collation=big5han", "zh@collation=big5han", "f", "zh_CN@collation=gb2312han", "zh@collation=gb2312han", /* alias of zh_Hans_CN */ "t", "zh_Hans_CN@collation=gb2312han", "zh@collation=gb2312han", "t", "zh@collation=big5han", "zh@collation=big5han", "t", "zh@collation=gb2312han", "zh@collation=gb2312han", "t", "hi_IN@collation=direct", "hi@collation=direct", "t", "hi@collation=standard", "hi", "t", "hi@collation=direct", "hi@collation=direct", "f", "hi_AU@collation=direct;currency=CHF;calendar=buddhist", "hi@collation=direct", "f", "hi_AU@collation=standard;currency=CHF;calendar=buddhist", "hi", "t", "de_DE@collation=pinyin", "de", /* bug 4582 tests */ "f", "de_DE_BONN@collation=pinyin", "de", "t", "nl", "root", "t", "nl_NL", "root", "f", "nl_NL_EEXT", "root", "t", "nl@collation=stroke", "root", "t", "nl_NL@collation=stroke", "root", "f", "nl_NL_EEXT@collation=stroke", "root", }; logln("Testing functional equivalents for collation..."); getFunctionalEquivalentTestCases(ICUResourceBundle.ICU_COLLATION_BASE_NAME, Collator.class.getClassLoader(), COLLATION_RESNAME, COLLATION_KEYWORD, true, collCases); } public void TestGetWithFallback(){ /* UResourceBundle bundle =(UResourceBundle) UResourceBundle.getBundleInstance("com/ibm/icu/dev/data/testdata","te_IN"); String key = bundle.getStringWithFallback("Keys/collation"); if(!key.equals("COLLATION")){ errln("Did not get the expected result from getStringWithFallback method."); } String type = bundle.getStringWithFallback("Types/collation/direct"); if(!type.equals("DIRECT")){ errln("Did not get the expected result form getStringWithFallback method."); } */ ICUResourceBundle bundle = null; String key = null; try{ bundle = (ICUResourceBundle) UResourceBundle.getBundleInstance(ICUResourceBundle.ICU_COLLATION_BASE_NAME,ULocale.canonicalize("de__PHONEBOOK")); if(!bundle.getULocale().equals("de")){ errln("did not get the expected bundle"); } key = bundle.getStringWithFallback("collations/collation/default"); if(!key.equals("phonebook")){ errln("Did not get the expected result from getStringWithFallback method."); } }catch(MissingResourceException ex){ logln("got the expected exception"); } bundle = (ICUResourceBundle) UResourceBundle.getBundleInstance(ICUResourceBundle.ICU_COLLATION_BASE_NAME,"fr_FR"); key = bundle.getStringWithFallback("collations/default"); if(!key.equals("standard")){ errln("Did not get the expected result from getStringWithFallback method."); } } public void TestKeywordValues(){ String kwVals[]; boolean foundStandard = false; int n; logln("Testing getting collation values:"); kwVals = ICUResourceBundle.getKeywordValues(ICUResourceBundle.ICU_COLLATION_BASE_NAME,COLLATION_RESNAME); for(n=0;n " + expectLocale.toString() + ", but got " + new Boolean(gotAvail).toString() + " " + equivLocale.toString()); } } } }