diff --git a/springboot_validation/src/main/resources/errors.properties b/springboot_validation/src/main/resources/errors.properties index 25e05ba3..3effe3ca 100644 --- a/springboot_validation/src/main/resources/errors.properties +++ b/springboot_validation/src/main/resources/errors.properties @@ -1,4 +1,7 @@ required.item.itemName=상품 이름은 필수입니다. range.item.price=가격은 {0} ~ {1} 까지 허용합니다. max.item.quantity=수량은 최대 {0} 까지 허용합니다. -totalPriceMin=가격 * 수량의 합은 {0}원 이상이어야 합니다. 현재 값 = {1} \ No newline at end of file +totalPriceMin=가격 * 수량의 합은 {0}원 이상이어야 합니다. 현재 값 = {1} + + +required=필수 값 입니다. \ No newline at end of file diff --git a/springboot_validation/src/test/java/hello/itemservice/validation/MessageCodesResolverTest.java b/springboot_validation/src/test/java/hello/itemservice/validation/MessageCodesResolverTest.java new file mode 100644 index 00000000..a4bf71a9 --- /dev/null +++ b/springboot_validation/src/test/java/hello/itemservice/validation/MessageCodesResolverTest.java @@ -0,0 +1,37 @@ +package hello.itemservice.validation; + +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.Test; +import org.springframework.validation.DefaultMessageCodesResolver; +import org.springframework.validation.MessageCodesResolver; +import org.springframework.validation.ObjectError; + +import static org.assertj.core.api.Assertions.*; + +public class MessageCodesResolverTest { + + MessageCodesResolver codesResolver = new DefaultMessageCodesResolver(); + + @Test + void messageCodesResolverObject() { + String[] messageCodes = codesResolver.resolveMessageCodes("required", "item"); + for (String messageCode : messageCodes) { + System.out.println("messageCode = " + messageCode); + } + assertThat(messageCodes).containsExactly("required.item", "required"); + } + + @Test + void messageCodesResolverField() { + String[] messageCodes = codesResolver.resolveMessageCodes("required", "item", "itemName", String.class); + for (String messageCode : messageCodes) { + System.out.println("messageCode = " + messageCode); + } + assertThat(messageCodes).containsExactly( + "required.item.itemName", + "required.itemName", + "required.java.lang.String", + "required" + ); + } +}