diff --git a/spring-binding/src/test/java/org/springframework/binding/message/MessageBuilderTests.java b/spring-binding/src/test/java/org/springframework/binding/message/MessageBuilderTests.java index 5221bb3a..0718a902 100644 --- a/spring-binding/src/test/java/org/springframework/binding/message/MessageBuilderTests.java +++ b/spring-binding/src/test/java/org/springframework/binding/message/MessageBuilderTests.java @@ -14,6 +14,8 @@ public class MessageBuilderTests extends TestCase { public void setUp() { messageSource.addMessage("foo", locale, "bar"); + messageSource.addMessage("bar", locale, "{0}"); + messageSource.addMessage("baz", locale, "boop"); } public void testBuildDefaultText() { @@ -66,6 +68,22 @@ public class MessageBuilderTests extends TestCase { assertNull(message.getSource()); } + public void testBuildArg() { + MessageResolver resolver = builder.error().code("bar").arg("baz").build(); + Message message = resolver.resolveMessage(messageSource, locale); + assertEquals("baz", message.getText()); + assertEquals(Severity.ERROR, message.getSeverity()); + assertNull(message.getSource()); + } + + public void testBuildArgs() { + MessageResolver resolver = builder.error().codes(new String[] { "bar" }).args(new Object[] { "baz" }).build(); + Message message = resolver.resolveMessage(messageSource, locale); + assertEquals("baz", message.getText()); + assertEquals(Severity.ERROR, message.getSeverity()); + assertNull(message.getSource()); + } + public void testBuildCodesNull() { MessageResolver resolver = builder.codes(null).build(); try { @@ -75,4 +93,54 @@ public class MessageBuilderTests extends TestCase { } } + + public void testBuildArgsNull() { + MessageResolver resolver = builder.args(null).build(); + try { + resolver.resolveMessage(messageSource, locale); + fail("Should have failed"); + } catch (NoSuchMessageException e) { + + } + } + + public void testBuildArgsWithNullCodes() { + MessageResolver resolver = builder.error().args(new Object[] { "baz" }).build(); + try { + resolver.resolveMessage(messageSource, locale); + fail("Should have failed"); + } catch (NoSuchMessageException e) { + } + } + + public void testBuildArgsWithNullCodesDefaultText() { + MessageResolver resolver = builder.error().args(new Object[] { "baz" }).defaultText("foo").build(); + Message message = resolver.resolveMessage(messageSource, locale); + assertEquals("foo", message.getText()); + } + + public void testBuildWithSource() { + MessageResolver resolver = builder.source("foo").defaultText("foo").build(); + Message message = resolver.resolveMessage(messageSource, locale); + assertEquals("foo", message.getSource()); + assertEquals("foo", message.getText()); + assertEquals(Severity.INFO, message.getSeverity()); + } + + public void testBuildResolvableArg() { + MessageResolver resolver = builder.error().code("bar").resolvableArg("baz").build(); + Message message = resolver.resolveMessage(messageSource, locale); + assertEquals("boop", message.getText()); + assertEquals(Severity.ERROR, message.getSeverity()); + assertNull(message.getSource()); + } + + public void testBuildResolvableArgs() { + MessageResolver resolver = builder.error().codes(new String[] { "bar" }).resolvableArgs(new Object[] { "baz" }) + .build(); + Message message = resolver.resolveMessage(messageSource, locale); + assertEquals("boop", message.getText()); + assertEquals(Severity.ERROR, message.getSeverity()); + assertNull(message.getSource()); + } }