Subversion Repository Public Repository

litesoft

Diff Revisions 931 vs 932 for /trunk/DeviceDesktopTest/src/org/litesoft/locale/DerivedLocaleGraphTest.java

Diff revisions: vs.
  @@ -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 }