DATACMNS-1665 - Consider store conversions as ConverterRegistrationIntent.

Store converters are now properly considered as registration candidates.

Original Pull Request: #430
This commit is contained in:
Mark Paluch
2020-02-10 10:43:32 +01:00
committed by Christoph Strobl
parent 09153baf62
commit 148c859be6
2 changed files with 34 additions and 1 deletions

View File

@@ -25,6 +25,7 @@ import java.util.Arrays;
import java.util.Collections;
import java.util.Date;
import java.util.Locale;
import java.util.Map;
import java.util.function.Predicate;
import org.joda.time.DateTime;
@@ -42,6 +43,7 @@ import org.springframework.data.convert.CustomConversions.ConverterConfiguration
import org.springframework.data.convert.CustomConversions.StoreConversions;
import org.springframework.data.convert.Jsr310Converters.LocalDateTimeToDateConverter;
import org.springframework.data.convert.ThreeTenBackPortConverters.LocalDateTimeToJavaTimeInstantConverter;
import org.springframework.data.geo.Point;
import org.springframework.data.mapping.model.SimpleTypeHolder;
import org.threeten.bp.LocalDateTime;
@@ -219,6 +221,21 @@ public class CustomConversionsUnitTests {
verify(registry, never()).addConverter(any(LocalDateTimeToJavaTimeInstantConverter.class));
}
@Test // DATACMNS-1665
public void registersStoreConverter() {
ConverterRegistry registry = mock(ConverterRegistry.class);
SimpleTypeHolder holder = new SimpleTypeHolder(Collections.emptySet(), true);
CustomConversions conversions = new CustomConversions(StoreConversions.of(holder, PointToMapConverter.INSTANCE),
Collections.emptyList());
conversions.registerConvertersIn(registry);
assertThat(conversions.isSimpleType(Point.class));
verify(registry).addConverter(any(PointToMapConverter.class));
}
@Test // DATACMNS-1615
public void doesNotSkipUnsupportedUserConverter() {
@@ -340,6 +357,18 @@ public class CustomConversionsUnitTests {
}
@WritingConverter
enum PointToMapConverter implements Converter<Point, Map<String, String>> {
INSTANCE;
@Override
public Map<String, String> convert(Point source) {
return source != null ? Collections.emptyMap() : null;
}
}
@WritingConverter
static class FormatConverterFactory implements ConverterFactory<String, Format> {