|
@@ -1,41 +1,57 @@ |
1 |
1 |
|
package org.litesoft.locale; |
2 |
2 |
|
|
3 |
|
- |
import junit.framework.Assert; |
|
3 |
+ |
import junit.framework.AssertionFailedError; |
4 |
4 |
|
import org.junit.Test; |
5 |
5 |
|
|
|
6 |
+ |
import java.util.ArrayList; |
|
7 |
+ |
import java.util.Arrays; |
|
8 |
+ |
import java.util.Collections; |
|
9 |
+ |
import java.util.List; |
6 |
10 |
|
import java.util.Locale; |
7 |
11 |
|
|
8 |
12 |
|
public class DerivedLocaleGraphTest { |
9 |
|
- |
private static final String[] FRENCH_CANADIAN = toCodes(Locale.CANADA_FRENCH, Locale.FRENCH, Locale.CANADA, Locale.ENGLISH); |
10 |
|
- |
private static final String[] ENGLISH_CANADIAN = toCodes(Locale.CANADA, Locale.ENGLISH); |
11 |
|
- |
private static final String[] ENGLISH_US = toCodes(Locale.US, Locale.ENGLISH); |
12 |
|
- |
private static final String[] MEXICAN_US = toCodes(new Locale("es", "MX"), new Locale("es"), Locale.US, Locale.ENGLISH); |
13 |
|
- |
private static final String[] BRITAIN = toCodes(Locale.UK, Locale.ENGLISH); |
14 |
|
- |
private static final String[] GERMAN = toCodes(Locale.GERMANY, Locale.GERMAN); |
15 |
|
- |
private static final String[] FRANCE = toCodes(Locale.FRANCE, Locale.FRENCH); |
16 |
|
- |
private static final String[] TAIWAN = toCodes(Locale.TAIWAN, Locale.TRADITIONAL_CHINESE, Locale.CHINESE, Locale.SIMPLIFIED_CHINESE, Locale.ENGLISH); |
17 |
|
- |
private static final String[] CHINA = toCodes(Locale.CHINA, Locale.PRC, Locale.CHINESE, Locale.SIMPLIFIED_CHINESE); |
18 |
|
- |
private static final String[] JAPAN = toCodes(Locale.JAPAN, Locale.JAPANESE, Locale.ENGLISH); |
19 |
|
- |
private static final String[] KOREA = toCodes(Locale.KOREA, Locale.KOREAN); |
20 |
|
- |
private static final String[] ITALY = toCodes(Locale.ITALY, Locale.ITALIAN); |
|
13 |
+ |
private static final List<String> FRENCH_CANADIAN = toCodes(Locale.CANADA_FRENCH, Locale.FRENCH, Locale.CANADA, Locale.ENGLISH); |
|
14 |
+ |
private static final List<String> ENGLISH_CANADIAN = toCodes(Locale.CANADA, Locale.ENGLISH); |
|
15 |
+ |
private static final List<String> ENGLISH_US = toCodes(Locale.US, Locale.ENGLISH); |
|
16 |
+ |
private static final List<String> MEXICAN_US = toCodes(new Locale("es", "MX"), new Locale("es"), Locale.US, Locale.ENGLISH); |
|
17 |
+ |
private static final List<String> BRITAIN = toCodes(Locale.UK, Locale.ENGLISH); |
|
18 |
+ |
private static final List<String> GERMAN = toCodes(Locale.GERMANY, Locale.GERMAN); |
|
19 |
+ |
private static final List<String> FRANCE = toCodes(Locale.FRANCE, Locale.FRENCH); |
|
20 |
+ |
private static final List<String> TAIWAN = toCodes(Locale.TAIWAN, Locale.TRADITIONAL_CHINESE, Locale.CHINESE, Locale.SIMPLIFIED_CHINESE, Locale.ENGLISH); |
|
21 |
+ |
private static final List<String> CHINA = toCodes(Locale.CHINA, Locale.PRC, Locale.CHINESE, Locale.SIMPLIFIED_CHINESE); |
|
22 |
+ |
private static final List<String> JAPAN = toCodes(Locale.JAPAN, Locale.JAPANESE, Locale.ENGLISH); |
|
23 |
+ |
private static final List<String> KOREA = toCodes(Locale.KOREA, Locale.KOREAN); |
|
24 |
+ |
private static final List<String> ITALY = toCodes(Locale.ITALY, Locale.ITALIAN); |
21 |
25 |
|
|
22 |
26 |
|
@Test |
23 |
27 |
|
public void testSelect() |
24 |
28 |
|
throws Exception { |
25 |
29 |
|
expectSelected(Locale_en_US.INSTANCE, ENGLISH_US, Locale_en_US.INSTANCE); |
26 |
|
- |
} |
27 |
30 |
|
|
28 |
|
- |
private void expectSelected(AbstractLocale pExpected, String[] pLocaleCodesToTest, AbstractLocale... pSupported) { |
|
31 |
+ |
expectSelected(Locale_en_US.INSTANCE, ENGLISH_CANADIAN, Locale_en_US.INSTANCE, Locale_de_DE.INSTANCE); |
|
32 |
+ |
expectSelected(Locale_fr_FR.INSTANCE, FRENCH_CANADIAN, Locale_en_US.INSTANCE, Locale_de_DE.INSTANCE, Locale_fr_FR.INSTANCE); |
|
33 |
+ |
|
|
34 |
+ |
expectSelected(Locale_es_ES.INSTANCE, MEXICAN_US, Locale_en_US.INSTANCE, Locale_de_DE.INSTANCE, Locale_fr_FR.INSTANCE, Locale_es_ES.INSTANCE); |
29 |
35 |
|
|
30 |
|
- |
Assert.assertEquals("From '" + pFileNameWithUserAgentPerLine + "[" + i + "]" + "': " + zLine, pExpected, zActual); |
31 |
36 |
|
} |
32 |
37 |
|
|
33 |
|
- |
private static String[] toCodes(Locale... pLocales) { |
34 |
|
- |
String[] zCodes = new String[pLocales.length]; |
35 |
|
- |
for (int i = 0; i < pLocales.length; i++) { |
36 |
|
- |
Locale zLocale = pLocales[i]; |
37 |
|
- |
zCodes[i] = AbstractLocale.toCode(zLocale.getLanguage(), zLocale.getCountry()); |
|
38 |
+ |
private void expectSelected(AbstractLocale pExpected, List<String> pLocaleCodesToTest, AbstractLocale... pSupported) { |
|
39 |
+ |
AbstractLocale zSelected = DerivedLocaleGraph.select(Locales.toSet(pSupported), pLocaleCodesToTest); |
|
40 |
+ |
if (!pExpected.equals(zSelected)) { |
|
41 |
+ |
throw new AssertionFailedError("" |
|
42 |
+ |
+ "Expected: " + pExpected + "\n" |
|
43 |
+ |
+ " Actual: " + zSelected + "\n" |
|
44 |
+ |
+ "Supported: " + Arrays.asList(pSupported) + "\n" |
|
45 |
+ |
+ "Acceptable: " + pLocaleCodesToTest |
|
46 |
+ |
); |
|
47 |
+ |
} |
|
48 |
+ |
} |
|
49 |
+ |
|
|
50 |
+ |
private static List<String> toCodes(Locale... pLocales) { |
|
51 |
+ |
List<String> zCodes = new ArrayList<>(pLocales.length); |
|
52 |
+ |
for (Locale zLocale : pLocales) { |
|
53 |
+ |
zCodes.add(AbstractLocale.toCode(zLocale.getLanguage(), zLocale.getCountry())); |
38 |
54 |
|
} |
39 |
|
- |
return zCodes; |
|
55 |
+ |
return Collections.unmodifiableList(zCodes); |
40 |
56 |
|
} |
41 |
57 |
|
} |