diff --git a/spring-binding/src/main/java/org/springframework/binding/validation/DefaultSpringMvcValidationFailureMessageCodesFactory.java b/spring-binding/src/main/java/org/springframework/binding/validation/DefaultSpringMvcValidationFailureMessageCodesFactory.java index 16d12128..18783dc4 100644 --- a/spring-binding/src/main/java/org/springframework/binding/validation/DefaultSpringMvcValidationFailureMessageCodesFactory.java +++ b/spring-binding/src/main/java/org/springframework/binding/validation/DefaultSpringMvcValidationFailureMessageCodesFactory.java @@ -30,18 +30,19 @@ package org.springframework.binding.validation; public class DefaultSpringMvcValidationFailureMessageCodesFactory extends ValidationFailureMessageCodesFactory { public String[] createMessageCodes(ValidationFailure failure, ValidationFailureModelContext modelContext) { - String constraintMessageCode = appendFailureMessageCodePrefix().append(failure.getConstraint()).append( - codeSeparator()).toString(); + String constraintMessageCode = appendFailureMessageCodePrefix().append(codeSeparator()).append( + failure.getConstraint()).toString(); if (failure.getProperty() != null) { String propertyConstraintMessageCode = appendFailureMessageCodePrefix().append(codeSeparator()).append( - failure.getConstraint()).append(modelContext.getModel()).append(codeSeparator()).append( - failure.getProperty()).append(codeSeparator()).toString(); + failure.getConstraint()).append(codeSeparator()).append(modelContext.getModel()).append( + codeSeparator()).append(failure.getProperty()).toString(); String typeConstraintMessageCode = appendFailureMessageCodePrefix().append(codeSeparator()).append( - failure.getConstraint()).append(modelContext.getPropertyType().getName()).toString(); + failure.getConstraint()).append(codeSeparator()).append(modelContext.getPropertyType().getName()) + .toString(); return new String[] { propertyConstraintMessageCode, typeConstraintMessageCode, constraintMessageCode }; } else { String objectConstraintMessageCode = appendFailureMessageCodePrefix().append(codeSeparator()).append( - failure.getConstraint()).append(modelContext.getModel()).append(codeSeparator()).toString(); + failure.getConstraint()).append(codeSeparator()).append(modelContext.getModel()).toString(); return new String[] { objectConstraintMessageCode, constraintMessageCode }; } } diff --git a/spring-binding/src/test/java/org/springframework/binding/validation/DefaultSpringMvcValidationFailureMessageCodesFactoryTests.java b/spring-binding/src/test/java/org/springframework/binding/validation/DefaultSpringMvcValidationFailureMessageCodesFactoryTests.java new file mode 100644 index 00000000..ed5a9dd9 --- /dev/null +++ b/spring-binding/src/test/java/org/springframework/binding/validation/DefaultSpringMvcValidationFailureMessageCodesFactoryTests.java @@ -0,0 +1,24 @@ +package org.springframework.binding.validation; + +import junit.framework.TestCase; + +public class DefaultSpringMvcValidationFailureMessageCodesFactoryTests extends TestCase { + private DefaultSpringMvcValidationFailureMessageCodesFactory factory = new DefaultSpringMvcValidationFailureMessageCodesFactory(); + + public void testCreateGeneralModelFailureMessageCodes() { + ValidationFailure failure = new ValidationFailureBuilder().constraint("invalid").build(); + String[] codes = factory.createMessageCodes(failure, new ValidationFailureModelContext("testBean", null, null, + null)); + assertEquals("validation.invalid.testBean", codes[0]); + assertEquals("validation.invalid", codes[1]); + } + + public void testCreatePropertyFailureMessageCodes() { + ValidationFailure failure = new ValidationFailureBuilder().forProperty("foo").constraint("required").build(); + String[] codes = factory.createMessageCodes(failure, new ValidationFailureModelContext("testBean", null, + String.class, null)); + assertEquals("validation.required.testBean.foo", codes[0]); + assertEquals("validation.required.java.lang.String", codes[1]); + assertEquals("validation.required", codes[2]); + } +} diff --git a/spring-binding/src/test/java/org/springframework/binding/validation/ValidationFailureMessageCodesFactoryTests.java b/spring-binding/src/test/java/org/springframework/binding/validation/ValidationFailureMessageCodesFactoryTests.java new file mode 100644 index 00000000..d0450aab --- /dev/null +++ b/spring-binding/src/test/java/org/springframework/binding/validation/ValidationFailureMessageCodesFactoryTests.java @@ -0,0 +1,24 @@ +package org.springframework.binding.validation; + +import junit.framework.TestCase; + +public class ValidationFailureMessageCodesFactoryTests extends TestCase { + private ValidationFailureMessageCodesFactory factory = new ValidationFailureMessageCodesFactory(); + + public void testCreateGeneralModelFailureMessageCodes() { + ValidationFailure failure = new ValidationFailureBuilder().constraint("invalid").build(); + String[] codes = factory.createMessageCodes(failure, new ValidationFailureModelContext("testBean", null, null, + null)); + assertEquals("validation.testBean.invalid", codes[0]); + assertEquals("validation.invalid", codes[1]); + } + + public void testCreatePropertyFailureMessageCodes() { + ValidationFailure failure = new ValidationFailureBuilder().forProperty("foo").constraint("required").build(); + String[] codes = factory.createMessageCodes(failure, new ValidationFailureModelContext("testBean", null, + String.class, null)); + assertEquals("validation.testBean.foo.required", codes[0]); + assertEquals("validation.java.lang.String.required", codes[1]); + assertEquals("validation.required", codes[2]); + } +}