diff --git a/org.springframework.context/src/test/java/org/springframework/ui/binding/support/GenericBinderTests.java b/org.springframework.context/src/test/java/org/springframework/ui/binding/support/GenericBinderTests.java index c88e132ace64eefcbf605922c87d8b07cff0ab08..d8112e5046a526ecbd2ddc151cd9281c241e2c5d 100644 --- a/org.springframework.context/src/test/java/org/springframework/ui/binding/support/GenericBinderTests.java +++ b/org.springframework.context/src/test/java/org/springframework/ui/binding/support/GenericBinderTests.java @@ -20,7 +20,6 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; import org.springframework.context.i18n.LocaleContextHolder; -import org.springframework.ui.binding.Binder; import org.springframework.ui.binding.Binding; import org.springframework.ui.binding.BindingConfiguration; import org.springframework.ui.binding.BindingResult; @@ -31,12 +30,13 @@ import org.springframework.ui.format.date.DateFormatter; import org.springframework.ui.format.number.CurrencyFormat; import org.springframework.ui.format.number.CurrencyFormatter; import org.springframework.ui.format.number.IntegerFormatter; +import org.springframework.ui.message.MockMessageSource; public class GenericBinderTests { private TestBean bean; - private Binder binder; + private GenericBinder binder; @Before public void setUp() { @@ -205,7 +205,18 @@ public class GenericBinderTests { b.setValue("2,300"); assertEquals("2,300", b.getValue()); } - + + @Test + public void invalidFormatBindingResultCustomAlertMessage() { + MockMessageSource messages = new MockMessageSource(); + messages.addMessage("invalidFormat", Locale.US, "Please enter an integer in format ### for the #{label} field; you entered #{value}"); + binder.setMessageSource(messages); + binder.configureBinding(new BindingConfiguration("integer", new IntegerFormatter())); + Binding b = binder.getBinding("integer"); + BindingResult result = b.setValue("bogus"); + assertEquals("Please enter an integer in format ### for the integer field; you entered bogus", result.getAlert().getMessage()); + } + @Test public void getBindingMultiValued() { Binding b = binder.getBinding("foos"); @@ -231,7 +242,7 @@ public class GenericBinderTests { assertTrue(result.isFailure()); assertEquals("conversionFailed", result.getAlert().getCode()); } - + @Test public void bindHandleNullValueInNestedPath() { Map values = new LinkedHashMap(); diff --git a/org.springframework.context/src/test/java/org/springframework/ui/message/MockMessageSource.java b/org.springframework.context/src/test/java/org/springframework/ui/message/MockMessageSource.java index 87d8d2b851b74883228c8a5c42c0501905f669f4..6327bd1e50064d9f5dc2b31a7851646e86c09fb1 100644 --- a/org.springframework.context/src/test/java/org/springframework/ui/message/MockMessageSource.java +++ b/org.springframework.context/src/test/java/org/springframework/ui/message/MockMessageSource.java @@ -8,7 +8,7 @@ import java.util.Map; import org.springframework.context.support.AbstractMessageSource; import org.springframework.util.Assert; -class MockMessageSource extends AbstractMessageSource { +public class MockMessageSource extends AbstractMessageSource { /** Map from 'code + locale' keys to message Strings */ private final Map messages = new HashMap();