From 44ddcd16ea661a6b2bb9bd4ba6c1b4afaa3c6b3e Mon Sep 17 00:00:00 2001 From: stylefeng Date: Wed, 7 Aug 2024 14:36:46 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=908.3.0=E3=80=91=E3=80=90scanner?= =?UTF-8?q?=E3=80=91=E3=80=90test=E3=80=91=E6=B5=8B=E8=AF=95=E6=95=B0?= =?UTF-8?q?=E7=BB=84=E7=9A=84=E8=A7=A3=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel-d-scanner/scanner-api/pom.xml | 12 +++ .../roses/kernel/scanner/api/TestArray.java | 81 +++++++++++++++++++ .../scanner/api/pojo/CircularObject.java | 56 +++++++++++++ .../scanner/api/pojo/ExtendsSimpleObject.java | 31 +++++++ .../kernel/scanner/api/pojo/MyRequest.java | 57 +++++++++++++ .../kernel/scanner/api/pojo/SimpleObject.java | 55 +++++++++++++ .../kernel/scanner/api/pojo/WorkItem.java | 27 +++++++ 7 files changed, 319 insertions(+) create mode 100644 kernel-d-scanner/scanner-api/src/test/java/cn/stylefeng/roses/kernel/scanner/api/TestArray.java create mode 100644 kernel-d-scanner/scanner-api/src/test/java/cn/stylefeng/roses/kernel/scanner/api/pojo/CircularObject.java create mode 100644 kernel-d-scanner/scanner-api/src/test/java/cn/stylefeng/roses/kernel/scanner/api/pojo/ExtendsSimpleObject.java create mode 100644 kernel-d-scanner/scanner-api/src/test/java/cn/stylefeng/roses/kernel/scanner/api/pojo/MyRequest.java create mode 100644 kernel-d-scanner/scanner-api/src/test/java/cn/stylefeng/roses/kernel/scanner/api/pojo/SimpleObject.java create mode 100644 kernel-d-scanner/scanner-api/src/test/java/cn/stylefeng/roses/kernel/scanner/api/pojo/WorkItem.java diff --git a/kernel-d-scanner/scanner-api/pom.xml b/kernel-d-scanner/scanner-api/pom.xml index 32c4519aa..17f1f4279 100644 --- a/kernel-d-scanner/scanner-api/pom.xml +++ b/kernel-d-scanner/scanner-api/pom.xml @@ -37,6 +37,18 @@ provided + + + org.springframework.boot + spring-boot-starter-test + test + + + org.springframework.boot + spring-boot-starter-validation + test + + diff --git a/kernel-d-scanner/scanner-api/src/test/java/cn/stylefeng/roses/kernel/scanner/api/TestArray.java b/kernel-d-scanner/scanner-api/src/test/java/cn/stylefeng/roses/kernel/scanner/api/TestArray.java new file mode 100644 index 000000000..7683fe4d9 --- /dev/null +++ b/kernel-d-scanner/scanner-api/src/test/java/cn/stylefeng/roses/kernel/scanner/api/TestArray.java @@ -0,0 +1,81 @@ +package cn.stylefeng.roses.kernel.scanner.api; + +import cn.hutool.core.collection.ListUtil; +import cn.hutool.core.lang.TypeReference; +import cn.hutool.core.util.IdUtil; +import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData; +import cn.stylefeng.roses.kernel.scanner.api.factory.ClassMetaFactory; +import cn.stylefeng.roses.kernel.scanner.api.pojo.SimpleObject; +import cn.stylefeng.roses.kernel.scanner.api.pojo.resource.FieldMetadata; +import cn.stylefeng.roses.kernel.scanner.api.util.AdvancedClassTypeUtil; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONWriter; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import java.lang.reflect.Type; +import java.util.List; +import java.util.Set; + +/** + * 测试 + * + * @author fengshuonan + * @since 2024/8/7 14:25 + */ +public class TestArray { + + @BeforeEach + public void setUp() { + AdvancedClassTypeUtil.TEMP_SCAN_PACKAGE_LIST = ListUtil.of("cn.stylefeng"); + } + + @Test + public void testSimpleArray() { + Type type = new TypeReference>() { + }.getType(); + + FieldMetadata fieldMetadata = ClassMetaFactory.beginCreateFieldMetadata(type, IdUtil.fastSimpleUUID()); + + String jsonString = JSON.toJSONString(fieldMetadata, JSONWriter.Feature.PrettyFormat); + + System.out.println(jsonString); + } + + @Test + public void testObjectArray() { + Type type = new TypeReference>() { + }.getType(); + + FieldMetadata fieldMetadata = ClassMetaFactory.beginCreateFieldMetadata(type, IdUtil.fastSimpleUUID()); + + String jsonString = JSON.toJSONString(fieldMetadata, JSONWriter.Feature.PrettyFormat); + + System.out.println(jsonString); + } + + @Test + public void testGenArray() { + Type type = new TypeReference>>() { + }.getType(); + + FieldMetadata fieldMetadata = ClassMetaFactory.beginCreateFieldMetadata(type, IdUtil.fastSimpleUUID()); + + String jsonString = JSON.toJSONString(fieldMetadata, JSONWriter.Feature.PrettyFormat); + + System.out.println(jsonString); + } + + @Test + public void testMultiArray() { + Type type = new TypeReference>>>() { + }.getType(); + + FieldMetadata fieldMetadata = ClassMetaFactory.beginCreateFieldMetadata(type, IdUtil.fastSimpleUUID()); + + String jsonString = JSON.toJSONString(fieldMetadata, JSONWriter.Feature.PrettyFormat); + + System.out.println(jsonString); + } + +} diff --git a/kernel-d-scanner/scanner-api/src/test/java/cn/stylefeng/roses/kernel/scanner/api/pojo/CircularObject.java b/kernel-d-scanner/scanner-api/src/test/java/cn/stylefeng/roses/kernel/scanner/api/pojo/CircularObject.java new file mode 100644 index 000000000..b6ce666a5 --- /dev/null +++ b/kernel-d-scanner/scanner-api/src/test/java/cn/stylefeng/roses/kernel/scanner/api/pojo/CircularObject.java @@ -0,0 +1,56 @@ +package cn.stylefeng.roses.kernel.scanner.api.pojo; + +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; + +/** + * 递归调用的测试 + * + * @author fengshuonan + * @since 2024/8/5 15:28 + */ +@Data +public class CircularObject { + + /** + * 用户id + */ + @ChineseDescription("用户id") + @NotNull(message = "用户id不能为空") + private Long userId; + + /** + * 用户名 + */ + @ChineseDescription("用户名") + @NotEmpty(message = "用户名不能为空") + private String userName; + + /** + * 年龄 + */ + @ChineseDescription("年龄") + @NotNull(message = "年龄不能为空") + private Integer age; + + /** + * 用户分数 + */ + @ChineseDescription("用户分数") + @NotNull(message = "用户分数不能为空") + private BigDecimal userScore; + + /** + * 递归列表 + */ + @ChineseDescription("递归列表") + @NotEmpty(message = "递归列表") + private List circularObjectList; + + +} diff --git a/kernel-d-scanner/scanner-api/src/test/java/cn/stylefeng/roses/kernel/scanner/api/pojo/ExtendsSimpleObject.java b/kernel-d-scanner/scanner-api/src/test/java/cn/stylefeng/roses/kernel/scanner/api/pojo/ExtendsSimpleObject.java new file mode 100644 index 000000000..d30e7a8a4 --- /dev/null +++ b/kernel-d-scanner/scanner-api/src/test/java/cn/stylefeng/roses/kernel/scanner/api/pojo/ExtendsSimpleObject.java @@ -0,0 +1,31 @@ +package cn.stylefeng.roses.kernel.scanner.api.pojo; + +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.List; + +/** + * 我的请求类 + * + * @author fengshuonan + * @since 2024/8/4 15:53 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class ExtendsSimpleObject extends SimpleObject { + + /** + * 单位地址 + */ + @ChineseDescription("单位地址") + private String companyAddress; + + /** + * 工作项列表 + */ + @ChineseDescription("工作项列表") + private List workItemList; + +} diff --git a/kernel-d-scanner/scanner-api/src/test/java/cn/stylefeng/roses/kernel/scanner/api/pojo/MyRequest.java b/kernel-d-scanner/scanner-api/src/test/java/cn/stylefeng/roses/kernel/scanner/api/pojo/MyRequest.java new file mode 100644 index 000000000..9674cfc15 --- /dev/null +++ b/kernel-d-scanner/scanner-api/src/test/java/cn/stylefeng/roses/kernel/scanner/api/pojo/MyRequest.java @@ -0,0 +1,57 @@ +package cn.stylefeng.roses.kernel.scanner.api.pojo; + +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; +import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; +import java.util.List; + +/** + * 一个基本的对象 + * + * @author fengshuonan + * @since 2024/8/5 10:32 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class MyRequest extends BaseRequest { + + /** + * 用户id + */ + @ChineseDescription("用户id") + @NotNull(message = "用户id不能为空", groups = add.class) + private Long userId; + + /** + * 用户名 + */ + @ChineseDescription("用户名") + @NotEmpty(message = "用户名不能为空", groups = add.class) + private String userName; + + /** + * 年龄 + */ + @ChineseDescription("年龄") + @NotNull(message = "年龄不能为空", groups = edit.class) + private Integer age; + + /** + * 用户分数 + */ + @ChineseDescription("用户分数") + @NotNull(message = "用户分数不能为空", groups = edit.class) + private BigDecimal userScore; + + /** + * 列表 + */ + @ChineseDescription("列表") + @NotEmpty(message = "列表不能为空", groups = {add.class, edit.class}) + private List mySimpleList; +} diff --git a/kernel-d-scanner/scanner-api/src/test/java/cn/stylefeng/roses/kernel/scanner/api/pojo/SimpleObject.java b/kernel-d-scanner/scanner-api/src/test/java/cn/stylefeng/roses/kernel/scanner/api/pojo/SimpleObject.java new file mode 100644 index 000000000..3fb650f63 --- /dev/null +++ b/kernel-d-scanner/scanner-api/src/test/java/cn/stylefeng/roses/kernel/scanner/api/pojo/SimpleObject.java @@ -0,0 +1,55 @@ +package cn.stylefeng.roses.kernel.scanner.api.pojo; + +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; + +/** + * 一个基本的对象 + * + * @author fengshuonan + * @since 2024/8/5 10:32 + */ +@Data +public class SimpleObject { + + /** + * 用户id + */ + @ChineseDescription("用户id") + @NotNull(message = "用户id不能为空") + private Long userId; + + /** + * 用户名 + */ + @ChineseDescription("用户名") + @NotEmpty(message = "用户名不能为空") + private String userName; + + /** + * 年龄 + */ + @ChineseDescription("年龄") + @NotNull(message = "年龄不能为空") + private Integer age; + + /** + * 用户分数 + */ + @ChineseDescription("用户分数") + @NotNull(message = "用户分数不能为空") + private BigDecimal userScore; + + /** + * 列表 + */ + @ChineseDescription("列表") + @NotEmpty(message = "列表不能为空") + private List mySimpleList; + +} diff --git a/kernel-d-scanner/scanner-api/src/test/java/cn/stylefeng/roses/kernel/scanner/api/pojo/WorkItem.java b/kernel-d-scanner/scanner-api/src/test/java/cn/stylefeng/roses/kernel/scanner/api/pojo/WorkItem.java new file mode 100644 index 000000000..c95238d93 --- /dev/null +++ b/kernel-d-scanner/scanner-api/src/test/java/cn/stylefeng/roses/kernel/scanner/api/pojo/WorkItem.java @@ -0,0 +1,27 @@ +package cn.stylefeng.roses.kernel.scanner.api.pojo; + +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; +import lombok.Data; + +/** + * 工作项 + * + * @author fengshuonan + * @since 2024/8/5 10:35 + */ +@Data +public class WorkItem { + + /** + * 键 + */ + @ChineseDescription("键") + private String key; + + /** + * 值 + */ + @ChineseDescription("值") + private Object value; + +}