@Test @SuppressWarnings("unchecked") public void arrayCollectionToObjectInteraction() throws Exception { List<String>[] array = new List[2]; array[0] = Arrays.asList("9", "12"); array[1] = Arrays.asList("37", "23"); conversionService.addConverter(new ArrayToCollectionConverter(conversionService)); conversionService.addConverter(new CollectionToObjectConverter(conversionService)); assertTrue(conversionService.canConvert(String[].class, List.class)); assertEquals(Arrays.asList(array), conversionService.convert(array, List.class)); }
@Test public void collectionToObjectInteraction() throws Exception { List<List<String>> list = new ArrayList<List<String>>(); list.add(Arrays.asList("9", "12")); list.add(Arrays.asList("37", "23")); conversionService.addConverter(new CollectionToObjectConverter(conversionService)); assertTrue(conversionService.canConvert(List.class, List.class)); assertSame(list, conversionService.convert(list, List.class)); }
@Test public void emptyListToList() throws Exception { conversionService.addConverter(new CollectionToCollectionConverter(conversionService)); conversionService.addConverterFactory(new StringToNumberConverterFactory()); List<String> list = new ArrayList<String>(); TypeDescriptor sourceType = TypeDescriptor.forObject(list); TypeDescriptor targetType = new TypeDescriptor(getClass().getField("emptyListTarget")); assertTrue(conversionService.canConvert(sourceType, targetType)); assertEquals(list, conversionService.convert(list, sourceType, targetType)); }
@Test @SuppressWarnings("unchecked") public void stringToCollection() throws Exception { List<List<String>> list = new ArrayList<List<String>>(); list.add(Arrays.asList("9,12")); list.add(Arrays.asList("37,23")); conversionService.addConverterFactory(new StringToNumberConverterFactory()); conversionService.addConverter(new StringToCollectionConverter(conversionService)); conversionService.addConverter(new ObjectToCollectionConverter(conversionService)); conversionService.addConverter(new CollectionToObjectConverter(conversionService)); TypeDescriptor sourceType = TypeDescriptor.forObject(list); TypeDescriptor targetType = new TypeDescriptor(getClass().getField("objectToCollection")); assertTrue(conversionService.canConvert(sourceType, targetType)); List<List<List<Integer>>> result = (List<List<List<Integer>>>) conversionService.convert(list, sourceType, targetType); assertEquals((Integer) 9, result.get(0).get(0).get(0)); assertEquals((Integer) 12, result.get(0).get(0).get(1)); assertEquals((Integer) 37, result.get(1).get(0).get(0)); assertEquals((Integer) 23, result.get(1).get(0).get(1)); }
@Test public void emptyListToListDifferentTargetType() throws Exception { conversionService.addConverter(new CollectionToCollectionConverter(conversionService)); conversionService.addConverterFactory(new StringToNumberConverterFactory()); List<String> list = new ArrayList<String>(); TypeDescriptor sourceType = TypeDescriptor.forObject(list); TypeDescriptor targetType = new TypeDescriptor(getClass().getField("emptyListDifferentTarget")); assertTrue(conversionService.canConvert(sourceType, targetType)); @SuppressWarnings("unchecked") LinkedList<Integer> result = (LinkedList<Integer>) conversionService.convert(list, sourceType, targetType); assertEquals(LinkedList.class, result.getClass()); assertTrue(result.isEmpty()); }
@Before public void setUp() { conversionService.addConverter(new CollectionToCollectionConverter(conversionService)); }