source: josm/trunk/test/unit/org/openstreetmap/josm/tools/LanguageInfoTest.java@ 17360

Last change on this file since 17360 was 17275, checked in by Don-vip, 3 years ago

see #16567 - upgrade almost all tests to JUnit 5, except those depending on WiremockRule

See https://github.com/tomakehurst/wiremock/issues/684

File size: 4.5 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.tools;
3
4import java.util.Arrays;
5import java.util.List;
6import java.util.Locale;
7import java.util.stream.Collectors;
8import java.util.stream.Stream;
9
10import org.junit.Assert;
11import org.junit.jupiter.api.extension.RegisterExtension;
12import org.junit.jupiter.api.Test;
13import org.openstreetmap.josm.testutils.JOSMTestRules;
14
15import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
16
17/**
18 * Unit tests of {@link LanguageInfo}.
19 */
20class LanguageInfoTest {
21
22 /**
23 * Setup test.
24 */
25 @RegisterExtension
26 @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
27 public JOSMTestRules test = new JOSMTestRules().i18n("ca@valencia");
28
29 private static final Locale EN_NZ = new Locale("en", "NZ");
30 private static final Locale DE_DE = Locale.GERMANY;
31 private static final Locale PT_BR = new Locale("pt", "BR");
32 private static final Locale CA_ES_VALENCIA = new Locale("ca", "ES", "valencia");
33 private static final Locale ZN_CN = Locale.SIMPLIFIED_CHINESE;
34 private static final Locale ZN_TW = Locale.TRADITIONAL_CHINESE;
35 private static final Locale EN_GB = Locale.UK;
36 private static final Locale RU = new Locale("ru");
37 private static final Locale NB = new Locale("nb");
38 private static final Locale AST = new Locale("ast");
39
40 /**
41 * Unit test of {@link LanguageInfo#getWikiLanguagePrefix}.
42 */
43 @Test
44 void testWikiLanguagePrefix() {
45 testGetWikiLanguagePrefixes(LanguageInfo.LocaleType.DEFAULT,
46 "En:", "De:", "Pt_BR:", "Ca-Valencia:", "Zh_CN:", "Zh_TW:", "Ast:", "En_GB:", "Ru:", "Nb:");
47 testGetWikiLanguagePrefixes(LanguageInfo.LocaleType.DEFAULTNOTENGLISH,
48 null, "De:", "Pt_BR:", "Ca-Valencia:", "Zh_CN:", "Zh_TW:", "Ast:", "En_GB:", "Ru:", "Nb:");
49 testGetWikiLanguagePrefixes(LanguageInfo.LocaleType.BASELANGUAGE,
50 null, null, "Pt:", null, "Zh:", "Zh:", null, null, null, null);
51 testGetWikiLanguagePrefixes(LanguageInfo.LocaleType.ENGLISH,
52 "", "", "", "", "", "", "", "", "", "");
53 testGetWikiLanguagePrefixes(LanguageInfo.LocaleType.OSM_WIKI,
54 "", "DE:", "Pt:", "Ca:", "Zh-hans:", "Zh-hant:", "Ast:", "", "RU:", "No:");
55 }
56
57 private static void testGetWikiLanguagePrefixes(LanguageInfo.LocaleType type, String...expected) {
58 final List<String> actual = Stream.of(EN_NZ, DE_DE, PT_BR, CA_ES_VALENCIA, ZN_CN, ZN_TW, AST, EN_GB, RU, NB)
59 .map(locale -> LanguageInfo.getWikiLanguagePrefix(locale, type))
60 .collect(Collectors.toList());
61 Assert.assertEquals(Arrays.asList(expected), actual);
62 }
63
64 /**
65 * Unit test of {@link LanguageInfo#getLocale}.
66 */
67 @Test
68 void testGetLocale() {
69 Assert.assertEquals(RU, LanguageInfo.getLocale("ru"));
70 Assert.assertEquals(EN_GB, LanguageInfo.getLocale("en_GB"));
71 Assert.assertEquals(CA_ES_VALENCIA, LanguageInfo.getLocale("ca_ES@valencia"));
72 Assert.assertEquals(DE_DE, LanguageInfo.getLocale("de_DE"));
73 Assert.assertEquals(DE_DE, LanguageInfo.getLocale("de_DE.UTF-8")); // LANG, LC_MEASUREMENT
74 Assert.assertEquals(PT_BR, LanguageInfo.getLocale("pt_BR.UTF-8")); // LANG, LC_MEASUREMENT
75 }
76
77 /**
78 * Unit test of {@link LanguageInfo#getJOSMLocaleCode}.
79 */
80 @Test
81 void testGetJOSMLocaleCode() {
82 Assert.assertEquals("de", LanguageInfo.getJOSMLocaleCode(DE_DE));
83 Assert.assertEquals("pt_BR", LanguageInfo.getJOSMLocaleCode(PT_BR));
84 Assert.assertEquals("ca@valencia", LanguageInfo.getJOSMLocaleCode(CA_ES_VALENCIA));
85 }
86
87 /**
88 * Unit test of {@link LanguageInfo#getJavaLocaleCode}.
89 */
90 @Test
91 void testGetJavaLocaleCode() {
92 Assert.assertEquals("ca__valencia", LanguageInfo.getJavaLocaleCode("ca@valencia"));
93 }
94
95 /**
96 * Unit test of {@link LanguageInfo#getLanguageCodeXML}.
97 */
98 @Test
99 void testGetLanguageCodeXML() {
100 Assert.assertEquals("ca-valencia.", LanguageInfo.getLanguageCodeXML());
101 }
102
103 /**
104 * Unit test of {@link LanguageInfo#getLanguageCodeManifest}.
105 */
106 @Test
107 void testGetLanguageCodeManifest() {
108 Assert.assertEquals("ca-valencia_", LanguageInfo.getLanguageCodeManifest());
109 }
110
111 /**
112 * Unit test of {@link LanguageInfo#getLanguageCodes}.
113 */
114 @Test
115 void testGetLanguageCodes() {
116 Assert.assertEquals(Arrays.asList("ca_ES@valencia", "ca@valencia", "ca_ES", "ca"), LanguageInfo.getLanguageCodes(CA_ES_VALENCIA));
117 }
118}
Note: See TracBrowser for help on using the repository browser.