Subversion Repository Public Repository

litesoft

Diff Revisions 933 vs 935 for /trunk/DeviceDesktopTest/src/org/litesoft/locale/DerivedLocaleGraphTest.java

Diff revisions: vs.
  @@ -1,116 +1,124 @@
1 1 package org.litesoft.locale;
2 2
3 - import junit.framework.AssertionFailedError;
4 3 import org.junit.Test;
5 4
5 + import junit.framework.*;
6 +
6 7 import java.util.*;
7 8
8 - public class DerivedLocaleGraphTest {
9 - private static final List<String> FRENCH_CANADIAN = toCodes(Locale.CANADA_FRENCH, Locale.FRENCH, Locale.CANADA, Locale.ENGLISH);
10 - private static final List<String> ENGLISH_CANADIAN = toCodes(Locale.CANADA, Locale.ENGLISH);
11 - private static final List<String> ENGLISH_US = toCodes(Locale.US, Locale.ENGLISH);
12 - private static final List<String> MEXICAN_US = toCodes(new Locale("es", "US"), new Locale("es", "MX"), new Locale("es"), Locale.US, Locale.ENGLISH);
13 - private static final List<String> BRITAIN = toCodes(Locale.UK, Locale.ENGLISH);
14 - private static final List<String> GERMAN = toCodes(Locale.GERMANY, Locale.GERMAN);
15 - private static final List<String> FRANCE = toCodes(Locale.FRANCE, Locale.FRENCH);
16 - private static final List<String> ITALY = toCodes(Locale.ITALY, Locale.ITALIAN);
17 - private static final List<String> JAPAN = toCodes(Locale.JAPAN, Locale.JAPANESE, Locale.ENGLISH);
18 - private static final List<String> KOREA = toCodes(Locale.KOREA, Locale.KOREAN);
19 - private static final List<String> CHINA = toCodes(Locale.CHINA, Locale.PRC, Locale.CHINESE, Locale.SIMPLIFIED_CHINESE);
20 - private static final List<String> TAIWAN = toCodes(Locale.TAIWAN, Locale.TRADITIONAL_CHINESE, Locale.CHINESE, Locale.SIMPLIFIED_CHINESE, Locale.ENGLISH);
9 + public class DerivedLocaleGraphTest
10 + {
11 + private static final List<String> FRENCH_CANADIAN = toCodes( Locale.CANADA_FRENCH, Locale.FRENCH, Locale.CANADA, Locale.ENGLISH );
12 + private static final List<String> ENGLISH_CANADIAN = toCodes( Locale.CANADA, Locale.ENGLISH );
13 + private static final List<String> ENGLISH_US = toCodes( Locale.US, Locale.ENGLISH );
14 + private static final List<String> MEXICAN_US = toCodes( new Locale( "es", "US" ), new Locale( "es", "MX" ), new Locale( "es" ), Locale.US, Locale.ENGLISH );
15 + private static final List<String> BRITAIN = toCodes( Locale.UK, Locale.ENGLISH );
16 + private static final List<String> GERMAN = toCodes( Locale.GERMANY, Locale.GERMAN );
17 + private static final List<String> FRANCE = toCodes( Locale.FRANCE, Locale.FRENCH );
18 + private static final List<String> ITALY = toCodes( Locale.ITALY, Locale.ITALIAN );
19 + private static final List<String> JAPAN = toCodes( Locale.JAPAN, Locale.JAPANESE, Locale.ENGLISH );
20 + private static final List<String> KOREA = toCodes( Locale.KOREA, Locale.KOREAN );
21 + private static final List<String> CHINA = toCodes( Locale.CHINA, Locale.PRC, Locale.CHINESE, Locale.SIMPLIFIED_CHINESE );
22 + private static final List<String> TAIWAN = toCodes( Locale.TAIWAN, Locale.TRADITIONAL_CHINESE, Locale.CHINESE, Locale.SIMPLIFIED_CHINESE, Locale.ENGLISH );
21 23
22 24 private AbstractLocale[] SUPPORTED = { // Alphabetical
23 - Locale_de_DE.INSTANCE,
24 - Locale_en_US.INSTANCE, // Locale_en_CA.INSTANCE, Locale_en_GB.INSTANCE,
25 - Locale_es_ES.INSTANCE, // Locale_es_MX.INSTANCE,
26 - Locale_fr_FR.INSTANCE, // Locale_fr_CA.INSTANCE,
27 - Locale_it_IT.INSTANCE,
28 - Locale_ja_JP.INSTANCE,
29 - Locale_ko_KR.INSTANCE,
30 - Locale_zh_CN.INSTANCE, // Locale_zh_TW.INSTANCE,
25 + Locale_de_DE.INSTANCE,
26 + Locale_en_US.INSTANCE, // Locale_en_CA.INSTANCE, Locale_en_GB.INSTANCE,
27 + Locale_es_ES.INSTANCE, // Locale_es_MX.INSTANCE,
28 + Locale_fr_FR.INSTANCE, // Locale_fr_CA.INSTANCE,
29 + Locale_it_IT.INSTANCE,
30 + Locale_ja_JP.INSTANCE,
31 + Locale_ko_KR.INSTANCE,
32 + Locale_zh_CN.INSTANCE, // Locale_zh_TW.INSTANCE,
31 33 };
32 34
33 35 @Test
34 36 public void testSelect()
35 - throws Exception {
36 - expectSelected(Locale_fr_FR.INSTANCE, FRENCH_CANADIAN, null, SUPPORTED);
37 - expectSelected(Locale_fr_CA.INSTANCE, FRENCH_CANADIAN, Locale_fr_CA.INSTANCE, SUPPORTED);
38 - expectSelected(Locale_en_CA.INSTANCE, FRENCH_CANADIAN, Locale_en_CA.INSTANCE, Locale_en_US.INSTANCE);
39 - expectSelected(Locale_en_US.INSTANCE, FRENCH_CANADIAN, Locale_en_GB.INSTANCE, Locale_en_US.INSTANCE);
40 -
41 - expectSelected(Locale_en_US.INSTANCE, ENGLISH_CANADIAN, null, SUPPORTED);
42 - expectSelected(Locale_en_US.INSTANCE, ENGLISH_CANADIAN, Locale_fr_CA.INSTANCE, SUPPORTED);
43 - expectSelected(Locale_en_CA.INSTANCE, ENGLISH_CANADIAN, Locale_en_CA.INSTANCE, SUPPORTED);
44 - expectSelected(Locale_en_US.INSTANCE, ENGLISH_CANADIAN, Locale_en_GB.INSTANCE, SUPPORTED);
45 -
46 - expectSelected(Locale_en_US.INSTANCE, ENGLISH_US, Locale_en_US.INSTANCE);
47 - expectSelected(Locale_en_US.INSTANCE, ENGLISH_US, null, SUPPORTED);
48 - expectSelected(Locale_en_US.INSTANCE, ENGLISH_US, Locale_en_GB.INSTANCE, SUPPORTED);
49 - expectSelected(Locale_en_US.INSTANCE, ENGLISH_US, Locale_en_CA.INSTANCE, SUPPORTED);
50 -
51 - expectSelected(Locale_es_ES.INSTANCE, MEXICAN_US, null, SUPPORTED);
52 - expectSelected(Locale_es_MX.INSTANCE, MEXICAN_US, Locale_es_MX.INSTANCE, SUPPORTED);
53 - expectSelected(Locale_en_US.INSTANCE, MEXICAN_US, Locale_en_GB.INSTANCE, Locale_en_US.INSTANCE);
54 -
55 - expectSelected(Locale_en_US.INSTANCE, BRITAIN, null, SUPPORTED);
56 - expectSelected(Locale_en_US.INSTANCE, BRITAIN, Locale_en_CA.INSTANCE, SUPPORTED);
57 - expectSelected(Locale_en_GB.INSTANCE, BRITAIN, Locale_en_GB.INSTANCE, SUPPORTED);
58 -
59 - expectSelected(Locale_de_DE.INSTANCE, GERMAN, null, SUPPORTED);
60 - expectSelected(Locale_de_DE.INSTANCE, GERMAN, Locale_zh_TW.INSTANCE, SUPPORTED);
61 - expectSelected(Locale_en_US.INSTANCE, GERMAN, Locale_en_GB.INSTANCE, Locale_en_US.INSTANCE);
62 -
63 - expectSelected(Locale_fr_FR.INSTANCE, FRANCE, null, SUPPORTED);
64 - expectSelected(Locale_fr_FR.INSTANCE, FRANCE, Locale_zh_TW.INSTANCE, SUPPORTED);
65 - expectSelected(Locale_en_US.INSTANCE, FRANCE, Locale_en_GB.INSTANCE, Locale_en_US.INSTANCE);
66 -
67 - expectSelected(Locale_it_IT.INSTANCE, ITALY, null, SUPPORTED);
68 - expectSelected(Locale_it_IT.INSTANCE, ITALY, Locale_zh_TW.INSTANCE, SUPPORTED);
69 - expectSelected(Locale_en_US.INSTANCE, ITALY, Locale_en_GB.INSTANCE, Locale_en_US.INSTANCE);
70 -
71 - expectSelected(Locale_ja_JP.INSTANCE, JAPAN, null, SUPPORTED);
72 - expectSelected(Locale_ja_JP.INSTANCE, JAPAN, Locale_zh_TW.INSTANCE, SUPPORTED);
73 - expectSelected(Locale_en_US.INSTANCE, JAPAN, Locale_en_GB.INSTANCE, Locale_en_US.INSTANCE);
74 -
75 - expectSelected(Locale_ko_KR.INSTANCE, KOREA, null, SUPPORTED);
76 - expectSelected(Locale_ko_KR.INSTANCE, KOREA, Locale_zh_TW.INSTANCE, SUPPORTED);
77 - expectSelected(Locale_en_US.INSTANCE, KOREA, Locale_en_GB.INSTANCE, Locale_en_US.INSTANCE);
78 -
79 - expectSelected(Locale_zh_CN.INSTANCE, CHINA, null, SUPPORTED);
80 - expectSelected(Locale_zh_CN.INSTANCE, CHINA, Locale_zh_TW.INSTANCE, SUPPORTED);
81 - expectSelected(Locale_en_US.INSTANCE, CHINA, Locale_en_GB.INSTANCE, Locale_en_US.INSTANCE);
82 -
83 - expectSelected(Locale_zh_CN.INSTANCE, TAIWAN, null, SUPPORTED);
84 - expectSelected(Locale_zh_TW.INSTANCE, TAIWAN, Locale_zh_TW.INSTANCE, SUPPORTED);
85 - expectSelected(Locale_en_US.INSTANCE, TAIWAN, Locale_en_GB.INSTANCE, Locale_en_US.INSTANCE);
86 -
87 - List<String> zTonga = toCodes( new Locale("to","TO"), new Locale("en","AU"), Locale.ENGLISH);
88 - expectSelected(Locale_en_US.INSTANCE, zTonga, null, SUPPORTED);
89 - expectSelected(Locale_en_US.INSTANCE, zTonga, Locale_zh_TW.INSTANCE, SUPPORTED);
90 - expectSelected(Locale_en_US.INSTANCE, zTonga, Locale_en_GB.INSTANCE, Locale_en_US.INSTANCE);
37 + throws Exception
38 + {
39 + expectSelected( Locale_fr_FR.INSTANCE, FRENCH_CANADIAN, null, SUPPORTED );
40 + expectSelected( Locale_fr_CA.INSTANCE, FRENCH_CANADIAN, Locale_fr_CA.INSTANCE, SUPPORTED );
41 + expectSelected( Locale_en_CA.INSTANCE, FRENCH_CANADIAN, Locale_en_CA.INSTANCE, Locale_en_US.INSTANCE );
42 + expectSelected( Locale_en_US.INSTANCE, FRENCH_CANADIAN, Locale_en_GB.INSTANCE, Locale_en_US.INSTANCE );
43 +
44 + expectSelected( Locale_en_US.INSTANCE, ENGLISH_CANADIAN, null, SUPPORTED );
45 + expectSelected( Locale_en_US.INSTANCE, ENGLISH_CANADIAN, Locale_fr_CA.INSTANCE, SUPPORTED );
46 + expectSelected( Locale_en_CA.INSTANCE, ENGLISH_CANADIAN, Locale_en_CA.INSTANCE, SUPPORTED );
47 + expectSelected( Locale_en_US.INSTANCE, ENGLISH_CANADIAN, Locale_en_GB.INSTANCE, SUPPORTED );
48 +
49 + expectSelected( Locale_en_US.INSTANCE, ENGLISH_US, Locale_en_US.INSTANCE );
50 + expectSelected( Locale_en_US.INSTANCE, ENGLISH_US, null, SUPPORTED );
51 + expectSelected( Locale_en_US.INSTANCE, ENGLISH_US, Locale_en_GB.INSTANCE, SUPPORTED );
52 + expectSelected( Locale_en_US.INSTANCE, ENGLISH_US, Locale_en_CA.INSTANCE, SUPPORTED );
53 +
54 + expectSelected( Locale_es_ES.INSTANCE, MEXICAN_US, null, SUPPORTED );
55 + expectSelected( Locale_es_MX.INSTANCE, MEXICAN_US, Locale_es_MX.INSTANCE, SUPPORTED );
56 + expectSelected( Locale_en_US.INSTANCE, MEXICAN_US, Locale_en_GB.INSTANCE, Locale_en_US.INSTANCE );
57 +
58 + expectSelected( Locale_en_US.INSTANCE, BRITAIN, null, SUPPORTED );
59 + expectSelected( Locale_en_US.INSTANCE, BRITAIN, Locale_en_CA.INSTANCE, SUPPORTED );
60 + expectSelected( Locale_en_GB.INSTANCE, BRITAIN, Locale_en_GB.INSTANCE, SUPPORTED );
61 +
62 + expectSelected( Locale_de_DE.INSTANCE, GERMAN, null, SUPPORTED );
63 + expectSelected( Locale_de_DE.INSTANCE, GERMAN, Locale_zh_TW.INSTANCE, SUPPORTED );
64 + expectSelected( Locale_en_US.INSTANCE, GERMAN, Locale_en_GB.INSTANCE, Locale_en_US.INSTANCE );
65 +
66 + expectSelected( Locale_fr_FR.INSTANCE, FRANCE, null, SUPPORTED );
67 + expectSelected( Locale_fr_FR.INSTANCE, FRANCE, Locale_zh_TW.INSTANCE, SUPPORTED );
68 + expectSelected( Locale_en_US.INSTANCE, FRANCE, Locale_en_GB.INSTANCE, Locale_en_US.INSTANCE );
69 +
70 + expectSelected( Locale_it_IT.INSTANCE, ITALY, null, SUPPORTED );
71 + expectSelected( Locale_it_IT.INSTANCE, ITALY, Locale_zh_TW.INSTANCE, SUPPORTED );
72 + expectSelected( Locale_en_US.INSTANCE, ITALY, Locale_en_GB.INSTANCE, Locale_en_US.INSTANCE );
73 +
74 + expectSelected( Locale_ja_JP.INSTANCE, JAPAN, null, SUPPORTED );
75 + expectSelected( Locale_ja_JP.INSTANCE, JAPAN, Locale_zh_TW.INSTANCE, SUPPORTED );
76 + expectSelected( Locale_en_US.INSTANCE, JAPAN, Locale_en_GB.INSTANCE, Locale_en_US.INSTANCE );
77 +
78 + expectSelected( Locale_ko_KR.INSTANCE, KOREA, null, SUPPORTED );
79 + expectSelected( Locale_ko_KR.INSTANCE, KOREA, Locale_zh_TW.INSTANCE, SUPPORTED );
80 + expectSelected( Locale_en_US.INSTANCE, KOREA, Locale_en_GB.INSTANCE, Locale_en_US.INSTANCE );
81 +
82 + expectSelected( Locale_zh_CN.INSTANCE, CHINA, null, SUPPORTED );
83 + expectSelected( Locale_zh_CN.INSTANCE, CHINA, Locale_zh_TW.INSTANCE, SUPPORTED );
84 + expectSelected( Locale_en_US.INSTANCE, CHINA, Locale_en_GB.INSTANCE, Locale_en_US.INSTANCE );
85 +
86 + expectSelected( Locale_zh_CN.INSTANCE, TAIWAN, null, SUPPORTED );
87 + expectSelected( Locale_zh_TW.INSTANCE, TAIWAN, Locale_zh_TW.INSTANCE, SUPPORTED );
88 + expectSelected( Locale_en_US.INSTANCE, TAIWAN, Locale_en_GB.INSTANCE, Locale_en_US.INSTANCE );
89 +
90 + List<String> zTonga = toCodes( new Locale( "to", "TO" ), new Locale( "en", "AU" ), Locale.ENGLISH );
91 + expectSelected( Locale_en_US.INSTANCE, zTonga, null, SUPPORTED );
92 + expectSelected( Locale_en_US.INSTANCE, zTonga, Locale_zh_TW.INSTANCE, SUPPORTED );
93 + expectSelected( Locale_en_US.INSTANCE, zTonga, Locale_en_GB.INSTANCE, Locale_en_US.INSTANCE );
91 94 }
92 95
93 - private void expectSelected(AbstractLocale pExpected, List<String> pLocaleCodesToTest, AbstractLocale pAdditionalSupported, AbstractLocale... pSupported) {
96 + private void expectSelected( AbstractLocale pExpected, List<String> pLocaleCodesToTest, AbstractLocale pAdditionalSupported, AbstractLocale... pSupported )
97 + {
94 98 Set<AbstractLocale> zSupported = Locales.toSet( pSupported );
95 - if (pAdditionalSupported != null) {
99 + if ( pAdditionalSupported != null )
100 + {
96 101 zSupported.add( pAdditionalSupported );
97 102 }
98 - AbstractLocale zSelected = DerivedLocaleGraph.select( zSupported, pLocaleCodesToTest);
99 - if (!pExpected.equals(zSelected)) {
100 - throw new AssertionFailedError("\n"
101 - + "Expected: " + pExpected + "\n"
102 - + " Actual: " + zSelected + "\n"
103 - + "Supported: " + Arrays.asList(pSupported) + "\n"
104 - + "Acceptable: " + pLocaleCodesToTest
103 + AbstractLocale zSelected = DerivedLocaleGraph.select( zSupported, pLocaleCodesToTest );
104 + if ( !pExpected.equals( zSelected ) )
105 + {
106 + throw new AssertionFailedError( "\n"
107 + + "Expected: " + pExpected + "\n"
108 + + " Actual: " + zSelected + "\n"
109 + + "Supported: " + Arrays.asList( pSupported ) + "\n"
110 + + "Acceptable: " + pLocaleCodesToTest
105 111 );
106 112 }
107 113 }
108 114
109 - private static List<String> toCodes(Locale... pLocales) {
110 - List<String> zCodes = new ArrayList<>(pLocales.length);
111 - for (Locale zLocale : pLocales) {
112 - zCodes.add(AbstractLocale.toCode(zLocale.getLanguage(), zLocale.getCountry()));
115 + private static List<String> toCodes( Locale... pLocales )
116 + {
117 + List<String> zCodes = new ArrayList<>( pLocales.length );
118 + for ( Locale zLocale : pLocales )
119 + {
120 + zCodes.add( AbstractLocale.toCode( zLocale.getLanguage(), zLocale.getCountry() ) );
113 121 }
114 - return Collections.unmodifiableList(zCodes);
122 + return Collections.unmodifiableList( zCodes );
115 123 }
116 124 }