ConversionService is able to deal with empty collections and nested collections (fixed regression; SPR-7289, SPR-7293); ConversionService properly handles nested Resource arrays in Map values (fixed regression; SPR-7295); ConversionService does not accidentally use copy constructor for same type (SPR-7304)
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
package org.springframework.core.convert.support;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.LinkedList;
|
||||
@@ -225,6 +226,57 @@ public class GenericConversionServiceTests {
|
||||
assertEquals(input, converted);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testListOfList() {
|
||||
GenericConversionService service = ConversionServiceFactory.createDefaultConversionService();
|
||||
List<List<String>> list = Collections.singletonList(Collections.singletonList("Foo"));
|
||||
assertNotNull(service.convert(list, String.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEmptyList() {
|
||||
GenericConversionService service = ConversionServiceFactory.createDefaultConversionService();
|
||||
List list = Collections.emptyList();
|
||||
List result = service.convert(list, List.class);
|
||||
assertSame(list, result);
|
||||
result = service.convert(list, list.getClass());
|
||||
assertSame(list, result);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEmptyMap() {
|
||||
GenericConversionService service = ConversionServiceFactory.createDefaultConversionService();
|
||||
Map map = Collections.emptyMap();
|
||||
Map result = service.convert(map, Map.class);
|
||||
assertSame(map, result);
|
||||
result = service.convert(map, map.getClass());
|
||||
assertSame(map, result);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStringToString() {
|
||||
GenericConversionService service = ConversionServiceFactory.createDefaultConversionService();
|
||||
String value = "myValue";
|
||||
String result = service.convert(value, String.class);
|
||||
assertSame(value, result);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStringToObject() {
|
||||
GenericConversionService service = ConversionServiceFactory.createDefaultConversionService();
|
||||
String value = "myValue";
|
||||
Object result = service.convert(value, Object.class);
|
||||
assertSame(value, result);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIgnoreCopyConstructor() {
|
||||
GenericConversionService service = ConversionServiceFactory.createDefaultConversionService();
|
||||
WithCopyConstructor value = new WithCopyConstructor();
|
||||
Object result = service.convert(value, WithCopyConstructor.class);
|
||||
assertSame(value, result);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPerformance1() {
|
||||
GenericConversionService conversionService = ConversionServiceFactory.createDefaultConversionService();
|
||||
@@ -296,6 +348,7 @@ public class GenericConversionServiceTests {
|
||||
|
||||
public static Map<String, Integer> map;
|
||||
|
||||
|
||||
private interface MyBaseInterface {
|
||||
|
||||
}
|
||||
@@ -319,6 +372,16 @@ public class GenericConversionServiceTests {
|
||||
}
|
||||
|
||||
|
||||
public static class WithCopyConstructor {
|
||||
|
||||
public WithCopyConstructor() {
|
||||
}
|
||||
|
||||
public WithCopyConstructor(WithCopyConstructor value) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static Map<String, ?> wildcardMap;
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user