Skip to content

Commit

Permalink
test: temp
Browse files Browse the repository at this point in the history
  • Loading branch information
stick-i committed Oct 30, 2024
1 parent e939d6f commit 04e0aee
Show file tree
Hide file tree
Showing 5 changed files with 58 additions and 47 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package cn.sticki.spel.validator.javax.bean;

import cn.sticki.spel.validator.core.constrain.SpelAssert;
import cn.sticki.spel.validator.javax.SpelValid;
import cn.sticki.spel.validator.javax.util.ID;
import cn.sticki.spel.validator.javax.util.VerifyFailedField;
import cn.sticki.spel.validator.javax.util.VerifyObject;
Expand All @@ -19,36 +18,6 @@
*/
public class SpelAssertTestBean {

@Data
@SpelValid(spelGroups = "#this.group")
public static class ParamTestBean implements ID {

private int id;

@SpelAssert(condition = "false", assertTrue = "false")
private Integer test;

@SpelAssert(condition = "true", assertTrue = "false ")
private List<Integer> test2;

@SpelAssert(condition = "true")
private Double test3;

@SpelAssert(assertTrue = "#this.test4 == 'test4'", message = "test4")
private String test4;

private String group;

@SpelAssert(assertTrue = "false", message = "group1", group = "'group1'")
private Boolean test5;

private String group2 = "group2";

@SpelAssert(assertTrue = "false", message = "group2", group = "#this.group2")
private Boolean test6;

}

public static List<VerifyObject> paramTestCase() {
ArrayList<VerifyObject> list = new ArrayList<>();

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

ParamTestBean bean3 = new ParamTestBean();
bean3.setId(3);
Expand All @@ -77,7 +46,7 @@ public static List<VerifyObject> paramTestCase() {
list.add(VerifyObject.of(
bean3,
VerifyFailedField.of(ParamTestBean::getTest2)
));
).setGroups("#this.group"));

ParamTestBean bean4 = new ParamTestBean();
bean4.setId(4);
Expand All @@ -88,13 +57,43 @@ public static List<VerifyObject> paramTestCase() {
VerifyFailedField.of(ParamTestBean::getTest2),
VerifyFailedField.of(ParamTestBean::getTest4, "test4"),
VerifyFailedField.of(ParamTestBean::getTest6, "group2")
));
).setGroups("#this.group"));

return list;
}

@Data
@SpelValid
// @SpelValid(spelGroups = "#this.group")
public static class ParamTestBean implements ID {

private int id;

@SpelAssert(condition = "false", assertTrue = "false")
private Integer test;

@SpelAssert(condition = "true", assertTrue = "false ")
private List<Integer> test2;

@SpelAssert(condition = "true")
private Double test3;

@SpelAssert(assertTrue = "#this.test4 == 'test4'", message = "test4")
private String test4;

private String group;

@SpelAssert(assertTrue = "false", message = "group1", group = "'group1'")
private Boolean test5;

private String group2 = "group2";

@SpelAssert(assertTrue = "false", message = "group2", group = "#this.group2")
private Boolean test6;

}

@Data
// @SpelValid
public static class EmptyTestBean {

@SpelAssert(condition = "true", assertTrue = "")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package cn.sticki.spel.validator.javax.bean;

import cn.sticki.spel.validator.core.constrain.SpelMax;
import cn.sticki.spel.validator.javax.SpelValid;
import cn.sticki.spel.validator.javax.util.ID;
import cn.sticki.spel.validator.javax.util.VerifyFailedField;
import cn.sticki.spel.validator.javax.util.VerifyObject;
Expand All @@ -27,7 +26,7 @@ public class SpelMaxTestBean {
*/
@Data
@Builder
@SpelValid
// @SpelValid
public static class ParamTestBean implements ID {

private int id;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package cn.sticki.spel.validator.javax.bean;

import cn.sticki.spel.validator.core.constrain.SpelMin;
import cn.sticki.spel.validator.javax.SpelValid;
import cn.sticki.spel.validator.javax.util.ID;
import cn.sticki.spel.validator.javax.util.VerifyFailedField;
import cn.sticki.spel.validator.javax.util.VerifyObject;
Expand All @@ -27,7 +26,7 @@ public class SpelMinTestBean {
*/
@Data
@Builder
@SpelValid
// @SpelValid
public static class ParamTestBean implements ID {

private int id;
Expand Down Expand Up @@ -164,7 +163,7 @@ public static List<VerifyObject> paramTestCase() {
*/
@Data
@Builder
@SpelValid
// @SpelValid
public static class RepeatableTestBean implements ID {

private int id;
Expand Down Expand Up @@ -240,7 +239,7 @@ public static List<VerifyObject> repeatableTestCase() {
*/
@Data
@Builder
@SpelValid
// @SpelValid
public static class ParamTestBean2 implements ID {

private int id;
Expand Down Expand Up @@ -311,7 +310,7 @@ public static List<VerifyObject> paramTest2Case() {
*/
@Data
@Builder
@SpelValid
// @SpelValid
public static class ValueTypeTestBean implements ID {

private int id;
Expand Down Expand Up @@ -513,7 +512,7 @@ public static List<VerifyObject> valueTypeTestCase() {
*/
@Data
@Builder
@SpelValid
// @SpelValid
public static class NotSupportValueTypeTestBean implements ID {

private int id;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.Set;
Expand All @@ -34,11 +35,12 @@ public class ValidateUtil {
*
* @return 校验结果
*/
public static ObjectValidResult validate(Object obj) {
public static ObjectValidResult validate(Object obj, String[] spelGroups) {
// 如果对象没有使用 SpelValid 注解,则直接调用验证执行器进行验证
// 这种情况下,只会验证本框架提供的约束注解
if (!obj.getClass().isAnnotationPresent(SpelValid.class)) {
return SpelValidExecutor.validateObject(obj);
Set<String> collect = Arrays.stream(spelGroups).collect(Collectors.toSet());
return SpelValidExecutor.validateObject(obj, collect);
}

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

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


}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package cn.sticki.spel.validator.javax.util;

import lombok.Data;
import org.intellij.lang.annotations.Language;

import java.util.Arrays;
import java.util.Collection;
Expand Down Expand Up @@ -30,6 +31,12 @@ public class VerifyObject {
*/
private boolean expectException;

/**
* spel 分组参数,当未使用 @SpelValid 注解时,该参数生效
*/
@Language("spel")
private String[] spelGroups;

private VerifyObject() {
}

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

public VerifyObject setGroups(@Language("spel") String... spelGroups) {
this.spelGroups = spelGroups;
return this;
}

}

0 comments on commit 04e0aee

Please sign in to comment.