SWF-1247 Fix issues relating error codes in MessageContextErrors

This commit is contained in:
Rossen Stoyanchev
2010-12-01 12:45:34 +00:00
parent 41b5680b56
commit 8928b6d7ff
3 changed files with 91 additions and 41 deletions

View File

@@ -0,0 +1,61 @@
package org.springframework.binding.message;
import java.util.Locale;
import junit.framework.TestCase;
import org.easymock.EasyMock;
import org.springframework.context.support.StaticMessageSource;
import org.springframework.validation.MessageCodesResolver;
public class MessageContextErrorsMessageCodesTests extends TestCase {
private DefaultMessageContext context;
private String errorCode = "bar";
private String objectName = "object";
private MessageCodesResolver resolver;
@Override
protected void setUp() throws Exception {
StaticMessageSource messageSource = new StaticMessageSource();
messageSource.addMessage(errorCode, Locale.getDefault(), "doesntmatter");
context = new DefaultMessageContext(messageSource);
resolver = EasyMock.createMock(MessageCodesResolver.class);
}
public void testRejectUsesObjectName() throws Exception {
EasyMock.expect(resolver.resolveMessageCodes(errorCode, objectName)).andReturn(new String[] {});
EasyMock.replay(resolver);
Object object = new Object();
MessageContextErrors errors = new MessageContextErrors(context, objectName, object, null, resolver, null);
errors.reject(errorCode, "doesntmatter");
EasyMock.verify(resolver);
}
public void testRejectValueUsesObjectName() throws Exception {
EasyMock.expect(resolver.resolveMessageCodes(errorCode, objectName, "field", null)).andReturn(new String[] {});
EasyMock.replay(resolver);
MessageContextErrors errors = new MessageContextErrors(context, objectName, new Object(), null, resolver, null);
errors.rejectValue("field", errorCode, new Object[] {}, "doesntmatter");
EasyMock.verify(resolver);
}
public void testRejectValueEmptyField() throws Exception {
EasyMock.expect(resolver.resolveMessageCodes(errorCode, objectName)).andReturn(new String[] {});
EasyMock.replay(resolver);
MessageContextErrors errors = new MessageContextErrors(context, objectName, new Object(), null, resolver, null);
errors.rejectValue(null, errorCode, new Object[] {}, "doesntmatter");
EasyMock.verify(resolver);
}
}

View File

@@ -12,15 +12,24 @@ import org.springframework.validation.DefaultMessageCodesResolver;
import org.springframework.validation.MapBindingResult;
public class MessageContextErrorsTests extends TestCase {
public void testReject() {
private DefaultMessageContext context;
private MessageContextErrors errors;
@Override
protected void setUp() throws Exception {
StaticMessageSource messageSource = new StaticMessageSource();
messageSource.addMessage("foo", Locale.getDefault(), "bar");
messageSource.addMessage("bar", Locale.getDefault(), "{0}");
DefaultMessageContext context = new DefaultMessageContext(messageSource);
Object object = new Object();
MessageContextErrors errors = new MessageContextErrors(context, "object", object, null,
new DefaultMessageCodesResolver(), null);
context = new DefaultMessageContext(messageSource);
SpringELExpressionParser parser = new SpringELExpressionParser(new SpelExpressionParser());
DefaultMessageCodesResolver resolver = new DefaultMessageCodesResolver();
errors = new MessageContextErrors(context, "object", new Object(), parser, resolver, null);
}
public void testReject() {
errors.reject("foo");
errors.reject("bogus", "baz");
errors.reject("bar", new Object[] { "boop" }, null);
@@ -42,44 +51,27 @@ public class MessageContextErrorsTests extends TestCase {
}
public void testRejectValue() {
StaticMessageSource messageSource = new StaticMessageSource();
messageSource.addMessage("foo", Locale.getDefault(), "bar");
messageSource.addMessage("bar", Locale.getDefault(), "{0}");
DefaultMessageContext context = new DefaultMessageContext(messageSource);
Object object = new Object();
MessageContextErrors errors = new MessageContextErrors(context, "object", object, null,
new DefaultMessageCodesResolver(), null);
errors.rejectValue("field", "foo");
errors.rejectValue("field", "bogus", "baz");
errors.rejectValue("field", "bar", new Object[] { "boop" }, null);
errors.rejectValue("class", "foo");
errors.rejectValue("class", "bogus", "baz");
errors.rejectValue("class", "bar", new Object[] { "boop" }, null);
Message msg = context.getAllMessages()[0];
assertEquals("field", msg.getSource());
assertEquals("class", msg.getSource());
assertEquals("bar", msg.getText());
assertEquals(Severity.ERROR, msg.getSeverity());
msg = context.getAllMessages()[1];
assertEquals("field", msg.getSource());
assertEquals("class", msg.getSource());
assertEquals("baz", msg.getText());
assertEquals(Severity.ERROR, msg.getSeverity());
msg = context.getAllMessages()[2];
assertEquals("field", msg.getSource());
assertEquals("class", msg.getSource());
assertEquals("boop", msg.getText());
assertEquals(Severity.ERROR, msg.getSeverity());
}
public void testGlobalError() {
StaticMessageSource messageSource = new StaticMessageSource();
messageSource.addMessage("foo", Locale.getDefault(), "bar");
messageSource.addMessage("bar", Locale.getDefault(), "{0}");
DefaultMessageContext context = new DefaultMessageContext(messageSource);
Object object = new Object();
SpringELExpressionParser expressionParser = new SpringELExpressionParser(new SpelExpressionParser());
MessageContextErrors errors = new MessageContextErrors(context, "object", object, expressionParser,
new DefaultMessageCodesResolver(), null);
errors.rejectValue(null, "bar", new Object[] { "boop" }, null);
Message msg = context.getAllMessages()[0];
assertEquals("", msg.getSource());
@@ -88,14 +80,6 @@ public class MessageContextErrorsTests extends TestCase {
}
public void testAddAllErrors() {
StaticMessageSource messageSource = new StaticMessageSource();
messageSource.addMessage("foo", Locale.getDefault(), "bar");
messageSource.addMessage("bar", Locale.getDefault(), "{0}");
DefaultMessageContext context = new DefaultMessageContext(messageSource);
Object object = new Object();
MessageContextErrors errors = new MessageContextErrors(context, "object", object, null,
new DefaultMessageCodesResolver(), null);
MapBindingResult result = new MapBindingResult(new HashMap(), "object");
result.reject("bar", new Object[] { "boop" }, null);
result.rejectValue("field", "bar", new Object[] { "boop" }, null);