Harmonize default converters

Provide Converter implementations for Charset, Currency and TimeZone as
related PropertyEditors are available for those.

Issue: SPR-13020
This commit is contained in:
Stephane Nicoll
2015-05-08 14:48:46 +09:00
parent c0269770af
commit 0612bc7bc5
5 changed files with 150 additions and 2 deletions

View File

@@ -20,12 +20,14 @@ import java.awt.Color;
import java.lang.reflect.Method;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.nio.charset.Charset;
import java.time.ZoneId;
import java.util.AbstractList;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Currency;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.LinkedHashMap;
@@ -37,6 +39,7 @@ import java.util.Map;
import java.util.Optional;
import java.util.Properties;
import java.util.Set;
import java.util.TimeZone;
import java.util.UUID;
import java.util.stream.Stream;
@@ -277,6 +280,26 @@ public class DefaultConversionServiceTests {
assertEquals(Locale.ENGLISH, conversionService.convert("en", Locale.class));
}
@Test
public void testStringToCharset() {
assertEquals(Charset.forName("UTF-8"), conversionService.convert("UTF-8", Charset.class));
}
@Test
public void testCharsetToString() {
assertEquals("UTF-8", conversionService.convert(Charset.forName("UTF-8"), String.class));
}
@Test
public void testStringToCurrency() {
assertEquals(Currency.getInstance("EUR"), conversionService.convert("EUR", Currency.class));
}
@Test
public void testCurrencyToString() {
assertEquals("USD", conversionService.convert(Currency.getInstance("USD"), String.class));
}
@Test
public void testStringToString() {
String str = "test";
@@ -801,6 +824,11 @@ public class DefaultConversionServiceTests {
assertEquals("toString() invocations", 0, SSN.toStringCount);
}
@Test
public void convertStringToTimezone() {
assertEquals("GMT+02:00", conversionService.convert("GMT+2", TimeZone.class).getID());
}
@Test
public void convertObjectToStringWithJavaTimeOfMethodPresent() {
assertTrue(conversionService.convert(ZoneId.of("GMT+1"), String.class).startsWith("GMT+"));