Skip to content

Commit 04e0aee

Browse files
committed
test: temp
1 parent e939d6f commit 04e0aee

File tree

5 files changed

+58
-47
lines changed

5 files changed

+58
-47
lines changed

spel-validator-javax/src/test/java/cn/sticki/spel/validator/javax/bean/SpelAssertTestBean.java

+34-35
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package cn.sticki.spel.validator.javax.bean;
22

33
import cn.sticki.spel.validator.core.constrain.SpelAssert;
4-
import cn.sticki.spel.validator.javax.SpelValid;
54
import cn.sticki.spel.validator.javax.util.ID;
65
import cn.sticki.spel.validator.javax.util.VerifyFailedField;
76
import cn.sticki.spel.validator.javax.util.VerifyObject;
@@ -19,36 +18,6 @@
1918
*/
2019
public class SpelAssertTestBean {
2120

22-
@Data
23-
@SpelValid(spelGroups = "#this.group")
24-
public static class ParamTestBean implements ID {
25-
26-
private int id;
27-
28-
@SpelAssert(condition = "false", assertTrue = "false")
29-
private Integer test;
30-
31-
@SpelAssert(condition = "true", assertTrue = "false ")
32-
private List<Integer> test2;
33-
34-
@SpelAssert(condition = "true")
35-
private Double test3;
36-
37-
@SpelAssert(assertTrue = "#this.test4 == 'test4'", message = "test4")
38-
private String test4;
39-
40-
private String group;
41-
42-
@SpelAssert(assertTrue = "false", message = "group1", group = "'group1'")
43-
private Boolean test5;
44-
45-
private String group2 = "group2";
46-
47-
@SpelAssert(assertTrue = "false", message = "group2", group = "#this.group2")
48-
private Boolean test6;
49-
50-
}
51-
5221
public static List<VerifyObject> paramTestCase() {
5322
ArrayList<VerifyObject> list = new ArrayList<>();
5423

@@ -68,7 +37,7 @@ public static List<VerifyObject> paramTestCase() {
6837
bean2,
6938
VerifyFailedField.of(ParamTestBean::getTest2),
7039
VerifyFailedField.of(ParamTestBean::getTest5, "group1")
71-
));
40+
).setGroups("#this.group"));
7241

7342
ParamTestBean bean3 = new ParamTestBean();
7443
bean3.setId(3);
@@ -77,7 +46,7 @@ public static List<VerifyObject> paramTestCase() {
7746
list.add(VerifyObject.of(
7847
bean3,
7948
VerifyFailedField.of(ParamTestBean::getTest2)
80-
));
49+
).setGroups("#this.group"));
8150

8251
ParamTestBean bean4 = new ParamTestBean();
8352
bean4.setId(4);
@@ -88,13 +57,43 @@ public static List<VerifyObject> paramTestCase() {
8857
VerifyFailedField.of(ParamTestBean::getTest2),
8958
VerifyFailedField.of(ParamTestBean::getTest4, "test4"),
9059
VerifyFailedField.of(ParamTestBean::getTest6, "group2")
91-
));
60+
).setGroups("#this.group"));
9261

9362
return list;
9463
}
9564

