diff --git a/typeconverter/src/main/java/hello/typeconverter/fomatter/MyNumberFormatter.java b/typeconverter/src/main/java/hello/typeconverter/fomatter/MyNumberFormatter.java new file mode 100644 index 00000000..b16beb3a --- /dev/null +++ b/typeconverter/src/main/java/hello/typeconverter/fomatter/MyNumberFormatter.java @@ -0,0 +1,26 @@ +package hello.typeconverter.fomatter; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.format.Formatter; + +import java.text.NumberFormat; +import java.text.ParseException; +import java.util.Locale; + +@Slf4j +public class MyNumberFormatter implements Formatter { + + @Override + public Number parse(String text, Locale locale) throws ParseException { + log.info("text={}, locale={}", text, locale); + // "1,000" -> 1000 + NumberFormat format = NumberFormat.getInstance(locale); + return format.parse(text); + } + + @Override + public String print(Number object, Locale locale) { + log.info("object={}, locale={}", object, locale); + return NumberFormat.getInstance(locale).format(object); + } +} diff --git a/typeconverter/src/test/java/hello/typeconverter/fomatter/MyNumberFormatterTest.java b/typeconverter/src/test/java/hello/typeconverter/fomatter/MyNumberFormatterTest.java new file mode 100644 index 00000000..870edbfc --- /dev/null +++ b/typeconverter/src/test/java/hello/typeconverter/fomatter/MyNumberFormatterTest.java @@ -0,0 +1,27 @@ +package hello.typeconverter.fomatter; + +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.Test; + +import java.text.ParseException; +import java.util.Locale; + +import static org.assertj.core.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.*; + +class MyNumberFormatterTest { + + MyNumberFormatter formatter = new MyNumberFormatter(); + + @Test + void parse() throws ParseException { + Number result = formatter.parse("1,000", Locale.KOREA); + assertThat(result).isEqualTo(1000L); + } + + @Test + void print() { + String result = formatter.print(1000, Locale.KOREA); + assertThat(result).isEqualTo("1,000"); + } +} \ No newline at end of file