Add FormatterRegistry addPrinter/addParser methods
Update `FormatterRegistry` with `addPrinter` and `addParser` methods that can be used to register Printer or Parser implementations in a similar way to the existing `addFormatter` method. Closes gh-23110
This commit is contained in:
@@ -346,8 +346,25 @@ public class FormattingConversionServiceTests {
|
||||
|
||||
@Test
|
||||
public void introspectedFormatter() throws ParseException {
|
||||
formattingService.addFormatter(new NumberStyleFormatter());
|
||||
assertThat(formattingService.convert(null, TypeDescriptor.valueOf(String.class), TypeDescriptor.valueOf(Integer.class))).isNull();
|
||||
formattingService.addFormatter(new NumberStyleFormatter("#,#00.0#"));
|
||||
assertThat(formattingService.convert(123, String.class)).isEqualTo("123.0");
|
||||
assertThat(formattingService.convert("123.0", Integer.class)).isEqualTo(123);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void introspectedPrinter() throws ParseException {
|
||||
formattingService.addPrinter(new NumberStyleFormatter("#,#00.0#"));
|
||||
assertThat(formattingService.convert(123, String.class)).isEqualTo("123.0");
|
||||
assertThatExceptionOfType(ConversionFailedException.class).isThrownBy(() ->
|
||||
assertThat(formattingService.convert("123.0", Integer.class)).isNull())
|
||||
.withCauseInstanceOf(NumberFormatException.class);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void introspectedParser() throws ParseException {
|
||||
formattingService.addParser(new NumberStyleFormatter("#,#00.0#"));
|
||||
assertThat(formattingService.convert("123.0", Integer.class)).isEqualTo(123);
|
||||
assertThat(formattingService.convert(123, String.class)).isEqualTo("123");
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user