refined exception messages; added unit tests for custom array types
This commit is contained in:
@@ -32,6 +32,7 @@ import org.springframework.core.convert.ConverterNotFoundException;
|
||||
import org.springframework.core.convert.TypeDescriptor;
|
||||
import org.springframework.core.convert.converter.Converter;
|
||||
import org.springframework.util.StopWatch;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
/**
|
||||
* @author Keith Donald
|
||||
@@ -216,6 +217,26 @@ public class GenericConversionServiceTests {
|
||||
assertEquals("RESULT", converted[0]);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStringArrayToIntegerArray() {
|
||||
GenericConversionService conversionService = ConversionServiceFactory.createDefaultConversionService();
|
||||
conversionService.addConverter(new MyStringArrayToIntegerArrayConverter());
|
||||
Integer[] converted = conversionService.convert(new String[] {"x1", "z3"}, Integer[].class);
|
||||
assertEquals(2, converted.length);
|
||||
assertEquals(1, converted[0].intValue());
|
||||
assertEquals(3, converted[1].intValue());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStringToIntegerArray() {
|
||||
GenericConversionService conversionService = ConversionServiceFactory.createDefaultConversionService();
|
||||
conversionService.addConverter(new MyStringToIntegerArrayConverter());
|
||||
Integer[] converted = conversionService.convert("x1,z3", Integer[].class);
|
||||
assertEquals(2, converted.length);
|
||||
assertEquals(1, converted[0].intValue());
|
||||
assertEquals(3, converted[1].intValue());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testWildcardMap() throws Exception {
|
||||
GenericConversionService conversionService = ConversionServiceFactory.createDefaultConversionService();
|
||||
@@ -372,6 +393,31 @@ public class GenericConversionServiceTests {
|
||||
}
|
||||
|
||||
|
||||
private static class MyStringArrayToIntegerArrayConverter implements Converter<String[], Integer[]> {
|
||||
|
||||
public Integer[] convert(String[] source) {
|
||||
Integer[] result = new Integer[source.length];
|
||||
for (int i = 0; i < source.length; i++) {
|
||||
result[i] = Integer.parseInt(source[i].substring(1));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private static class MyStringToIntegerArrayConverter implements Converter<String, Integer[]> {
|
||||
|
||||
public Integer[] convert(String source) {
|
||||
String[] srcArray = StringUtils.commaDelimitedListToStringArray(source);
|
||||
Integer[] result = new Integer[srcArray.length];
|
||||
for (int i = 0; i < srcArray.length; i++) {
|
||||
result[i] = Integer.parseInt(srcArray[i].substring(1));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static class WithCopyConstructor {
|
||||
|
||||
public WithCopyConstructor() {
|
||||
|
||||
Reference in New Issue
Block a user