1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.lang3;
19
20 import static org.junit.jupiter.api.Assumptions.assumeTrue;
21
22 import java.text.ParseException;
23 import java.util.Arrays;
24 import java.util.HashMap;
25 import java.util.List;
26 import java.util.Locale;
27 import java.util.Map;
28
29
30
31
32 public class LocaleProblems {
33
34
35 private static final Map<JavaVersion, List<String>> UNSUPPORTED_CAT_A;
36 static {
37 UNSUPPORTED_CAT_A = new HashMap<>();
38
39
40 UNSUPPORTED_CAT_A.put(JavaVersion.JAVA_26, Arrays.asList("cv", "cv_RU"));
41 }
42
43
44 private static final Map<JavaVersion, List<String>> UNSUPPORTED_CAT_B;
45 static {
46 UNSUPPORTED_CAT_B = new HashMap<>();
47
48 UNSUPPORTED_CAT_B.put(JavaVersion.JAVA_26, Arrays.asList("cv", "cv_RU", "cv_RU_#Cyrl"));
49 }
50
51 private static void assumeLocaleSupported(final Locale locale, final Map<JavaVersion, List<String>> unsupportedCatA, final ParseException e) {
52 final boolean supported = isSupported(locale, unsupportedCatA);
53 if (!supported) {
54 System.out.printf("Failing test assumption for locale '%s' on Java version %s.%n", locale, SystemUtils.JAVA_SPECIFICATION_VERSION_ENUM);
55 if (e != null) {
56
57 System.out.printf("\t%s%n", e);
58 }
59 }
60 assumeTrue(supported);
61 }
62
63 public static void assumeLocaleSupportedA(final Locale locale) {
64 assumeLocaleSupported(locale, UNSUPPORTED_CAT_A, null);
65 }
66
67 public static void assumeLocaleSupportedB(final Locale locale, final ParseException e) {
68 assumeLocaleSupported(locale, UNSUPPORTED_CAT_B, e);
69 }
70
71 private static boolean isSupported(final Locale locale, final Map<JavaVersion, List<String>> unsupported) {
72 final List<String> list = unsupported.get(SystemUtils.JAVA_SPECIFICATION_VERSION_ENUM);
73 return list == null || !list.contains(locale.toString());
74 }
75 }