Improve assertions in DefaultConversionServiceTests
Specifically, we now check the actual type of a converted collection in various assertions to ensure that converters adhere to their contracts.
This commit is contained in:
@@ -342,30 +342,31 @@ class DefaultConversionServiceTests {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
void convertArrayToCollectionInterface() {
|
void convertArrayToCollectionInterface() {
|
||||||
Collection<?> result = conversionService.convert(new String[] {"1", "2", "3"}, Collection.class);
|
@SuppressWarnings("unchecked")
|
||||||
assertThat(result).isEqualTo(new LinkedHashSet<>(Arrays.asList("1", "2", "3")));
|
Collection<String> result = conversionService.convert(new String[] {"1", "2", "3"}, Collection.class);
|
||||||
|
assertThat(result).isExactlyInstanceOf(LinkedHashSet.class).containsExactly("1", "2", "3");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void convertArrayToSetInterface() {
|
void convertArrayToSetInterface() {
|
||||||
Collection<?> result = conversionService.convert(new String[] {"1", "2", "3"}, Set.class);
|
@SuppressWarnings("unchecked")
|
||||||
assertThat(result).isEqualTo(new LinkedHashSet<>(Arrays.asList("1", "2", "3")));
|
Collection<String> result = conversionService.convert(new String[] {"1", "2", "3"}, Set.class);
|
||||||
|
assertThat(result).isExactlyInstanceOf(LinkedHashSet.class).containsExactly("1", "2", "3");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void convertArrayToListInterface() {
|
void convertArrayToListInterface() {
|
||||||
List<?> result = conversionService.convert(new String[] {"1", "2", "3"}, List.class);
|
@SuppressWarnings("unchecked")
|
||||||
assertThat(result).isEqualTo(Arrays.asList("1", "2", "3"));
|
List<String> result = conversionService.convert(new String[] {"1", "2", "3"}, List.class);
|
||||||
|
assertThat(result).isExactlyInstanceOf(ArrayList.class).containsExactly("1", "2", "3");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void convertArrayToCollectionGenericTypeConversion() throws Exception {
|
void convertArrayToCollectionGenericTypeConversion() throws Exception {
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
List<Integer> result = (List<Integer>) conversionService.convert(new String[] {"1", "2", "3"}, TypeDescriptor
|
List<Integer> result = (List<Integer>) conversionService.convert(new String[] {"1", "2", "3"},
|
||||||
.valueOf(String[].class), new TypeDescriptor(getClass().getDeclaredField("genericList")));
|
TypeDescriptor.valueOf(String[].class), new TypeDescriptor(getClass().getDeclaredField("genericList")));
|
||||||
assertThat((int) result.get(0)).isEqualTo((int) Integer.valueOf(1));
|
assertThat(result).isExactlyInstanceOf(ArrayList.class).containsExactly(1, 2, 3);
|
||||||
assertThat((int) result.get(1)).isEqualTo((int) Integer.valueOf(2));
|
|
||||||
assertThat((int) result.get(2)).isEqualTo((int) Integer.valueOf(3));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -393,10 +394,9 @@ class DefaultConversionServiceTests {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
void convertArrayToCollectionImpl() {
|
void convertArrayToCollectionImpl() {
|
||||||
ArrayList<?> result = conversionService.convert(new String[] {"1", "2", "3"}, ArrayList.class);
|
@SuppressWarnings("unchecked")
|
||||||
assertThat(result.get(0)).isEqualTo("1");
|
ArrayList<String> result = conversionService.convert(new String[] {"1", "2", "3"}, ArrayList.class);
|
||||||
assertThat(result.get(1)).isEqualTo("2");
|
assertThat(result).isExactlyInstanceOf(ArrayList.class).containsExactly("1", "2", "3");
|
||||||
assertThat(result.get(2)).isEqualTo("3");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -426,34 +426,25 @@ class DefaultConversionServiceTests {
|
|||||||
@Test
|
@Test
|
||||||
void convertStringToArray() {
|
void convertStringToArray() {
|
||||||
String[] result = conversionService.convert("1,2,3", String[].class);
|
String[] result = conversionService.convert("1,2,3", String[].class);
|
||||||
assertThat(result.length).isEqualTo(3);
|
assertThat(result).containsExactly("1", "2", "3");
|
||||||
assertThat(result[0]).isEqualTo("1");
|
|
||||||
assertThat(result[1]).isEqualTo("2");
|
|
||||||
assertThat(result[2]).isEqualTo("3");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void convertStringToArrayWithElementConversion() {
|
void convertStringToArrayWithElementConversion() {
|
||||||
Integer[] result = conversionService.convert("1,2,3", Integer[].class);
|
Integer[] result = conversionService.convert("1,2,3", Integer[].class);
|
||||||
assertThat(result.length).isEqualTo(3);
|
assertThat(result).containsExactly(1, 2, 3);
|
||||||
assertThat((int) result[0]).isEqualTo((int) Integer.valueOf(1));
|
|
||||||
assertThat((int) result[1]).isEqualTo((int) Integer.valueOf(2));
|
|
||||||
assertThat((int) result[2]).isEqualTo((int) Integer.valueOf(3));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void convertStringToPrimitiveArrayWithElementConversion() {
|
void convertStringToPrimitiveArrayWithElementConversion() {
|
||||||
int[] result = conversionService.convert("1,2,3", int[].class);
|
int[] result = conversionService.convert("1,2,3", int[].class);
|
||||||
assertThat(result.length).isEqualTo(3);
|
assertThat(result).containsExactly(1, 2, 3);
|
||||||
assertThat(result[0]).isEqualTo(1);
|
|
||||||
assertThat(result[1]).isEqualTo(2);
|
|
||||||
assertThat(result[2]).isEqualTo(3);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void convertEmptyStringToArray() {
|
void convertEmptyStringToArray() {
|
||||||
String[] result = conversionService.convert("", String[].class);
|
String[] result = conversionService.convert("", String[].class);
|
||||||
assertThat(result.length).isEqualTo(0);
|
assertThat(result).isEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -467,7 +458,7 @@ class DefaultConversionServiceTests {
|
|||||||
void convertArrayToObjectWithElementConversion() {
|
void convertArrayToObjectWithElementConversion() {
|
||||||
String[] array = new String[] {"3"};
|
String[] array = new String[] {"3"};
|
||||||
Integer result = conversionService.convert(array, Integer.class);
|
Integer result = conversionService.convert(array, Integer.class);
|
||||||
assertThat((int) result).isEqualTo((int) Integer.valueOf(3));
|
assertThat(result).isEqualTo(3);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -480,39 +471,27 @@ class DefaultConversionServiceTests {
|
|||||||
@Test
|
@Test
|
||||||
void convertObjectToArray() {
|
void convertObjectToArray() {
|
||||||
Object[] result = conversionService.convert(3L, Object[].class);
|
Object[] result = conversionService.convert(3L, Object[].class);
|
||||||
assertThat(result.length).isEqualTo(1);
|
assertThat(result).containsExactly(3L);
|
||||||
assertThat(result[0]).isEqualTo(3L);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void convertObjectToArrayWithElementConversion() {
|
void convertObjectToArrayWithElementConversion() {
|
||||||
Integer[] result = conversionService.convert(3L, Integer[].class);
|
Integer[] result = conversionService.convert(3L, Integer[].class);
|
||||||
assertThat(result.length).isEqualTo(1);
|
assertThat(result).containsExactly(3);
|
||||||
assertThat((int) result[0]).isEqualTo((int) Integer.valueOf(3));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void convertCollectionToArray() {
|
void convertCollectionToArray() {
|
||||||
List<String> list = new ArrayList<>();
|
List<String> list = Arrays.asList("1", "2", "3");
|
||||||
list.add("1");
|
|
||||||
list.add("2");
|
|
||||||
list.add("3");
|
|
||||||
String[] result = conversionService.convert(list, String[].class);
|
String[] result = conversionService.convert(list, String[].class);
|
||||||
assertThat(result[0]).isEqualTo("1");
|
assertThat(result).containsExactly("1", "2", "3");
|
||||||
assertThat(result[1]).isEqualTo("2");
|
|
||||||
assertThat(result[2]).isEqualTo("3");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void convertCollectionToArrayWithElementConversion() {
|
void convertCollectionToArrayWithElementConversion() {
|
||||||
List<String> list = new ArrayList<>();
|
List<String> list = Arrays.asList("1", "2", "3");
|
||||||
list.add("1");
|
|
||||||
list.add("2");
|
|
||||||
list.add("3");
|
|
||||||
Integer[] result = conversionService.convert(list, Integer[].class);
|
Integer[] result = conversionService.convert(list, Integer[].class);
|
||||||
assertThat((int) result[0]).isEqualTo((int) Integer.valueOf(1));
|
assertThat(result).containsExactly(1, 2, 3);
|
||||||
assertThat((int) result[1]).isEqualTo((int) Integer.valueOf(2));
|
|
||||||
assertThat((int) result[2]).isEqualTo((int) Integer.valueOf(3));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -532,34 +511,30 @@ class DefaultConversionServiceTests {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
void convertStringToCollection() {
|
void convertStringToCollection() {
|
||||||
List<?> result = conversionService.convert("1,2,3", List.class);
|
@SuppressWarnings("unchecked")
|
||||||
assertThat(result.size()).isEqualTo(3);
|
List<String> result = conversionService.convert("1,2,3", List.class);
|
||||||
assertThat(result.get(0)).isEqualTo("1");
|
assertThat(result).containsExactly("1", "2", "3");
|
||||||
assertThat(result.get(1)).isEqualTo("2");
|
|
||||||
assertThat(result.get(2)).isEqualTo("3");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void convertStringToCollectionWithElementConversion() throws Exception {
|
void convertStringToCollectionWithElementConversion() throws Exception {
|
||||||
List<?> result = (List<?>) conversionService.convert("1,2,3", TypeDescriptor.valueOf(String.class),
|
@SuppressWarnings("unchecked")
|
||||||
|
List<Integer> result = (List<Integer>) conversionService.convert("1,2,3", TypeDescriptor.valueOf(String.class),
|
||||||
new TypeDescriptor(getClass().getField("genericList")));
|
new TypeDescriptor(getClass().getField("genericList")));
|
||||||
assertThat(result.size()).isEqualTo(3);
|
assertThat(result).containsExactly(1, 2, 3);
|
||||||
assertThat(result.get(0)).isEqualTo(1);
|
|
||||||
assertThat(result.get(1)).isEqualTo(2);
|
|
||||||
assertThat(result.get(2)).isEqualTo(3);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void convertEmptyStringToCollection() {
|
void convertEmptyStringToCollection() {
|
||||||
Collection<?> result = conversionService.convert("", Collection.class);
|
Collection<?> result = conversionService.convert("", Collection.class);
|
||||||
assertThat(result.size()).isEqualTo(0);
|
assertThat(result).isEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void convertCollectionToObject() {
|
void convertCollectionToObject() {
|
||||||
List<Long> list = Collections.singletonList(3L);
|
List<Long> list = Collections.singletonList(3L);
|
||||||
Long result = conversionService.convert(list, Long.class);
|
Long result = conversionService.convert(list, Long.class);
|
||||||
assertThat(result).isEqualTo(Long.valueOf(3));
|
assertThat(result).isEqualTo(3);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
Reference in New Issue
Block a user