DelimitedStringToArrayConverterTests Class — spring-boot Architecture
Architecture documentation for the DelimitedStringToArrayConverterTests class in DelimitedStringToArrayConverterTests.java from the spring-boot codebase.
Entity Profile
Source Code
core/spring-boot/src/test/java/org/springframework/boot/convert/DelimitedStringToArrayConverterTests.java lines 39–129
class DelimitedStringToArrayConverterTests {
@ConversionServiceTest
void canConvertFromStringToArrayShouldReturnTrue(ConversionService conversionService) {
assertThat(conversionService.canConvert(String.class, String[].class)).isTrue();
}
@ConversionServiceTest
void matchesWhenTargetIsNotAnnotatedShouldReturnTrue(ConversionService conversionService) {
TypeDescriptor sourceType = TypeDescriptor.valueOf(String.class);
Field field = ReflectionUtils.findField(Values.class, "noAnnotation");
assertThat(field).isNotNull();
TypeDescriptor targetType = TypeDescriptor.nested(field, 0);
assertThat(targetType).isNotNull();
assertThat(new DelimitedStringToArrayConverter(conversionService).matches(sourceType, targetType)).isTrue();
}
@ConversionServiceTest
void matchesWhenHasAnnotationAndNonConvertibleElementTypeShouldReturnFalse(ConversionService conversionService) {
TypeDescriptor sourceType = TypeDescriptor.valueOf(String.class);
Field field = ReflectionUtils.findField(Values.class, "nonConvertibleElementType");
assertThat(field).isNotNull();
TypeDescriptor targetType = TypeDescriptor.nested(field, 0);
assertThat(targetType).isNotNull();
assertThat(new DelimitedStringToArrayConverter(conversionService).matches(sourceType, targetType)).isFalse();
}
@ConversionServiceTest
void convertWhenHasDelimiterOfNoneShouldReturnWholeString(ConversionService conversionService) {
TypeDescriptor sourceType = TypeDescriptor.valueOf(String.class);
Field field = ReflectionUtils.findField(Values.class, "delimiterNone");
assertThat(field).isNotNull();
TypeDescriptor targetType = TypeDescriptor.nested(field, 0);
assertThat(targetType).isNotNull();
String[] converted = (String[]) conversionService.convert("a,b,c", sourceType, targetType);
assertThat(converted).containsExactly("a,b,c");
}
@Test
void matchesWhenHasAnnotationAndConvertibleElementTypeShouldReturnTrue() {
TypeDescriptor sourceType = TypeDescriptor.valueOf(String.class);
Field field = ReflectionUtils.findField(Values.class, "convertibleElementType");
assertThat(field).isNotNull();
TypeDescriptor targetType = TypeDescriptor.nested(field, 0);
assertThat(targetType).isNotNull();
assertThat(
new DelimitedStringToArrayConverter(new ApplicationConversionService()).matches(sourceType, targetType))
.isTrue();
}
@Test
void convertWhenHasConvertibleElementTypeShouldReturnConvertedType() {
TypeDescriptor sourceType = TypeDescriptor.valueOf(String.class);
Field field = ReflectionUtils.findField(Values.class, "convertibleElementType");
assertThat(field).isNotNull();
TypeDescriptor targetType = TypeDescriptor.nested(field, 0);
assertThat(targetType).isNotNull();
Integer[] converted = (Integer[]) new ApplicationConversionService().convert(" 1 | 2| 3 ", sourceType,
targetType);
assertThat(converted).containsExactly(1, 2, 3);
}
static Stream<? extends Arguments> conversionServices() {
return ConversionServiceArguments
.with((service) -> service.addConverter(new DelimitedStringToArrayConverter(service)));
}
static class Values {
@Nullable List<String> noAnnotation;
@Delimiter("|")
Integer @Nullable [] convertibleElementType;
@Delimiter("|")
NonConvertible @Nullable [] nonConvertibleElementType;
@Delimiter(Delimiter.NONE)
String @Nullable [] delimiterNone;
}
static class NonConvertible {
}
static class MyCustomList<E> extends LinkedList<E> {
}
}
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free