|
1 | 1 | package com.fasterxml.jackson.databind.deser.std;
|
2 | 2 |
|
| 3 | +import java.io.IOException; |
3 | 4 | import java.util.Locale;
|
| 5 | +import java.util.Map; |
4 | 6 |
|
| 7 | +import com.fasterxml.jackson.core.type.TypeReference; |
5 | 8 | import com.fasterxml.jackson.databind.BaseMapTest;
|
6 | 9 | import com.fasterxml.jackson.databind.ObjectMapper;
|
7 | 10 |
|
8 | 11 | public class FromStringDeserializerTest extends BaseMapTest
|
9 | 12 | {
|
10 | 13 | private final Locale[] LOCALES = new Locale[]
|
11 | 14 | {Locale.CANADA, Locale.ROOT, Locale.GERMAN, Locale.CHINESE, Locale.KOREA, Locale.TAIWAN};
|
| 15 | + |
| 16 | + /* |
| 17 | + /********************************************************************** |
| 18 | + /* Test methods, old, from Jackson pre-2.13 |
| 19 | + /********************************************************************** |
| 20 | + */ |
| 21 | + |
12 | 22 | private final ObjectMapper MAPPER = newJsonMapper();
|
13 | 23 |
|
| 24 | + public void testLocale() throws IOException |
| 25 | + { |
| 26 | + assertEquals(new Locale("en"), MAPPER.readValue(q("en"), Locale.class)); |
| 27 | + assertEquals(new Locale("es", "ES"), MAPPER.readValue(q("es_ES"), Locale.class)); |
| 28 | + assertEquals(new Locale("FI", "fi", "savo"), |
| 29 | + MAPPER.readValue(q("fi_FI_savo"), Locale.class)); |
| 30 | + assertEquals(new Locale("en", "US"), |
| 31 | + MAPPER.readValue(q("en-US"), Locale.class)); |
| 32 | + } |
| 33 | + |
| 34 | + public void testLocaleKeyMap() throws Exception { |
| 35 | + Locale key = Locale.CHINA; |
| 36 | + String JSON = "{ \"" + key + "\":4}"; |
| 37 | + Map<Locale, Object> result = MAPPER.readValue(JSON, new TypeReference<Map<Locale, Object>>() { |
| 38 | + }); |
| 39 | + assertNotNull(result); |
| 40 | + assertEquals(1, result.size()); |
| 41 | + Object ob = result.keySet().iterator().next(); |
| 42 | + assertNotNull(ob); |
| 43 | + assertEquals(Locale.class, ob.getClass()); |
| 44 | + assertEquals(key, ob); |
| 45 | + } |
| 46 | + |
| 47 | + /* |
| 48 | + /********************************************************************** |
| 49 | + /* Test methods, advanced (2.13+) -- [databind#3259] |
| 50 | + /********************************************************************** |
| 51 | + */ |
| 52 | + |
14 | 53 | public void testLocaleDeserializeNonBCPFormat() throws Exception {
|
15 | 54 | Locale locale = new Locale("en", "US");
|
16 | 55 | Locale deSerializedLocale = MAPPER.readValue(MAPPER.writeValueAsString(locale), Locale.class);
|
|
0 commit comments