1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.springframework.binding.form.support;
17
18 import java.util.Locale;
19
20 import junit.framework.TestCase;
21
22 import org.springframework.beans.TypeMismatchException;
23 import org.springframework.binding.form.FieldFace;
24 import org.springframework.binding.format.InvalidFormatException;
25 import org.springframework.binding.validation.ValidationMessage;
26 import org.springframework.binding.value.support.ValueHolder;
27 import org.springframework.context.support.MessageSourceAccessor;
28 import org.springframework.context.support.StaticMessageSource;
29 import org.springframework.richclient.core.LabelInfo;
30
31
32
33
34
35
36 public class DefaultBindingErrorMessageProviderTests extends TestCase {
37
38 public void testGetErrorMessage() {
39 DefaultBindingErrorMessageProvider provider = new DefaultBindingErrorMessageProvider();
40
41 TestAbstractFormModel formModel = new TestAbstractFormModel(new Object()) {
42 public FieldFace getFieldFace(String field) {
43 return new DefaultFieldFace("Some Property", "", "", new LabelInfo("Some Property"), null);
44 }
45 };
46 formModel.add("someProperty", new ValueHolder("value"));
47
48 StaticMessageSource messageSource = new StaticMessageSource();
49 messageSource.addMessage("typeMismatch", Locale.getDefault(), "{0} has an invalid format \"{1}\"");
50 MessageSourceAccessor messageSourceAccessor = new MessageSourceAccessor(messageSource);
51 provider.setMessageSourceAccessor(messageSourceAccessor);
52
53 ValidationMessage message = provider.getErrorMessage(formModel, "someProperty", "new value",
54 new IllegalArgumentException());
55
56 assertNotNull(message);
57 assertEquals("someProperty", message.getProperty());
58 assertEquals("Some Property has an invalid format \"new value\"", message.getMessage());
59 }
60
61 public void testGetMessageCodeForException() {
62 DefaultBindingErrorMessageProvider provider = new DefaultBindingErrorMessageProvider();
63
64 assertEquals("typeMismatch", provider.getMessageCodeForException(new TypeMismatchException(new Object(),
65 String.class)));
66 assertEquals("required", provider.getMessageCodeForException(new NullPointerException()));
67 assertEquals("typeMismatch", provider.getMessageCodeForException(new InvalidFormatException("", "")));
68 assertEquals("typeMismatch", provider.getMessageCodeForException(new IllegalArgumentException()));
69 assertEquals("required", provider.getMessageCodeForException(new RuntimeException(new NullPointerException())));
70 assertEquals("unknown", provider.getMessageCodeForException(new UnsupportedOperationException()));
71 }
72
73 }