9665
@Data
97-
@SpelValid
66+
// @SpelValid(spelGroups = "#this.group")
67+
public static class ParamTestBean implements ID {
68+
69+
private int id;
70+
71+
@SpelAssert(condition = "false", assertTrue = "false")
72+
private Integer test;
73+
74+
@SpelAssert(condition = "true", assertTrue = "false ")
75+
private List<Integer> test2;
76+
77+
@SpelAssert(condition = "true")
78+
private Double test3;
79+
80+
@SpelAssert(assertTrue = "#this.test4 == 'test4'", message = "test4")
81+
private String test4;
82+
83+
private String group;
84+
85+
@SpelAssert(assertTrue = "false", message = "group1", group = "'group1'")
86+
private Boolean test5;
87+
88+
private String group2 = "group2";
89+
90+
@SpelAssert(assertTrue = "false", message = "group2", group = "#this.group2")
91+
private Boolean test6;
92+
93+
}
94+
95+
@Data
96+
// @SpelValid
9897
public static class EmptyTestBean {
9998

10099
@SpelAssert(condition = "true", assertTrue = "")

spel-validator-javax/src/test/java/cn/sticki/spel/validator/javax/bean/SpelMaxTestBean.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package cn.sticki.spel.validator.javax.bean;
22

33
import cn.sticki.spel.validator.core.constrain.SpelMax;
4-
import cn.sticki.spel.validator.javax.SpelValid;
54
import cn.sticki.spel.validator.javax.util.ID;
65
import cn.sticki.spel.validator.javax.util.VerifyFailedField;
76
import cn.sticki.spel.validator.javax.util.VerifyObject;
@@ -27,7 +26,7 @@ public class SpelMaxTestBean {
2726
*/
2827
@Data
2928
@Builder
30-
@SpelValid
29+
// @SpelValid
3130
public static class ParamTestBean implements ID {
3231

3332
private int id;

spel-validator-javax/src/test/java/cn/sticki/spel/validator/javax/bean/SpelMinTestBean.java

+5-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package cn.sticki.spel.validator.javax.bean;
22

33
import cn.sticki.spel.validator.core.constrain.SpelMin;
4-
import cn.sticki.spel.validator.javax.SpelValid;
54
import cn.sticki.spel.validator.javax.util.ID;
65
import cn.sticki.spel.validator.javax.util.VerifyFailedField;
76
import cn.sticki.spel.validator.javax.util.VerifyObject;
@@ -27,7 +26,7 @@ public class SpelMinTestBean {
2726
*/
2827
@Data
2928
@Builder
30-
@SpelValid
29+
// @SpelValid
3130
public static class ParamTestBean implements ID {
3231

3332
private int id;
@@ -164,7 +163,7 @@ public static List<VerifyObject> paramTestCase() {
164163
*/
165164
@Data
166165
@Builder
167-
@SpelValid
166+
// @SpelValid
168167
public static class RepeatableTestBean implements ID {
169168

170169
private int id;
@@ -240,7 +239,7 @@ public static List<VerifyObject> repeatableTestCase() {
240239
*/
241240
@Data
242241
@Builder
243-
@SpelValid
242+
// @SpelValid
244243
public static class ParamTestBean2 implements ID {
245244

246245
private int id;
@@ -311,7 +310,7 @@ public static List<VerifyObject> paramTest2Case() {
311310
*/
312311
@Data
313312
@Builder
314-
@SpelValid
313+
// @SpelValid
315314
public static class ValueTypeTestBean implements ID {
316315

317316
private int id;
@@ -513,7 +512,7 @@ public static List<VerifyObject> valueTypeTestCase() {
513512
*/
514513
@Data
515514
@Builder
516-
@SpelValid
515+
// @SpelValid
517516
public static class NotSupportValueTypeTestBean implements ID {
518517

519518
private int id;

spel-validator-javax/src/test/java/cn/sticki/spel/validator/javax/util/ValidateUtil.java

+6-4
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import javax.validation.ConstraintViolation;
1010
import javax.validation.Validation;
1111
import javax.validation.Validator;
12+
import java.util.Arrays;
1213
import java.util.Collection;
1314
import java.util.List;
1415
import java.util.Set;
@@ -34,11 +35,12 @@ public class ValidateUtil {
3435
*
3536
* @return 校验结果
3637
*/
37-
public static ObjectValidResult validate(Object obj) {
38+
public static ObjectValidResult validate(Object obj, String[] spelGroups) {
3839
// 如果对象没有使用 SpelValid 注解,则直接调用验证执行器进行验证
3940
// 这种情况下,只会验证本框架提供的约束注解
4041
if (!obj.getClass().isAnnotationPresent(SpelValid.class)) {
41-
return SpelValidExecutor.validateObject(obj);
42+
Set<String> collect = Arrays.stream(spelGroups).collect(Collectors.toSet());
43+
return SpelValidExecutor.validateObject(obj, collect);
4244
}
4345

4446
// 通过 @Valid 的方式进行验证
@@ -74,6 +76,7 @@ public static boolean checkConstraintResult(List<VerifyObject> verifyObjectList)
7476
*/
7577
public static boolean checkConstraintResult(VerifyObject verifyObject) {
7678
Object object = verifyObject.getObject();
79+
String[] spelGroups = verifyObject.getSpelGroups();
7780
Collection<VerifyFailedField> verifyFailedFields = verifyObject.getVerifyFailedFields();
7881
boolean expectException = verifyObject.isExpectException();
7982

@@ -84,7 +87,7 @@ public static boolean checkConstraintResult(VerifyObject verifyObject) {
8487
int failCount = 0;
8588
try {
8689
// 执行约束校验
87-
ObjectValidResult validResult = ValidateUtil.validate(object);
90+
ObjectValidResult validResult = ValidateUtil.validate(object, spelGroups);
8891
failCount += processVerifyResult(verifyFailedFields, ConstraintViolationSet.of(validResult.getErrors()));
8992
} catch (Exception e) {
9093
if (expectException) {
@@ -164,5 +167,4 @@ private static int processVerifyResult(Collection<VerifyFailedField> verifyFaile
164167
return failCount;
165168
}
166169

167-
168170
}

spel-validator-javax/src/test/java/cn/sticki/spel/validator/javax/util/VerifyObject.java

+12
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package cn.sticki.spel.validator.javax.util;
22

33
import lombok.Data;
4+
import org.intellij.lang.annotations.Language;
45

56
import java.util.Arrays;
67
import java.util.Collection;
@@ -30,6 +31,12 @@ public class VerifyObject {
3031
*/
3132
private boolean expectException;
3233

34+
/**
35+
* spel 分组参数,当未使用 @SpelValid 注解时,该参数生效
36+
*/
37+
@Language("spel")
38+
private String[] spelGroups;
39+
3340
private VerifyObject() {
3441
}
3542

@@ -107,4 +114,9 @@ public static VerifyObject of(Object object, Collection<VerifyFailedField> verif
107114
return verifyObject;
108115
}
109116

117+
public VerifyObject setGroups(@Language("spel") String... spelGroups) {
118+
this.spelGroups = spelGroups;
119+
return this;
120+
}
121+
110122
}

0 commit comments

Comments
 (0)