Skip to content

Commit 906faba

Browse files
Fix vararg problem
Fixes #9761
1 parent 9a6c517 commit 906faba

File tree

2 files changed

+44
-0
lines changed

2 files changed

+44
-0
lines changed

grails-plugin-validation/src/main/groovy/grails/validation/Validateable.groovy

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,18 +78,33 @@ trait Validateable {
7878
}
7979
}
8080

81+
boolean validate() {
82+
validate null
83+
}
8184
boolean validate(Closure<?>... adHocConstraintsClosures) {
8285
validate(null, null, adHocConstraintsClosures)
8386
}
8487

88+
boolean validate(Map<String, Object> params) {
89+
validate params, null
90+
}
91+
8592
boolean validate(Map<String, Object> params, Closure<?>... adHocConstraintsClosures) {
8693
validate(null, params, adHocConstraintsClosures)
8794
}
8895

96+
boolean validate(List fieldsToValidate) {
97+
validate fieldsToValidate, null
98+
}
99+
89100
boolean validate(List fieldsToValidate, Closure<?>... adHocConstraintsClosures) {
90101
validate(fieldsToValidate, null, adHocConstraintsClosures)
91102
}
92103

104+
boolean validate(List fieldsToValidate, Map<String, Object> params) {
105+
validate fieldsToValidate, params, null
106+
}
107+
93108
boolean validate(List fieldsToValidate, Map<String, Object> params, Closure<?>... adHocConstraintsClosures) {
94109
beforeValidateHelper.invokeBeforeValidate(this, fieldsToValidate)
95110

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package grails.validation
2+
3+
import spock.lang.Issue
4+
import spock.lang.Specification
5+
6+
class ValidateableMockSpec extends Specification {
7+
8+
@Issue('grails/grails-core#9761')
9+
void 'ensure command is mocked properly'(){
10+
given:
11+
SomeCommand command = GroovyMock()
12+
1 * command.validate() >> true
13+
1 * command.validate() >> false
14+
1 * command.validate() >> true
15+
1 * command.validate(_) >> true
16+
1 * command.validate(_) >> false
17+
1 * command.validate(_, _) >> true
18+
19+
expect:
20+
command.validate()
21+
!command.validate()
22+
command.validate()
23+
command.validate([])
24+
!command.validate([:])
25+
command.validate([], [:])
26+
}
27+
}
28+
29+
class SomeCommand implements Validateable {}

0 commit comments

Comments
 (0)