From 9fb71c232fc5f46d04194e0ec51b51cc7fddf202 Mon Sep 17 00:00:00 2001 From: gaoqr <13665037151@163.com> Date: Thu, 11 Dec 2025 11:50:54 +0800 Subject: [PATCH] =?UTF-8?q?system=E5=BE=AE=E6=9C=8D=E5=8A=A1api=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E5=8D=95=E5=85=83=E6=B5=8B=E8=AF=95=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/enums/CommonStatusEnumTest.java | 72 ++++++++++++++ .../module/system/enums/ApiConstants.java | 2 + .../system/enums/DictTypeConstants.java | 2 + .../system/enums/process/ProcessTypeEnum.java | 8 -- .../enums/products/ProductStatusEnum.java | 4 - .../system/enums/sms/SmsTemplateTypeEnum.java | 2 +- .../AdvertisementPositionEnumTest.java | 59 +++++++++++ .../AdvertisementStatusEnumTest.java | 59 +++++++++++ .../CustomPlateNoRuleCodeEnumTest.java | 34 +++++++ .../customplateno/ResetModeEnumTest.java | 37 +++++++ .../errorcode/ErrorCodeTypeEnumTest.java | 51 ++++++++++ .../enums/oauth2/OAuth2GrantTypeEnumTest.java | 32 ++++++ .../enums/permission/DataScopeEnumTest.java | 62 ++++++++++++ .../enums/permission/RoleCodeEnumTest.java | 29 ++++++ .../enums/products/ProductStatusEnumTest.java | 63 ++++++++++++ .../system/enums/sms/SmsSceneEnumTest.java | 99 +++++++++++++++++++ .../enums/sms/SmsTemplateTypeEnumTest.java | 28 ++++++ .../enums/social/SocialTypeEnumTest.java | 86 ++++++++++++++++ .../validation/user/SexValidatorTest.java | 31 ++++++ 19 files changed, 747 insertions(+), 13 deletions(-) create mode 100644 cf-framework/cf-common/src/test/java/com/cf/imes/framework/common/enums/CommonStatusEnumTest.java create mode 100644 cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/advertisement/AdvertisementPositionEnumTest.java create mode 100644 cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/advertisement/AdvertisementStatusEnumTest.java create mode 100644 cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/customplateno/CustomPlateNoRuleCodeEnumTest.java create mode 100644 cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/customplateno/ResetModeEnumTest.java create mode 100644 cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/errorcode/ErrorCodeTypeEnumTest.java create mode 100644 cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/oauth2/OAuth2GrantTypeEnumTest.java create mode 100644 cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/permission/DataScopeEnumTest.java create mode 100644 cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/permission/RoleCodeEnumTest.java create mode 100644 cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/products/ProductStatusEnumTest.java create mode 100644 cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/sms/SmsSceneEnumTest.java create mode 100644 cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/sms/SmsTemplateTypeEnumTest.java create mode 100644 cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/social/SocialTypeEnumTest.java create mode 100644 cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/validation/user/SexValidatorTest.java diff --git a/cf-framework/cf-common/src/test/java/com/cf/imes/framework/common/enums/CommonStatusEnumTest.java b/cf-framework/cf-common/src/test/java/com/cf/imes/framework/common/enums/CommonStatusEnumTest.java new file mode 100644 index 000000000..a6ac4a4aa --- /dev/null +++ b/cf-framework/cf-common/src/test/java/com/cf/imes/framework/common/enums/CommonStatusEnumTest.java @@ -0,0 +1,72 @@ +package com.cf.imes.framework.common.enums; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +/** + * {@link CommonStatusEnum} 的单元测试 + */ +class CommonStatusEnumTest { + + @Test + void testIsEnable() { + // 测试启用状态 + assertTrue(CommonStatusEnum.isEnable(0)); + + // 测试非启用状态 + assertFalse(CommonStatusEnum.isEnable(1)); + + // 测试null值 + assertFalse(CommonStatusEnum.isEnable(null)); + } + + @Test + void testIsDisable() { + // 测试禁用状态 + assertTrue(CommonStatusEnum.isDisable(1)); + + // 测试非禁用状态 + assertFalse(CommonStatusEnum.isDisable(0)); + + // 测试null值 + assertFalse(CommonStatusEnum.isDisable(null)); + } + + @Test + void testEnumValues() { + // 测试枚举值的基本属性 + assertEquals(0, CommonStatusEnum.ENABLE.getStatus()); + assertEquals("开启", CommonStatusEnum.ENABLE.getName()); + + assertEquals(1, CommonStatusEnum.DISABLE.getStatus()); + assertEquals("关闭", CommonStatusEnum.DISABLE.getName()); + } + + @Test + void testArrayMethod() { + // 测试array()方法 + int[] arrays = CommonStatusEnum.ENABLE.array(); + assertEquals(2, arrays.length); + assertTrue(contains(arrays, 0)); // ENABLE + assertTrue(contains(arrays, 1)); // DISABLE + } + + @Test + void testArraysField() { + // 测试ARRAYS静态字段包含所有枚举值的status + int[] arrays = CommonStatusEnum.ARRAYS; + assertEquals(2, arrays.length); + assertTrue(contains(arrays, 0)); // ENABLE + assertTrue(contains(arrays, 1)); // DISABLE + } + + private boolean contains(int[] array, int value) { + for (int i : array) { + if (i == value) { + return true; + } + } + return false; + } +} \ No newline at end of file diff --git a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ApiConstants.java b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ApiConstants.java index 010df3dc2..bac3d0ee1 100644 --- a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ApiConstants.java +++ b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ApiConstants.java @@ -8,6 +8,8 @@ import com.cf.imes.framework.common.enums.RpcConstants; * @author 晨丰科技 */ public class ApiConstants { + private ApiConstants() { + } /** * 服务名 diff --git a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/DictTypeConstants.java b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/DictTypeConstants.java index 13bace9b9..a6db84f83 100644 --- a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/DictTypeConstants.java +++ b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/DictTypeConstants.java @@ -6,6 +6,8 @@ package com.cf.imes.module.system.enums; * @author 晨丰科技 */ public class DictTypeConstants { + private DictTypeConstants() { + } public static final String USER_TYPE = "user_type"; // 用户类型 public static final String COMMON_STATUS = "common_status"; // 系统状态 diff --git a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/process/ProcessTypeEnum.java b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/process/ProcessTypeEnum.java index c5fec8618..b160bc9c7 100644 --- a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/process/ProcessTypeEnum.java +++ b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/process/ProcessTypeEnum.java @@ -19,12 +19,4 @@ public enum ProcessTypeEnum { private final Integer status; private String description; - - public boolean equals(Integer status) { - return this.status .equals(status) ; - } - - public boolean equals(ProcessTypeEnum enableStatusEnum) { - return enableStatusEnum != null && enableStatusEnum.status .equals(this.getStatus()) ; - } } \ No newline at end of file diff --git a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/products/ProductStatusEnum.java b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/products/ProductStatusEnum.java index ea342a51f..c9025e511 100644 --- a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/products/ProductStatusEnum.java +++ b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/products/ProductStatusEnum.java @@ -35,10 +35,6 @@ public enum ProductStatusEnum implements IntArrayValuable { return ARRAYS; } - public static boolean isProductUpdates(Integer status) { - return Objects.equals(PRODUCT_UPDATES.status, status); - } - public static boolean isProductDelis(Integer status) { return Objects.equals(PRODUCT_DELIS.status, status); } diff --git a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/sms/SmsTemplateTypeEnum.java b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/sms/SmsTemplateTypeEnum.java index ff052f877..63c7a26d8 100644 --- a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/sms/SmsTemplateTypeEnum.java +++ b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/sms/SmsTemplateTypeEnum.java @@ -23,7 +23,7 @@ public enum SmsTemplateTypeEnum { private final int type; - public static SmsTemplateTypeEnum valueOf(Integer type) { + public static SmsTemplateTypeEnum getType(Integer type) { if (type == null) { return null; } diff --git a/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/advertisement/AdvertisementPositionEnumTest.java b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/advertisement/AdvertisementPositionEnumTest.java new file mode 100644 index 000000000..532089a3a --- /dev/null +++ b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/advertisement/AdvertisementPositionEnumTest.java @@ -0,0 +1,59 @@ +package com.cf.imes.module.system.enums.advertisement; + +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; + +/** + * {@link AdvertisementPositionEnum} 的单元测试 + */ +class AdvertisementPositionEnumTest { + + @Test + void testEnumValues() { + // 测试枚举值是否正确 + assertEquals(1, AdvertisementPositionEnum.WORKBENCH_CAROUSEL.getStatus()); + assertEquals("首页工作台轮播", AdvertisementPositionEnum.WORKBENCH_CAROUSEL.getName()); + + assertEquals(2, AdvertisementPositionEnum.SYSTEMCONFIG_AMOUNTQUERY_CAROUSEL.getStatus()); + assertEquals("系统管理余额查询轮播", AdvertisementPositionEnum.SYSTEMCONFIG_AMOUNTQUERY_CAROUSEL.getName()); + + assertEquals(3, AdvertisementPositionEnum.BASECONFIG_FUNDSQUERY_CAROUSEL.getStatus()); + assertEquals("基础配置资金查询轮播", AdvertisementPositionEnum.BASECONFIG_FUNDSQUERY_CAROUSEL.getName()); + } + + @Test + void testArrays() { + // 测试 ARRAYS 是否包含所有枚举值的状态 + int[] arrays = AdvertisementPositionEnum.ARRAYS; + assertEquals(3, arrays.length); + assertTrue(contains(arrays, 1)); // WORKBENCH_CAROUSEL + assertTrue(contains(arrays, 2)); // SYSTEMCONFIG_AMOUNTQUERY_CAROUSEL + assertTrue(contains(arrays, 3)); // BASECONFIG_FUNDSQUERY_CAROUSEL + } + + @Test + void testArrayMethod() { + // 测试array()方法 + int[] arrays = AdvertisementPositionEnum.WORKBENCH_CAROUSEL.array(); + assertEquals(3, arrays.length); + assertTrue(contains(arrays, 1)); // WORKBENCH_CAROUSEL + assertTrue(contains(arrays, 2)); // SYSTEMCONFIG_AMOUNTQUERY_CAROUSEL + assertTrue(contains(arrays, 3)); // BASECONFIG_FUNDSQUERY_CAROUSEL + } + + /** + * 辅助方法:检查数组中是否包含指定元素 + * + * @param array 数组 + * @param value 值 + * @return 是否包含 + */ + private boolean contains(int[] array, int value) { + for (int item : array) { + if (item == value) { + return true; + } + } + return false; + } +} \ No newline at end of file diff --git a/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/advertisement/AdvertisementStatusEnumTest.java b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/advertisement/AdvertisementStatusEnumTest.java new file mode 100644 index 000000000..89a6d96a3 --- /dev/null +++ b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/advertisement/AdvertisementStatusEnumTest.java @@ -0,0 +1,59 @@ +package com.cf.imes.module.system.enums.advertisement; + +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; + +/** + * {@link AdvertisementStatusEnum} 的单元测试 + */ +class AdvertisementStatusEnumTest { + + @Test + void testEnumValues() { + // 测试枚举值是否正确 + assertEquals(0, AdvertisementStatusEnum.UNPUBLISHED.getStatus()); + assertEquals("未发布", AdvertisementStatusEnum.UNPUBLISHED.getName()); + + assertEquals(1, AdvertisementStatusEnum.PUBLISHED.getStatus()); + assertEquals("已发布", AdvertisementStatusEnum.PUBLISHED.getName()); + + assertEquals(2, AdvertisementStatusEnum.ENDED.getStatus()); + assertEquals("已结束", AdvertisementStatusEnum.ENDED.getName()); + } + + @Test + void testArrays() { + // 测试 ARRAYS 是否包含所有枚举值的状态 + int[] arrays = AdvertisementStatusEnum.ARRAYS; + assertEquals(3, arrays.length); + assertTrue(contains(arrays, 0)); + assertTrue(contains(arrays, 1)); + assertTrue(contains(arrays, 2)); + } + + @Test + void testArrayMethod() { + // 测试array()方法 + int[] arrays = AdvertisementStatusEnum.UNPUBLISHED.array(); + assertEquals(3, arrays.length); + assertTrue(contains(arrays, 0)); // UNPUBLISHED + assertTrue(contains(arrays, 1)); // PUBLISHED + assertTrue(contains(arrays, 2)); // ENDED + } + + /** + * 辅助方法:检查数组中是否包含指定元素 + * + * @param array 数组 + * @param value 值 + * @return 是否包含 + */ + private boolean contains(int[] array, int value) { + for (int item : array) { + if (item == value) { + return true; + } + } + return false; + } +} \ No newline at end of file diff --git a/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/customplateno/CustomPlateNoRuleCodeEnumTest.java b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/customplateno/CustomPlateNoRuleCodeEnumTest.java new file mode 100644 index 000000000..7ef3e05a1 --- /dev/null +++ b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/customplateno/CustomPlateNoRuleCodeEnumTest.java @@ -0,0 +1,34 @@ +package com.cf.imes.module.system.enums.customplateno; + +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; + +/** + * {@link CustomPlateNoRuleCodeEnum} 的单元测试 + */ +class CustomPlateNoRuleCodeEnumTest { + + @Test + void testEnumValues() { + // 测试枚举值是否正确 + assertEquals("custom", CustomPlateNoRuleCodeEnum.CUSTOM.getRuleCode()); + assertEquals("date", CustomPlateNoRuleCodeEnum.DATE.getRuleCode()); + assertEquals("orderNo", CustomPlateNoRuleCodeEnum.ORDERNO.getRuleCode()); + assertEquals("plateNo", CustomPlateNoRuleCodeEnum.PLATENO.getRuleCode()); + assertEquals("roomNo", CustomPlateNoRuleCodeEnum.ROOMNO.getRuleCode()); + assertEquals("bodyNo", CustomPlateNoRuleCodeEnum.BODYNO.getRuleCode()); + } + + @Test + void testMatch() { + // 测试 match 方法 + assertEquals(CustomPlateNoRuleCodeEnum.CUSTOM, CustomPlateNoRuleCodeEnum.match("custom")); + assertEquals(CustomPlateNoRuleCodeEnum.DATE, CustomPlateNoRuleCodeEnum.match("date")); + assertEquals(CustomPlateNoRuleCodeEnum.ORDERNO, CustomPlateNoRuleCodeEnum.match("orderNo")); + assertEquals(CustomPlateNoRuleCodeEnum.PLATENO, CustomPlateNoRuleCodeEnum.match("plateNo")); + assertEquals(CustomPlateNoRuleCodeEnum.ROOMNO, CustomPlateNoRuleCodeEnum.match("roomNo")); + assertEquals(CustomPlateNoRuleCodeEnum.BODYNO, CustomPlateNoRuleCodeEnum.match("bodyNo")); + assertNull(CustomPlateNoRuleCodeEnum.match("nonexistent")); // 不存在的规则编码 + assertNull(CustomPlateNoRuleCodeEnum.match(null)); // null值 + } +} \ No newline at end of file diff --git a/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/customplateno/ResetModeEnumTest.java b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/customplateno/ResetModeEnumTest.java new file mode 100644 index 000000000..13d80035c --- /dev/null +++ b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/customplateno/ResetModeEnumTest.java @@ -0,0 +1,37 @@ +package com.cf.imes.module.system.enums.customplateno; + +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; + +/** + * {@link ResetModeEnum} 的单元测试 + */ +class ResetModeEnumTest { + + @Test + void testEnumValues() { + // 测试枚举值是否正确 + assertEquals(0, ResetModeEnum.ACCUMULATION.getMode()); + assertEquals(1, ResetModeEnum.DIGIT.getMode()); + assertEquals(2, ResetModeEnum.YEAR.getMode()); + assertEquals(3, ResetModeEnum.MONTH.getMode()); + assertEquals(4, ResetModeEnum.DAY.getMode()); + assertEquals(5, ResetModeEnum.ORDER.getMode()); + assertEquals(6, ResetModeEnum.ROOM.getMode()); + assertEquals(7, ResetModeEnum.BODY.getMode()); + } + + @Test + void testGetByMode() { + // 测试 getByMode 方法 + assertEquals(ResetModeEnum.ACCUMULATION, ResetModeEnum.getByMode(0)); + assertEquals(ResetModeEnum.DIGIT, ResetModeEnum.getByMode(1)); + assertEquals(ResetModeEnum.YEAR, ResetModeEnum.getByMode(2)); + assertEquals(ResetModeEnum.MONTH, ResetModeEnum.getByMode(3)); + assertEquals(ResetModeEnum.DAY, ResetModeEnum.getByMode(4)); + assertEquals(ResetModeEnum.ORDER, ResetModeEnum.getByMode(5)); + assertEquals(ResetModeEnum.ROOM, ResetModeEnum.getByMode(6)); + assertEquals(ResetModeEnum.BODY, ResetModeEnum.getByMode(7)); + assertNull(ResetModeEnum.getByMode(99)); // 不存在的模式 + } +} \ No newline at end of file diff --git a/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/errorcode/ErrorCodeTypeEnumTest.java b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/errorcode/ErrorCodeTypeEnumTest.java new file mode 100644 index 000000000..6fbd34f03 --- /dev/null +++ b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/errorcode/ErrorCodeTypeEnumTest.java @@ -0,0 +1,51 @@ +package com.cf.imes.module.system.enums.errorcode; + +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; + +/** + * {@link ErrorCodeTypeEnum} 的单元测试 + */ +class ErrorCodeTypeEnumTest { + + @Test + void testEnumValues() { + // 测试枚举值是否正确 + assertEquals(1, ErrorCodeTypeEnum.AUTO_GENERATION.getType()); + assertEquals(2, ErrorCodeTypeEnum.MANUAL_OPERATION.getType()); + } + + @Test + void testArrays() { + // 测试 ARRAYS 是否包含所有枚举值的类型 + int[] arrays = ErrorCodeTypeEnum.ARRAYS; + assertEquals(2, arrays.length); + assertTrue(contains(arrays, 1)); // AUTO_GENERATION + assertTrue(contains(arrays, 2)); // MANUAL_OPERATION + } + + @Test + void testArrayMethod() { + // 测试array()方法 + int[] arrays = ErrorCodeTypeEnum.AUTO_GENERATION.array(); + assertEquals(2, arrays.length); + assertTrue(contains(arrays, 1)); // AUTO_GENERATION + assertTrue(contains(arrays, 2)); // MANUAL_OPERATION + } + + /** + * 辅助方法:检查数组中是否包含指定元素 + * + * @param array 数组 + * @param value 值 + * @return 是否包含 + */ + private boolean contains(int[] array, int value) { + for (int item : array) { + if (item == value) { + return true; + } + } + return false; + } +} \ No newline at end of file diff --git a/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/oauth2/OAuth2GrantTypeEnumTest.java b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/oauth2/OAuth2GrantTypeEnumTest.java new file mode 100644 index 000000000..d2bdddf5f --- /dev/null +++ b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/oauth2/OAuth2GrantTypeEnumTest.java @@ -0,0 +1,32 @@ +package com.cf.imes.module.system.enums.oauth2; + +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; + +/** + * {@link OAuth2GrantTypeEnum} 的单元测试 + */ +class OAuth2GrantTypeEnumTest { + + @Test + void testEnumValues() { + // 测试枚举值是否正确 + assertEquals("password", OAuth2GrantTypeEnum.PASSWORD.getGrantType()); + assertEquals("authorization_code", OAuth2GrantTypeEnum.AUTHORIZATION_CODE.getGrantType()); + assertEquals("implicit", OAuth2GrantTypeEnum.IMPLICIT.getGrantType()); + assertEquals("client_credentials", OAuth2GrantTypeEnum.CLIENT_CREDENTIALS.getGrantType()); + assertEquals("refresh_token", OAuth2GrantTypeEnum.REFRESH_TOKEN.getGrantType()); + } + + @Test + void testGetByGranType() { + // 测试 getByGranType 方法 + assertEquals(OAuth2GrantTypeEnum.PASSWORD, OAuth2GrantTypeEnum.getByGranType("password")); + assertEquals(OAuth2GrantTypeEnum.AUTHORIZATION_CODE, OAuth2GrantTypeEnum.getByGranType("authorization_code")); + assertEquals(OAuth2GrantTypeEnum.IMPLICIT, OAuth2GrantTypeEnum.getByGranType("implicit")); + assertEquals(OAuth2GrantTypeEnum.CLIENT_CREDENTIALS, OAuth2GrantTypeEnum.getByGranType("client_credentials")); + assertEquals(OAuth2GrantTypeEnum.REFRESH_TOKEN, OAuth2GrantTypeEnum.getByGranType("refresh_token")); + assertNull(OAuth2GrantTypeEnum.getByGranType("non_existent_type")); // 不存在的类型 + assertNull(OAuth2GrantTypeEnum.getByGranType(null)); // null值 + } +} \ No newline at end of file diff --git a/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/permission/DataScopeEnumTest.java b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/permission/DataScopeEnumTest.java new file mode 100644 index 000000000..37f335448 --- /dev/null +++ b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/permission/DataScopeEnumTest.java @@ -0,0 +1,62 @@ +package com.cf.imes.module.system.enums.permission; + +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; + +/** + * {@link DataScopeEnum} 的单元测试 + */ +class DataScopeEnumTest { + + @Test + void testEnumValues() { + // 测试枚举值是否正确 + assertEquals(1, DataScopeEnum.ALL.getScope()); + + assertEquals(2, DataScopeEnum.DEPT_CUSTOM.getScope()); + assertEquals(3, DataScopeEnum.DEPT_ONLY.getScope()); + assertEquals(4, DataScopeEnum.DEPT_AND_CHILD.getScope()); + + assertEquals(5, DataScopeEnum.SELF.getScope()); + } + + @Test + void testArrays() { + // 测试 ARRAYS 是否包含所有枚举值的范围 + int[] arrays = DataScopeEnum.ARRAYS; + assertEquals(5, arrays.length); + assertTrue(contains(arrays, 1)); // ALL + assertTrue(contains(arrays, 2)); // DEPT_CUSTOM + assertTrue(contains(arrays, 3)); // DEPT_ONLY + assertTrue(contains(arrays, 4)); // DEPT_AND_CHILD + assertTrue(contains(arrays, 5)); // SELF + } + + @Test + void testArrayMethod() { + // 测试array()方法 + int[] arrays = DataScopeEnum.ALL.array(); + assertEquals(5, arrays.length); + assertTrue(contains(arrays, 1)); // ALL + assertTrue(contains(arrays, 2)); // DEPT_CUSTOM + assertTrue(contains(arrays, 3)); // DEPT_ONLY + assertTrue(contains(arrays, 4)); // DEPT_AND_CHILD + assertTrue(contains(arrays, 5)); // SELF + } + + /** + * 辅助方法:检查数组中是否包含指定元素 + * + * @param array 数组 + * @param value 值 + * @return 是否包含 + */ + private boolean contains(int[] array, int value) { + for (int item : array) { + if (item == value) { + return true; + } + } + return false; + } +} \ No newline at end of file diff --git a/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/permission/RoleCodeEnumTest.java b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/permission/RoleCodeEnumTest.java new file mode 100644 index 000000000..c17dbd283 --- /dev/null +++ b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/permission/RoleCodeEnumTest.java @@ -0,0 +1,29 @@ +package com.cf.imes.module.system.enums.permission; + +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; + +/** + * {@link RoleCodeEnum} 的单元测试 + */ +class RoleCodeEnumTest { + + @Test + void testEnumValues() { + // 测试枚举值是否正确 + assertEquals("super_admin", RoleCodeEnum.SUPER_ADMIN.getCode()); + assertEquals("超级管理员", RoleCodeEnum.SUPER_ADMIN.getName()); + + assertEquals("organ_admin", RoleCodeEnum.TENANT_ADMIN.getCode()); + assertEquals("组织管理员", RoleCodeEnum.TENANT_ADMIN.getName()); + } + + @Test + void testIsSuperAdmin() { + // 测试 isSuperAdmin 方法 + assertTrue(RoleCodeEnum.isSuperAdmin("super_admin")); + assertFalse(RoleCodeEnum.isSuperAdmin("organ_admin")); + assertFalse(RoleCodeEnum.isSuperAdmin("other_code")); + assertFalse(RoleCodeEnum.isSuperAdmin(null)); + } +} \ No newline at end of file diff --git a/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/products/ProductStatusEnumTest.java b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/products/ProductStatusEnumTest.java new file mode 100644 index 000000000..931fb7a48 --- /dev/null +++ b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/products/ProductStatusEnumTest.java @@ -0,0 +1,63 @@ +package com.cf.imes.module.system.enums.products; + +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; + +/** + * {@link ProductStatusEnum} 的单元测试 + */ +class ProductStatusEnumTest { + + @Test + void testEnumValues() { + // 测试枚举值是否正确 + assertEquals(0, ProductStatusEnum.PRODUCT_UPDATES.getStatus()); + assertEquals("已上架", ProductStatusEnum.PRODUCT_UPDATES.getName()); + + assertEquals(1, ProductStatusEnum.PRODUCT_DELIS.getStatus()); + assertEquals("已下架", ProductStatusEnum.PRODUCT_DELIS.getName()); + } + + @Test + void testArrays() { + // 测试 ARRAYS 是否包含所有枚举值的状态 + int[] arrays = ProductStatusEnum.ARRAYS; + assertEquals(2, arrays.length); + assertTrue(contains(arrays, 0)); // PRODUCT_UPDATES + assertTrue(contains(arrays, 1)); // PRODUCT_DELIS + } + + @Test + void testArrayMethod() { + // 测试array()方法 + int[] arrays = ProductStatusEnum.PRODUCT_UPDATES.array(); + assertEquals(2, arrays.length); + assertTrue(contains(arrays, 0)); // PRODUCT_UPDATES + assertTrue(contains(arrays, 1)); // PRODUCT_DELIS + } + + @Test + void testIsProductDelis() { + // 测试 isProductDelis 方法 + assertTrue(ProductStatusEnum.isProductDelis(1)); + assertFalse(ProductStatusEnum.isProductDelis(0)); + assertFalse(ProductStatusEnum.isProductDelis(2)); // 不存在的状态 + assertFalse(ProductStatusEnum.isProductDelis(null)); // null值 + } + + /** + * 辅助方法:检查数组中是否包含指定元素 + * + * @param array 数组 + * @param value 值 + * @return 是否包含 + */ + private boolean contains(int[] array, int value) { + for (int item : array) { + if (item == value) { + return true; + } + } + return false; + } +} \ No newline at end of file diff --git a/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/sms/SmsSceneEnumTest.java b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/sms/SmsSceneEnumTest.java new file mode 100644 index 000000000..ec9207201 --- /dev/null +++ b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/sms/SmsSceneEnumTest.java @@ -0,0 +1,99 @@ +package com.cf.imes.module.system.enums.sms; + +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; + +/** + * {@link SmsSceneEnum} 的单元测试 + */ +class SmsSceneEnumTest { + + @Test + void testEnumValues() { + // 测试枚举值是否正确 + assertEquals(1, SmsSceneEnum.USER_UPDATE_MOBILE.getScene()); + assertEquals("user-update-mobile", SmsSceneEnum.USER_UPDATE_MOBILE.getTemplateCode()); + assertEquals("修改手机", SmsSceneEnum.USER_UPDATE_MOBILE.getDescription()); + + assertEquals(2, SmsSceneEnum.USER_RESET_PASSWORD.getScene()); + assertEquals("user-reset-password", SmsSceneEnum.USER_RESET_PASSWORD.getTemplateCode()); + assertEquals("忘记密码", SmsSceneEnum.USER_RESET_PASSWORD.getDescription()); + + assertEquals(3, SmsSceneEnum.USER_UPDATE_PASSWORD.getScene()); + assertEquals("user-update-password", SmsSceneEnum.USER_UPDATE_PASSWORD.getTemplateCode()); + assertEquals("修改密码", SmsSceneEnum.USER_UPDATE_PASSWORD.getDescription()); + + assertEquals(4, SmsSceneEnum.USER_LOGIN_CAPTCHAVERIFICATION.getScene()); + assertEquals("user-login-captchaverification", SmsSceneEnum.USER_LOGIN_CAPTCHAVERIFICATION.getTemplateCode()); + assertEquals("登录验证码", SmsSceneEnum.USER_LOGIN_CAPTCHAVERIFICATION.getDescription()); + + assertEquals(20, SmsSceneEnum.ADMIN_LOGIN.getScene()); + assertEquals("admin-sms-login", SmsSceneEnum.ADMIN_LOGIN.getTemplateCode()); + assertEquals("后台用户 - 手机号登录", SmsSceneEnum.ADMIN_LOGIN.getDescription()); + + assertEquals(21, SmsSceneEnum.ADMIN_MEMBER_LOGIN.getScene()); + assertEquals("admin-sms-login", SmsSceneEnum.ADMIN_MEMBER_LOGIN.getTemplateCode()); + assertEquals("后台用户 - 手机号登录", SmsSceneEnum.ADMIN_MEMBER_LOGIN.getDescription()); + + assertEquals(22, SmsSceneEnum.MEMBER_LOGIN.getScene()); + assertEquals("user-sms-login", SmsSceneEnum.MEMBER_LOGIN.getTemplateCode()); + assertEquals("会员用户 - 手机号登陆", SmsSceneEnum.MEMBER_LOGIN.getDescription()); + } + + @Test + void testArrays() { + // 测试 ARRAYS 是否包含所有枚举值的场景编号 + int[] arrays = SmsSceneEnum.ARRAYS; + assertEquals(7, arrays.length); + assertTrue(contains(arrays, 1)); // USER_UPDATE_MOBILE + assertTrue(contains(arrays, 2)); // USER_RESET_PASSWORD + assertTrue(contains(arrays, 3)); // USER_UPDATE_PASSWORD + assertTrue(contains(arrays, 4)); // USER_LOGIN_CAPTCHAVERIFICATION + assertTrue(contains(arrays, 20)); // ADMIN_LOGIN + assertTrue(contains(arrays, 21)); // ADMIN_MEMBER_LOGIN + assertTrue(contains(arrays, 22)); // MEMBER_LOGIN + } + + @Test + void testArrayMethod() { + // 测试array()方法 + int[] arrays = SmsSceneEnum.USER_UPDATE_MOBILE.array(); + assertEquals(7, arrays.length); + assertTrue(contains(arrays, 1)); // USER_UPDATE_MOBILE + assertTrue(contains(arrays, 2)); // USER_RESET_PASSWORD + assertTrue(contains(arrays, 3)); // USER_UPDATE_PASSWORD + assertTrue(contains(arrays, 4)); // USER_LOGIN_CAPTCHAVERIFICATION + assertTrue(contains(arrays, 20)); // ADMIN_LOGIN + assertTrue(contains(arrays, 21)); // ADMIN_MEMBER_LOGIN + assertTrue(contains(arrays, 22)); // MEMBER_LOGIN + } + + @Test + void testGetCodeByScene() { + // 测试 getCodeByScene 方法 + assertEquals(SmsSceneEnum.USER_UPDATE_MOBILE, SmsSceneEnum.getCodeByScene(1)); + assertEquals(SmsSceneEnum.USER_RESET_PASSWORD, SmsSceneEnum.getCodeByScene(2)); + assertEquals(SmsSceneEnum.USER_UPDATE_PASSWORD, SmsSceneEnum.getCodeByScene(3)); + assertEquals(SmsSceneEnum.USER_LOGIN_CAPTCHAVERIFICATION, SmsSceneEnum.getCodeByScene(4)); + assertEquals(SmsSceneEnum.ADMIN_LOGIN, SmsSceneEnum.getCodeByScene(20)); + assertEquals(SmsSceneEnum.ADMIN_MEMBER_LOGIN, SmsSceneEnum.getCodeByScene(21)); + assertEquals(SmsSceneEnum.MEMBER_LOGIN, SmsSceneEnum.getCodeByScene(22)); + assertNull(SmsSceneEnum.getCodeByScene(99)); // 不存在的场景 + } + + /** + * 辅助方法:检查数组中是否包含指定元素 + * + * @param array 数组 + * @param value 值 + * @return 是否包含 + */ + private boolean contains(int[] array, int value) { + for (int item : array) { + if (item == value) { + return true; + } + } + return false; + } +} \ No newline at end of file diff --git a/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/sms/SmsTemplateTypeEnumTest.java b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/sms/SmsTemplateTypeEnumTest.java new file mode 100644 index 000000000..aa1258076 --- /dev/null +++ b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/sms/SmsTemplateTypeEnumTest.java @@ -0,0 +1,28 @@ +package com.cf.imes.module.system.enums.sms; + +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; + +/** + * {@link SmsTemplateTypeEnum} 的单元测试 + */ +class SmsTemplateTypeEnumTest { + + @Test + void testEnumValues() { + // 测试枚举值是否正确 + assertEquals(1, SmsTemplateTypeEnum.VERIFICATION_CODE.getType()); + assertEquals(2, SmsTemplateTypeEnum.NOTICE.getType()); + assertEquals(3, SmsTemplateTypeEnum.PROMOTION.getType()); + } + + @Test + void testValueOf() { + // 测试 valueOf 方法 + assertEquals(SmsTemplateTypeEnum.VERIFICATION_CODE, SmsTemplateTypeEnum.getType(1)); + assertEquals(SmsTemplateTypeEnum.NOTICE, SmsTemplateTypeEnum.getType(2)); + assertEquals(SmsTemplateTypeEnum.PROMOTION, SmsTemplateTypeEnum.getType(3)); + assertNull(SmsTemplateTypeEnum.getType(99)); // 不存在的类型 + assertNull(SmsTemplateTypeEnum.getType(null)); // null值 + } +} \ No newline at end of file diff --git a/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/social/SocialTypeEnumTest.java b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/social/SocialTypeEnumTest.java new file mode 100644 index 000000000..52da65e64 --- /dev/null +++ b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/social/SocialTypeEnumTest.java @@ -0,0 +1,86 @@ +package com.cf.imes.module.system.enums.social; + +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; + +/** + * {@link SocialTypeEnum} 的单元测试 + */ +class SocialTypeEnumTest { + + @Test + void testEnumValues() { + // 测试枚举值是否正确 + assertEquals(10, SocialTypeEnum.GITEE.getType()); + assertEquals("GITEE", SocialTypeEnum.GITEE.getSource()); + + assertEquals(20, SocialTypeEnum.DINGTALK.getType()); + assertEquals("DINGTALK", SocialTypeEnum.DINGTALK.getSource()); + + assertEquals(30, SocialTypeEnum.WECHAT_ENTERPRISE.getType()); + assertEquals("WECHAT_ENTERPRISE", SocialTypeEnum.WECHAT_ENTERPRISE.getSource()); + + assertEquals(31, SocialTypeEnum.WECHAT_MP.getType()); + assertEquals("WECHAT_MP", SocialTypeEnum.WECHAT_MP.getSource()); + + assertEquals(32, SocialTypeEnum.WECHAT_OPEN.getType()); + assertEquals("WECHAT_OPEN", SocialTypeEnum.WECHAT_OPEN.getSource()); + + assertEquals(34, SocialTypeEnum.WECHAT_MINI_APP.getType()); + assertEquals("WECHAT_MINI_APP", SocialTypeEnum.WECHAT_MINI_APP.getSource()); + } + + @Test + void testArrays() { + // 测试 ARRAYS 是否包含所有枚举值的类型 + int[] arrays = SocialTypeEnum.ARRAYS; + assertEquals(6, arrays.length); + assertTrue(contains(arrays, 10)); // GITEE + assertTrue(contains(arrays, 20)); // DINGTALK + assertTrue(contains(arrays, 30)); // WECHAT_ENTERPRISE + assertTrue(contains(arrays, 31)); // WECHAT_MP + assertTrue(contains(arrays, 32)); // WECHAT_OPEN + assertTrue(contains(arrays, 34)); // WECHAT_MINI_APP + } + + @Test + void testArrayMethod() { + // 测试array()方法 + int[] arrays = SocialTypeEnum.GITEE.array(); + assertEquals(6, arrays.length); + assertTrue(contains(arrays, 10)); // GITEE + assertTrue(contains(arrays, 20)); // DINGTALK + assertTrue(contains(arrays, 30)); // WECHAT_ENTERPRISE + assertTrue(contains(arrays, 31)); // WECHAT_MP + assertTrue(contains(arrays, 32)); // WECHAT_OPEN + assertTrue(contains(arrays, 34)); // WECHAT_MINI_APP + } + + @Test + void testValueOfType() { + // 测试 valueOfType 方法 + assertEquals(SocialTypeEnum.GITEE, SocialTypeEnum.valueOfType(10)); + assertEquals(SocialTypeEnum.DINGTALK, SocialTypeEnum.valueOfType(20)); + assertEquals(SocialTypeEnum.WECHAT_ENTERPRISE, SocialTypeEnum.valueOfType(30)); + assertEquals(SocialTypeEnum.WECHAT_MP, SocialTypeEnum.valueOfType(31)); + assertEquals(SocialTypeEnum.WECHAT_OPEN, SocialTypeEnum.valueOfType(32)); + assertEquals(SocialTypeEnum.WECHAT_MINI_APP, SocialTypeEnum.valueOfType(34)); + assertNull(SocialTypeEnum.valueOfType(99)); // 不存在的类型 + } + + /** + * 辅助方法:检查数组中是否包含指定元素 + * + * @param array 数组 + * @param value 值 + * @return 是否包含 + */ + private boolean contains(int[] array, int value) { + for (int item : array) { + if (item == value) { + return true; + } + } + return false; + } +} \ No newline at end of file diff --git a/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/validation/user/SexValidatorTest.java b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/validation/user/SexValidatorTest.java new file mode 100644 index 000000000..ecea6990d --- /dev/null +++ b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/validation/user/SexValidatorTest.java @@ -0,0 +1,31 @@ +package com.cf.imes.module.system.validation.user; + +import com.cf.imes.framework.test.core.ut.BaseMockitoUnitTest; +import com.cf.imes.module.system.enums.common.SexEnum; +import jakarta.validation.ConstraintValidatorContext; +import org.junit.jupiter.api.Test; +import org.mockito.Mock; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +/** + * 性别校验器单元测试 + * + * @author Gqr + * @since 2025/12/10 14:23 + */ +class SexValidatorTest extends BaseMockitoUnitTest { + @Mock + private ConstraintValidatorContext constraintValidatorContext; + + @Test + void testValid() { + SexValidator validator = new SexValidator(); + assertTrue(validator.isValid(SexEnum.MALE.getSex(), constraintValidatorContext)); + assertTrue(validator.isValid(SexEnum.FEMALE.getSex(), constraintValidatorContext)); + assertTrue(validator.isValid(SexEnum.UNKNOWN.getSex(), constraintValidatorContext)); + assertTrue(validator.isValid(null, constraintValidatorContext)); + assertFalse(validator.isValid(4, constraintValidatorContext)); + } +} \ No newline at end of file