Skip to content

Commit 3dfdd14

Browse files
committed
Merge branch '3.1.x' of github.com:grails/grails-core into 3.1.x
2 parents d3052eb + c11c6fb commit 3dfdd14

File tree

5 files changed

+75
-5
lines changed

5 files changed

+75
-5
lines changed

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

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -78,19 +78,35 @@ trait Validateable {
7878
}
7979
}
8080

81-
boolean validate(Closure... adHocConstraintsClosures) {
81+
boolean validate() {
82+
validate null, null, null
83+
}
84+
85+
boolean validate(Closure<?>... adHocConstraintsClosures) {
8286
validate(null, null, adHocConstraintsClosures)
8387
}
8488

85-
boolean validate(Map<String, Object> params, Closure... adHocConstraintsClosures) {
89+
boolean validate(Map<String, Object> params) {
90+
validate params, null
91+
}
92+
93+
boolean validate(Map<String, Object> params, Closure<?>... adHocConstraintsClosures) {
8694
validate(null, params, adHocConstraintsClosures)
8795
}
8896

89-
boolean validate(List fieldsToValidate, Closure... adHocConstraintsClosures) {
97+
boolean validate(List fieldsToValidate) {
98+
validate fieldsToValidate, null, null
99+
}
100+
101+
boolean validate(List fieldsToValidate, Closure<?>... adHocConstraintsClosures) {
90102
validate(fieldsToValidate, null, adHocConstraintsClosures)
91103
}
92104

93-
boolean validate(List fieldsToValidate, Map<String, Object> params, Closure... adHocConstraintsClosures) {
105+
boolean validate(List fieldsToValidate, Map<String, Object> params) {
106+
validate fieldsToValidate, params, null
107+
}
108+
109+
boolean validate(List fieldsToValidate, Map<String, Object> params, Closure<?>... adHocConstraintsClosures) {
94110
beforeValidateHelper.invokeBeforeValidate(this, fieldsToValidate)
95111

96112
boolean shouldInherit = Boolean.valueOf(params?.inherit?.toString() ?: 'true')

grails-shell/src/main/groovy/org/grails/cli/profile/AbstractProfile.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -328,7 +328,7 @@ abstract class AbstractProfile implements Profile {
328328
return parentNames.collect() { String name ->
329329
def parent = profileRepository.getProfile(name)
330330
if(parent == null) {
331-
throw new IllegalStateException("Profile [$name] declares and invalid dependency on parent profile [$name]")
331+
throw new IllegalStateException("Profile [$name] declares an invalid dependency on parent profile [$name]")
332332
}
333333
return parent
334334
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package grails.validation;
2+
3+
4+
// https://github.com/grails/grails-core/issues/9774
5+
public class SomeJavaClass {
6+
MyValidateable someValidateable;
7+
}
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(_ as List) >> true
16+
1 * command.validate(_ as Map) >> false
17+
1 * command.validate(_ as List, _ as Map) >> 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 {}

grails-test-suite-uber/src/test/groovy/grails/validation/ValidateableTraitSpec.groovy

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -278,6 +278,24 @@ class ValidateableTraitSpec extends Specification {
278278
validateable.errors['superName']?.code == 'nullable'
279279
validateable.errors['subName']?.code == 'nullable'
280280
}
281+
282+
@Issue('grails/grails-core#9774')
283+
void 'test a Java class which references a Groovy class marked with @Validateable'() {
284+
given:
285+
def obj = new SomeJavaClass()
286+
287+
when:
288+
obj.someValidateable = new MyValidateable(name: 'jeff')
289+
290+
then:
291+
!obj.someValidateable.validate(['name'])
292+
293+
when:
294+
obj.someValidateable = new MyValidateable(name: 'Jeff')
295+
296+
then:
297+
obj.someValidateable.validate(['name'])
298+
}
281299
}
282300

283301
class MyValidateable implements Validateable {

0 commit comments

Comments
 (0)