Skip to content

Commit

Permalink
Merge pull request #5 from rmorrise/pr/4
Browse files Browse the repository at this point in the history
Updated version. Collection field name was missing '.0.' for the first collection item.
  • Loading branch information
rmorrise committed Oct 29, 2014
2 parents bf4b1c4 + cc66e6e commit 92eca4a
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 10 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
/.settings
/.idea
/target
/classes
/web-app/WEB-INF
grails-cascade-validation-*.zip
grails-cascade-validation-*.zip.sha1
Expand Down
2 changes: 1 addition & 1 deletion CascadeValidationGrailsPlugin.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import com.cscinfo.platform.constraint.CascadeValidationConstraint
import org.codehaus.groovy.grails.validation.ConstrainedProperty

class CascadeValidationGrailsPlugin {
def version = "0.1.3"
def version = "0.1.4"
def grailsVersion = "2.3 > *"
def title = "Cascade Validation Plugin"
def author = "Russell Morrisey"
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ To use this plugin, add the plugin to BuildConfig.groovy:
```groovy
plugins {
//CSC custom plugin for 'cascade' constraint
compile ":cascade-validation:0.1.3"
compile ":cascade-validation:0.1.4"
}
```
Here is an example of a command object that uses the plugin:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ class CascadeValidationConstraint extends AbstractVetoingConstraint {
List<FieldError> childFieldErrors = childErrors.fieldErrors
childFieldErrors.each { FieldError childFieldError ->
String field
if(index) {
if(index != null) {
field = "${propertyName}.${index}.${childFieldError.field}"
} else {
field = "${propertyName}.${childFieldError.field}"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,9 @@ class CascadeValidationConstraintSpec extends Specification {
String[] codes = ['A', 'B']
def defaultMessage = 'default'
Object[] args = [Mock(Object)]
def fieldError = new FieldError('obj', 'field', rejected, true, codes,

def field = 'field'
def fieldError = new FieldError('obj', field, rejected, true, codes,
args, defaultMessage)
def fieldErrors = [fieldError]
def parentName = 'foo'
Expand All @@ -91,8 +93,12 @@ class CascadeValidationConstraintSpec extends Specification {
1 * childErrors.fieldErrors >> fieldErrors
1 * errors.objectName >> parentName
1 * errors.addError({
it.objectName == parentName && it.bindingFailure == true && it.codes == codes && it.arguments == args && it
.defaultMessage == defaultMessage
it.objectName == parentName &&
it.field == "property." + field &&
it.bindingFailure == true &&
it.codes == codes &&
it.arguments == args &&
it.defaultMessage == defaultMessage
})
result == true
}
Expand All @@ -112,7 +118,8 @@ class CascadeValidationConstraintSpec extends Specification {
String[] codes = ['A', 'B']
def defaultMessage = 'default'
Object[] args = [Mock(Object)]
def fieldError = new FieldError('obj', 'field', rejected, true, codes,
def field = 'field'
def fieldError = new FieldError('obj', field, rejected, true, codes,
args, defaultMessage)
def fieldErrors = [fieldError]
def parentName = 'foo'
Expand All @@ -128,9 +135,20 @@ class CascadeValidationConstraintSpec extends Specification {
1 * child1Errors.fieldErrors >> fieldErrors
1 * child2Errors.fieldErrors >> fieldErrors
target.size() * errors.objectName >> parentName
target.size() * errors.addError({
it.objectName == parentName && it.bindingFailure == true && it.codes == codes && it.arguments == args && it
.defaultMessage == defaultMessage
1 * errors.addError({
it.objectName == parentName &&
it.field == "children.0." + field &&
it.bindingFailure == true &&
it.codes == codes &&
it.arguments == args &&
it.defaultMessage == defaultMessage
})
1 * errors.addError({
it.objectName == parentName && it.field == "children.1." + field &&
it.bindingFailure == true &&
it.codes == codes &&
it.arguments == args &&
it.defaultMessage == defaultMessage
})
result == true
}
Expand Down

0 comments on commit 92eca4a

Please sign in to comment.