diff --git a/cf-framework/cf-spring-boot-starter-test/src/main/java/com/cf/imes/framework/test/core/ut/BaseWebUnitTest.java b/cf-framework/cf-spring-boot-starter-test/src/main/java/com/cf/imes/framework/test/core/ut/BaseWebUnitTest.java new file mode 100644 index 000000000..3208fab1a --- /dev/null +++ b/cf-framework/cf-spring-boot-starter-test/src/main/java/com/cf/imes/framework/test/core/ut/BaseWebUnitTest.java @@ -0,0 +1,16 @@ +package com.cf.imes.framework.test.core.ut; + +import org.junit.jupiter.api.extension.ExtendWith; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.junit.jupiter.SpringExtension; + +/** + * web单元测试基类 + * + * @author Gqr + * @since 2025/12/10 16:07 + */ +@ExtendWith(SpringExtension.class) +@ActiveProfiles("unit-test") +public class BaseWebUnitTest { +} diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/enums/pay/PayConstants.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/enums/pay/PayConstants.java index 722067169..01a96a2f4 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/enums/pay/PayConstants.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/enums/pay/PayConstants.java @@ -6,8 +6,8 @@ package com.cf.imes.module.system.enums.pay; * @author Gqr * @since 2025/8/12 17:49 */ -public class PayConstants { - public static final String PAY_PRODUCT_DETAIL_AUTO_GENERATE_MONTH_ID_FORMAT = "1759029544%d"; // 1~12月定价规则自动生成ID格式 +public interface PayConstants { + String PAY_PRODUCT_DETAIL_AUTO_GENERATE_MONTH_ID_FORMAT = "1759029544%d"; // 1~12月定价规则自动生成ID格式 - public static final String PAY_PRODUCT_DETAIL_AUTO_GENERATE_YEAR_ID_FORMAT = "1759993429%d"; // 1年定价规则自动生成ID格式 + String PAY_PRODUCT_DETAIL_AUTO_GENERATE_YEAR_ID_FORMAT = "1759993429%d"; // 1年定价规则自动生成ID格式 } \ No newline at end of file diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/validation/pay/FundsStatisticsUnitInEnumValidator.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/validation/pay/FundsStatisticsUnitInEnumValidator.java index 8eca0a665..3aee74e67 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/validation/pay/FundsStatisticsUnitInEnumValidator.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/validation/pay/FundsStatisticsUnitInEnumValidator.java @@ -13,22 +13,13 @@ import jakarta.validation.ConstraintValidatorContext; */ public class FundsStatisticsUnitInEnumValidator implements ConstraintValidator { - @Override - public void initialize(FundsStatisticsUnitInEnum constraintAnnotation) { - ConstraintValidator.super.initialize(constraintAnnotation); - } - @Override public boolean isValid(Integer value, ConstraintValidatorContext context) { if (ObjectUtil.isNull(value)) { return true; } StatisticsUnit unit = StatisticsUnit.fromValue(value); - if (ObjectUtil.isNotNull(unit)) { - return true; - } else { - return false; - } + return ObjectUtil.isNotNull(unit); } } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/validation/recharge/MoneyValid.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/validation/recharge/MoneyValid.java deleted file mode 100644 index cb0332255..000000000 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/validation/recharge/MoneyValid.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.cf.imes.module.system.validation.recharge; - -import jakarta.validation.Constraint; -import jakarta.validation.Payload; -import java.lang.annotation.*; - -/** - * 自定义Double校验注解 - * - */ -@Target({ - ElementType.METHOD, - ElementType.FIELD, - ElementType.ANNOTATION_TYPE, - ElementType.CONSTRUCTOR, - ElementType.PARAMETER, - ElementType.TYPE_USE -}) -@Retention(RetentionPolicy.RUNTIME) -@Documented -@Constraint( - validatedBy = MoneyValidator.class -) -public @interface MoneyValid { - - /** - * 字段中文名 - * - * @return - */ - String name(); - - /** - * 校验提示信息 - * - * @return - */ - String message() default "数字不合法"; - - Class[] groups() default {}; - - Class[] payload() default {}; - - /** - * 整数最大位数 - * - * @return - */ - int integer() default 7; - - /** - * 小数点后的最大位数 - * - * @return - */ - int fraction() default 3; - -} diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/validation/recharge/MoneyValidator.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/validation/recharge/MoneyValidator.java deleted file mode 100644 index f0f7a1f07..000000000 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/validation/recharge/MoneyValidator.java +++ /dev/null @@ -1,87 +0,0 @@ -package com.cf.imes.module.system.validation.recharge; - -import cn.hutool.core.util.ObjectUtil; -import org.apache.commons.lang3.StringUtils; - -import jakarta.validation.ConstraintValidator; -import jakarta.validation.ConstraintValidatorContext; -import java.math.BigDecimal; - -/** - * Double类型校验器 - */ -public class MoneyValidator implements ConstraintValidator { - - private static final String ZERO = "0"; - private static final String GREATER_THAN_ZERO_NOTIFICATION = "%s必须大于0"; - private static final String LENGTH_ERROR_NOTIFICATION = "%s长度不合法,总长度不超过%d位,小数点后不超过%d位"; - - private String name; - private int maxIntegerDigits; - private int maxFractionDigits; - - @Override - public void initialize(MoneyValid constraintAnnotation) { - this.name = constraintAnnotation.name(); - this.maxIntegerDigits = constraintAnnotation.integer(); - this.maxFractionDigits = constraintAnnotation.fraction(); - } - - @Override - public boolean isValid(Number value, ConstraintValidatorContext context) { - if (ObjectUtil.isNull(value)) { - return true; - } - - String errorMessage = null; - if (value instanceof Integer) { - errorMessage = handleInteger((Integer) value); - } else if (value instanceof Long) { - errorMessage = handleLong((Long) value); - } else if (value instanceof Double) { - errorMessage = handleDouble((Double) value); - } else if (value instanceof BigDecimal) { - errorMessage = handleBigDecimal((BigDecimal) value); - } - - if (StringUtils.isNotEmpty(errorMessage)) { - context.disableDefaultConstraintViolation(); - context.buildConstraintViolationWithTemplate(errorMessage).addConstraintViolation(); - return false; - } - return true; - } - - private String handleInteger(Integer value) { - if (value <= 0) { - return String.format(GREATER_THAN_ZERO_NOTIFICATION, name); - } - return null; - } - - private String handleLong(Long value) { - if (value <= 0) { - return String.format(GREATER_THAN_ZERO_NOTIFICATION, name); - } - return null; - } - - private String handleDouble(Double value) { - return handleBigDecimal(new BigDecimal(value.toString())); - } - - private String handleBigDecimal(BigDecimal value) { - if (value.compareTo(BigDecimal.ZERO) <= 0) { - return String.format(GREATER_THAN_ZERO_NOTIFICATION, name); - } - - String[] parts = value.toPlainString().split("\\."); - int integerPartLength = parts[0].length(); - int fractionalPartLength = parts.length > 1 ? parts[1].length() : 0; - - if (integerPartLength > maxIntegerDigits || fractionalPartLength > maxFractionDigits) { - return String.format(LENGTH_ERROR_NOTIFICATION, name, maxIntegerDigits + maxFractionDigits, maxFractionDigits); - } - return null; - } -} \ No newline at end of file diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/validation/token/TokenConfigAppTypeEnumValidator.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/validation/token/TokenConfigAppTypeEnumValidator.java index 3e209e692..86974f5cd 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/validation/token/TokenConfigAppTypeEnumValidator.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/validation/token/TokenConfigAppTypeEnumValidator.java @@ -12,20 +12,12 @@ import jakarta.validation.ConstraintValidatorContext; */ public class TokenConfigAppTypeEnumValidator implements ConstraintValidator { - @Override - public void initialize(TokenConfigAppTypeEnumValid constraintAnnotation) { - ConstraintValidator.super.initialize(constraintAnnotation); - } - @Override public boolean isValid(Integer value, ConstraintValidatorContext context) { if (ObjectUtil.isNull(value)) { return true; } TokenConfigAppTypeEnum configTypeEnum = TokenConfigAppTypeEnum.fromType(value); - if (ObjectUtil.isNotNull(configTypeEnum)) { - return true; - } - return false; + return ObjectUtil.isNotNull(configTypeEnum); } } diff --git a/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/controller/admin/dept/DeptControllerTest.java b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/controller/admin/dept/DeptControllerTest.java index 21ac74a4a..382cd9ae9 100644 --- a/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/controller/admin/dept/DeptControllerTest.java +++ b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/controller/admin/dept/DeptControllerTest.java @@ -1,5 +1,6 @@ package com.cf.imes.module.system.controller.admin.dept; +import com.cf.imes.framework.test.core.ut.BaseWebUnitTest; import com.cf.imes.module.system.controller.admin.dept.vo.dept.DeptListReqVO; import com.cf.imes.module.system.controller.admin.dept.vo.dept.DeptSaveReqVO; import com.cf.imes.module.system.dal.dataobject.dept.DeptDO; @@ -32,7 +33,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. * @since 2025/10/10 10:32 */ @WebMvcTest(controllers = DeptController.class, excludeAutoConfiguration = SecurityAutoConfiguration.class) -public class DeptControllerTest { +class DeptControllerTest extends BaseWebUnitTest { @Autowired private MockMvc mockMvc; diff --git a/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/controller/admin/funds/advertisement/AdvertisementControllerTest.java b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/controller/admin/funds/advertisement/AdvertisementControllerTest.java index 446240862..edce33d89 100644 --- a/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/controller/admin/funds/advertisement/AdvertisementControllerTest.java +++ b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/controller/admin/funds/advertisement/AdvertisementControllerTest.java @@ -1,6 +1,7 @@ package com.cf.imes.module.system.controller.admin.funds.advertisement; import com.cf.imes.framework.common.pojo.PageResult; +import com.cf.imes.framework.test.core.ut.BaseWebUnitTest; import com.cf.imes.module.system.controller.admin.funds.advertisement.vo.AdvertisementPageReqVO; import com.cf.imes.module.system.controller.admin.funds.advertisement.vo.AdvertisementRePublishReqVO; import com.cf.imes.module.system.controller.admin.funds.advertisement.vo.AdvertisementRespVO; @@ -39,7 +40,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. * @since 2025/10/28 15:05 */ @WebMvcTest(controllers = AdvertisementController.class, excludeAutoConfiguration = SecurityAutoConfiguration.class) -public class AdvertisementControllerTest { +class AdvertisementControllerTest extends BaseWebUnitTest { @Autowired private MockMvc mockMvc; @@ -61,7 +62,7 @@ public class AdvertisementControllerTest { when(advertisementService.create(any())).thenReturn(101L); - mockMvc.perform(put("/system/ad") + mockMvc.perform(post("/system/ad") .contentType(MediaType.APPLICATION_JSON) .content(objectMapper.writeValueAsString(reqVO))) .andExpect(status().isOk()) @@ -83,7 +84,7 @@ public class AdvertisementControllerTest { doNothing().when(advertisementService).update(any()); - mockMvc.perform(post("/system/ad") + mockMvc.perform(put("/system/ad") .contentType(MediaType.APPLICATION_JSON) .content(objectMapper.writeValueAsString(reqVO))) .andExpect(status().isOk()) diff --git a/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/controller/admin/funds/delay/ProductDelayControllerTest.java b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/controller/admin/funds/delay/ProductDelayControllerTest.java index bd810a721..a6b0ab944 100644 --- a/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/controller/admin/funds/delay/ProductDelayControllerTest.java +++ b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/controller/admin/funds/delay/ProductDelayControllerTest.java @@ -1,6 +1,7 @@ package com.cf.imes.module.system.controller.admin.funds.delay; import com.cf.imes.framework.common.pojo.PageResult; +import com.cf.imes.framework.test.core.ut.BaseWebUnitTest; import com.cf.imes.module.system.controller.admin.funds.delay.vo.ProductDelayPageReqVO; import com.cf.imes.module.system.controller.admin.funds.delay.vo.ProductDelayRespVO; import com.cf.imes.module.system.controller.admin.funds.delay.vo.ProductDelaySaveReqVO; @@ -34,7 +35,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. * @since 2025/12/9 14:10 */ @WebMvcTest(controllers = ProductDelayController.class, excludeAutoConfiguration = SecurityAutoConfiguration.class) -public class ProductDelayControllerTest { +class ProductDelayControllerTest extends BaseWebUnitTest { @Autowired private MockMvc mockMvc; diff --git a/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/controller/admin/funds/productpromotion/ProductPromotionControllerTest.java b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/controller/admin/funds/productpromotion/ProductPromotionControllerTest.java index 6ed9acd48..b8a291604 100644 --- a/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/controller/admin/funds/productpromotion/ProductPromotionControllerTest.java +++ b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/controller/admin/funds/productpromotion/ProductPromotionControllerTest.java @@ -1,6 +1,7 @@ package com.cf.imes.module.system.controller.admin.funds.productpromotion; import com.cf.imes.framework.common.pojo.PageResult; +import com.cf.imes.framework.test.core.ut.BaseWebUnitTest; import com.cf.imes.module.system.controller.admin.funds.productpromotion.vo.ProductPromotionPageReqVO; import com.cf.imes.module.system.controller.admin.funds.productpromotion.vo.ProductPromotionSaveReqVO; import com.cf.imes.module.system.dal.dataobject.funds.productpromotion.ProductPromotionDO; @@ -36,7 +37,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. * @since 2025/10/27 9:29 */ @WebMvcTest(controllers = ProductPromotionController.class, excludeAutoConfiguration = SecurityAutoConfiguration.class) -class ProductPromotionControllerTest { +class ProductPromotionControllerTest extends BaseWebUnitTest { @Autowired private MockMvc mockMvc; @@ -62,7 +63,7 @@ class ProductPromotionControllerTest { // mock Service 返回 when(productPromotionService.create(any())).thenReturn(100L); - mockMvc.perform(put("/system/product/promotion") + mockMvc.perform(post("/system/product/promotion") .contentType(MediaType.APPLICATION_JSON) .content(objectMapper.writeValueAsString(vo))) .andExpect(status().isOk()) @@ -88,7 +89,7 @@ class ProductPromotionControllerTest { // mock Service 返回 doNothing().when(productPromotionService).update(any()); - mockMvc.perform(post("/system/product/promotion") + mockMvc.perform(put("/system/product/promotion") .contentType(MediaType.APPLICATION_JSON) .content(objectMapper.writeValueAsString(vo))) .andExpect(status().isOk()) diff --git a/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/controller/admin/funds/products/ProductsControllerTest.java b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/controller/admin/funds/products/ProductsControllerTest.java index a64cacd7a..a99b47130 100644 --- a/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/controller/admin/funds/products/ProductsControllerTest.java +++ b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/controller/admin/funds/products/ProductsControllerTest.java @@ -3,6 +3,7 @@ package com.cf.imes.module.system.controller.admin.funds.products; import com.cf.imes.framework.common.pojo.PageParam; import com.cf.imes.framework.common.pojo.PageResult; import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils; +import com.cf.imes.framework.test.core.ut.BaseWebUnitTest; import com.cf.imes.module.system.controller.admin.funds.products.vo.product.ProductPageReqVO; import com.cf.imes.module.system.controller.admin.funds.products.vo.product.ProductSaveReqVO; import com.cf.imes.module.system.dal.dataobject.funds.products.ProductsDO; @@ -40,7 +41,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. * @since 2025/10/14 11:16 */ @WebMvcTest(controllers = ProductsController.class, excludeAutoConfiguration = SecurityAutoConfiguration.class) -public class ProductsControllerTest { +class ProductsControllerTest extends BaseWebUnitTest { @Autowired private MockMvc mockMvc; @@ -60,7 +61,7 @@ public class ProductsControllerTest { // mock Service 返回 when(productsService.create(any())).thenReturn(100L); - mockMvc.perform(put("/system/products") + mockMvc.perform(post("/system/products") .contentType(MediaType.APPLICATION_JSON) .content(objectMapper.writeValueAsString(vo))) .andExpect(status().isOk()) @@ -80,7 +81,7 @@ public class ProductsControllerTest { // mock Service 方法 void 不做实际处理 doNothing().when(productsService).update(any()); - mockMvc.perform(post("/system/products") + mockMvc.perform(put("/system/products") .contentType(MediaType.APPLICATION_JSON) .content(objectMapper.writeValueAsString(vo))) .andExpect(status().isOk()) diff --git a/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/controller/admin/funds/products/ProductsDetailControllerTest.java b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/controller/admin/funds/products/ProductsDetailControllerTest.java index 9814d0837..ec48ffb88 100644 --- a/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/controller/admin/funds/products/ProductsDetailControllerTest.java +++ b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/controller/admin/funds/products/ProductsDetailControllerTest.java @@ -1,6 +1,7 @@ package com.cf.imes.module.system.controller.admin.funds.products; import com.cf.imes.framework.common.pojo.PageResult; +import com.cf.imes.framework.test.core.ut.BaseWebUnitTest; import com.cf.imes.module.system.controller.admin.funds.products.vo.productDetails.ProductDetailsPageReqVO; import com.cf.imes.module.system.controller.admin.funds.products.vo.productDetails.ProductDetailsRespVO; import com.cf.imes.module.system.controller.admin.funds.products.vo.productDetails.ProductDetailsSaveReqVO; @@ -38,7 +39,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. * @since 2025/10/24 9:41 */ @WebMvcTest(controllers = ProductsDetailController.class, excludeAutoConfiguration = SecurityAutoConfiguration.class) -public class ProductsDetailControllerTest { +class ProductsDetailControllerTest extends BaseWebUnitTest { @Autowired private MockMvc mockMvc; @@ -62,7 +63,7 @@ public class ProductsDetailControllerTest { // mock Service 返回 when(productsDetailService.create(any())).thenReturn(100L); - mockMvc.perform(put("/system/product-details") + mockMvc.perform(post("/system/product-details") .contentType(MediaType.APPLICATION_JSON) .content(objectMapper.writeValueAsString(vo))) .andExpect(status().isOk()) @@ -84,7 +85,7 @@ public class ProductsDetailControllerTest { // mock Service 方法 void 不做实际处理 doNothing().when(productsDetailService).update(any()); - mockMvc.perform(post("/system/product-details") + mockMvc.perform(put("/system/product-details") .contentType(MediaType.APPLICATION_JSON) .content(objectMapper.writeValueAsString(vo))) .andExpect(status().isOk()) diff --git a/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/controller/admin/sms/SmsLogControllerTest.java b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/controller/admin/sms/SmsLogControllerTest.java index 6d6e0f9d7..ae5477bb6 100644 --- a/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/controller/admin/sms/SmsLogControllerTest.java +++ b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/controller/admin/sms/SmsLogControllerTest.java @@ -1,6 +1,7 @@ package com.cf.imes.module.system.controller.admin.sms; import com.cf.imes.framework.common.pojo.PageResult; +import com.cf.imes.framework.test.core.ut.BaseWebUnitTest; import com.cf.imes.module.system.controller.admin.sms.vo.log.SmsLogPageReqVO; import com.cf.imes.module.system.dal.dataobject.sms.SmsLogDO; import com.cf.imes.module.system.service.sms.SmsLogService; @@ -28,7 +29,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. * @since 2025/10/10 15:37 */ @WebMvcTest(controllers = SmsLogController.class, excludeAutoConfiguration = SecurityAutoConfiguration.class) -public class SmsLogControllerTest { +class SmsLogControllerTest extends BaseWebUnitTest { @Autowired private MockMvc mockMvc; diff --git a/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/controller/admin/sms/SmsTemplateControllerTest.java b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/controller/admin/sms/SmsTemplateControllerTest.java index 36a4a97de..8e55c51a1 100644 --- a/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/controller/admin/sms/SmsTemplateControllerTest.java +++ b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/controller/admin/sms/SmsTemplateControllerTest.java @@ -2,6 +2,7 @@ package com.cf.imes.module.system.controller.admin.sms; import com.cf.imes.framework.common.enums.CommonStatusEnum; import com.cf.imes.framework.common.pojo.PageResult; +import com.cf.imes.framework.test.core.ut.BaseWebUnitTest; import com.cf.imes.module.system.controller.admin.sms.vo.template.SmsTemplateSaveReqVO; import com.cf.imes.module.system.controller.admin.sms.vo.template.SmsTemplateSendReqVO; import com.cf.imes.module.system.dal.dataobject.sms.SmsTemplateDO; @@ -9,7 +10,6 @@ import com.cf.imes.module.system.enums.sms.SmsTemplateTypeEnum; import com.cf.imes.module.system.service.sms.SmsSendService; import com.cf.imes.module.system.service.sms.SmsTemplateService; import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration; @@ -44,7 +44,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. * @since 2025/10/11 16:26 */ @WebMvcTest(controllers = SmsTemplateController.class, excludeAutoConfiguration = SecurityAutoConfiguration.class) -public class SmsTemplateControllerTest { +class SmsTemplateControllerTest extends BaseWebUnitTest { @Autowired private MockMvc mockMvc; diff --git a/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/common/LanguageEnumTest.java b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/common/LanguageEnumTest.java new file mode 100644 index 000000000..63939fac3 --- /dev/null +++ b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/common/LanguageEnumTest.java @@ -0,0 +1,28 @@ +package com.cf.imes.module.system.enums.common; + +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; + +/** + * {@link LanguageEnum} 的单元测试 + */ +class LanguageEnumTest { + + @Test + void testEnumValues() { + // 验证枚举值 ZH + assertEquals("zh", LanguageEnum.ZH.getLanguage()); + + // 验证枚举值 EN + assertEquals("en", LanguageEnum.EN.getLanguage()); + + // 验证枚举值 CHT + assertEquals("cht", LanguageEnum.CHT.getLanguage()); + } + + @Test + void testEnumSize() { + // 验证枚举值的数量 + assertEquals(3, LanguageEnum.values().length); + } +} \ 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/common/WhetherEnumTest.java b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/common/WhetherEnumTest.java new file mode 100644 index 000000000..3afd01dff --- /dev/null +++ b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/common/WhetherEnumTest.java @@ -0,0 +1,34 @@ +package com.cf.imes.module.system.enums.common; + +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; + +/** + * {@link WhetherEnum} 的单元测试 + */ +class WhetherEnumTest { + + @Test + void testEnumValues() { + // 验证枚举值 TRUE + assertEquals(true, WhetherEnum.TRUE.getCode()); + assertEquals("whether.yes", WhetherEnum.TRUE.getDesc()); + + // 验证枚举值 FALSE + assertEquals(false, WhetherEnum.FALSE.getCode()); + assertEquals("whether.no", WhetherEnum.FALSE.getDesc()); + } + + @Test + void testEnumSize() { + // 验证枚举值的数量 + assertEquals(2, WhetherEnum.values().length); + } + + @Test + void testGetCode() { + // 测试 getCode 方法 + assertTrue(WhetherEnum.TRUE.getCode()); + assertFalse(WhetherEnum.FALSE.getCode()); + } +} \ 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/pay/PayConstantsTest.java b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/pay/PayConstantsTest.java deleted file mode 100644 index 1083c2fda..000000000 --- a/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/pay/PayConstantsTest.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.cf.imes.module.system.enums.pay; - -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; - -/** - * {@link PayConstants} 的单元测试 - */ -public class PayConstantsTest { - - @Test - public void testPayProductDetailAutoGenerateMonthIdFormat() { - // 测试月定价规则自动生成ID格式常量 - assertEquals("1759029544%d", PayConstants.PAY_PRODUCT_DETAIL_AUTO_GENERATE_MONTH_ID_FORMAT); - } - - @Test - public void testPayProductDetailAutoGenerateYearIdFormat() { - // 测试年定价规则自动生成ID格式常量 - assertEquals("1759993429%d", PayConstants.PAY_PRODUCT_DETAIL_AUTO_GENERATE_YEAR_ID_FORMAT); - } -} \ 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/invoice/InvoiceStatusValidtorTest.java b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/validation/invoice/InvoiceStatusValidtorTest.java new file mode 100644 index 000000000..b84e708ce --- /dev/null +++ b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/validation/invoice/InvoiceStatusValidtorTest.java @@ -0,0 +1,32 @@ +package com.cf.imes.module.system.validation.invoice; + +import com.cf.imes.framework.test.core.ut.BaseMockitoUnitTest; +import com.cf.imes.module.system.enums.pay.InvoiceStatusEnum; +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:05 + */ +class InvoiceStatusValidtorTest extends BaseMockitoUnitTest { + @Mock + private ConstraintValidatorContext constraintValidatorContext; + + @Test + void testValid() { + InvoiceStatusValidtor validator = new InvoiceStatusValidtor(); + assertTrue(validator.isValid(InvoiceStatusEnum.INVOICABLE.getCode(), constraintValidatorContext)); + assertTrue(validator.isValid(InvoiceStatusEnum.PENDINGINVOICING.getCode(), constraintValidatorContext)); + assertTrue(validator.isValid(InvoiceStatusEnum.INVOICINGSUCCESSFUL.getCode(), constraintValidatorContext)); + assertTrue(validator.isValid(InvoiceStatusEnum.INVOICINGFAILED.getCode(), constraintValidatorContext)); + assertTrue(validator.isValid(null, constraintValidatorContext)); + assertFalse(validator.isValid(4, constraintValidatorContext)); + } +} diff --git a/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/validation/notify/NofityTemplateTypeValidatorTest.java b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/validation/notify/NofityTemplateTypeValidatorTest.java new file mode 100644 index 000000000..84d7e21c1 --- /dev/null +++ b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/validation/notify/NofityTemplateTypeValidatorTest.java @@ -0,0 +1,30 @@ +package com.cf.imes.module.system.validation.notify; + +import com.cf.imes.framework.test.core.ut.BaseMockitoUnitTest; +import com.cf.imes.module.system.enums.notify.NotifyTemplateTypeEnum; +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:08 + */ +class NofityTemplateTypeValidatorTest extends BaseMockitoUnitTest { + @Mock + private ConstraintValidatorContext constraintValidatorContext; + + @Test + void testValid() { + NofityTemplateTypeValidator validator = new NofityTemplateTypeValidator(); + assertTrue(validator.isValid(NotifyTemplateTypeEnum.NOTIFICATION_MESSAGE.getType(), constraintValidatorContext)); + assertTrue(validator.isValid(NotifyTemplateTypeEnum.SYSTEM_MESSAGE.getType(), constraintValidatorContext)); + assertTrue(validator.isValid(null, constraintValidatorContext)); + assertFalse(validator.isValid(3, constraintValidatorContext)); + } +} diff --git a/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/validation/operatelog/OperateLogTypeValidatorTest.java b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/validation/operatelog/OperateLogTypeValidatorTest.java new file mode 100644 index 000000000..00ea838df --- /dev/null +++ b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/validation/operatelog/OperateLogTypeValidatorTest.java @@ -0,0 +1,35 @@ +package com.cf.imes.module.system.validation.operatelog; + +import com.cf.imes.framework.operatelog.core.enums.OperateTypeEnum; +import com.cf.imes.framework.test.core.ut.BaseMockitoUnitTest; +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:10 + */ +class OperateLogTypeValidatorTest extends BaseMockitoUnitTest { + @Mock + private ConstraintValidatorContext constraintValidatorContext; + + @Test + void testValid() { + OperateLogTypeValidator validator = new OperateLogTypeValidator(); + assertTrue(validator.isValid(OperateTypeEnum.OTHER.getType(), constraintValidatorContext)); + assertTrue(validator.isValid(OperateTypeEnum.CREATE.getType(), constraintValidatorContext)); + assertTrue(validator.isValid(OperateTypeEnum.DELETE.getType(), constraintValidatorContext)); + assertTrue(validator.isValid(OperateTypeEnum.UPDATE.getType(), constraintValidatorContext)); + assertTrue(validator.isValid(OperateTypeEnum.GET.getType(), constraintValidatorContext)); + assertTrue(validator.isValid(OperateTypeEnum.EXPORT.getType(), constraintValidatorContext)); + assertTrue(validator.isValid(OperateTypeEnum.IMPORT.getType(), constraintValidatorContext)); + assertTrue(validator.isValid(null, constraintValidatorContext)); + assertFalse(validator.isValid(7, constraintValidatorContext)); + } +} diff --git a/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/validation/sms/SmsReceiveStatusValidatorTest.java b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/validation/sms/SmsReceiveStatusValidatorTest.java new file mode 100644 index 000000000..faf0d1428 --- /dev/null +++ b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/validation/sms/SmsReceiveStatusValidatorTest.java @@ -0,0 +1,31 @@ +package com.cf.imes.module.system.validation.sms; + +import com.cf.imes.framework.test.core.ut.BaseMockitoUnitTest; +import com.cf.imes.module.system.enums.sms.SmsReceiveStatusEnum; +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:16 + */ +class SmsReceiveStatusValidatorTest extends BaseMockitoUnitTest { + @Mock + private ConstraintValidatorContext constraintValidatorContext; + + @Test + void testValid() { + SmsReceiveStatusValidator validator = new SmsReceiveStatusValidator(); + assertTrue(validator.isValid(SmsReceiveStatusEnum.INIT.getStatus(), constraintValidatorContext)); + assertTrue(validator.isValid(SmsReceiveStatusEnum.SUCCESS.getStatus(), constraintValidatorContext)); + assertTrue(validator.isValid(SmsReceiveStatusEnum.FAILURE.getStatus(), constraintValidatorContext)); + assertTrue(validator.isValid(null, constraintValidatorContext)); + assertFalse(validator.isValid(30, constraintValidatorContext)); + } +} \ 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/sms/SmsSendStatusValidatorTest.java b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/validation/sms/SmsSendStatusValidatorTest.java new file mode 100644 index 000000000..9b400b1c0 --- /dev/null +++ b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/validation/sms/SmsSendStatusValidatorTest.java @@ -0,0 +1,32 @@ +package com.cf.imes.module.system.validation.sms; + +import com.cf.imes.framework.test.core.ut.BaseMockitoUnitTest; +import com.cf.imes.module.system.enums.sms.SmsSendStatusEnum; +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:18 + */ +class SmsSendStatusValidatorTest extends BaseMockitoUnitTest { + @Mock + private ConstraintValidatorContext constraintValidatorContext; + + @Test + void testValid() { + SmsSendStatusValidator validator = new SmsSendStatusValidator(); + assertTrue(validator.isValid(SmsSendStatusEnum.INIT.getStatus(), constraintValidatorContext)); + assertTrue(validator.isValid(SmsSendStatusEnum.SUCCESS.getStatus(), constraintValidatorContext)); + assertTrue(validator.isValid(SmsSendStatusEnum.FAILURE.getStatus(), constraintValidatorContext)); + assertTrue(validator.isValid(SmsSendStatusEnum.IGNORE.getStatus(), constraintValidatorContext)); + assertTrue(validator.isValid(null, constraintValidatorContext)); + assertFalse(validator.isValid(40, constraintValidatorContext)); + } +} diff --git a/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/validation/sms/SmsTemplateTypeValidatorTest.java b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/validation/sms/SmsTemplateTypeValidatorTest.java new file mode 100644 index 000000000..2f8b2f074 --- /dev/null +++ b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/validation/sms/SmsTemplateTypeValidatorTest.java @@ -0,0 +1,31 @@ +package com.cf.imes.module.system.validation.sms; + +import com.cf.imes.framework.test.core.ut.BaseMockitoUnitTest; +import com.cf.imes.module.system.enums.sms.SmsTemplateTypeEnum; +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:19 + */ +class SmsTemplateTypeValidatorTest extends BaseMockitoUnitTest { + @Mock + private ConstraintValidatorContext constraintValidatorContext; + + @Test + void testValid() { + SmsTemplateTypeValidator validator = new SmsTemplateTypeValidator(); + assertTrue(validator.isValid(SmsTemplateTypeEnum.VERIFICATION_CODE.getType(), constraintValidatorContext)); + assertTrue(validator.isValid(SmsTemplateTypeEnum.NOTICE.getType(), constraintValidatorContext)); + assertTrue(validator.isValid(SmsTemplateTypeEnum.PROMOTION.getType(), constraintValidatorContext)); + assertTrue(validator.isValid(null, constraintValidatorContext)); + assertFalse(validator.isValid(4, constraintValidatorContext)); + } +} \ 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/token/TokenConfigAppTypeEnumValidatorTest.java b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/validation/token/TokenConfigAppTypeEnumValidatorTest.java new file mode 100644 index 000000000..244099c84 --- /dev/null +++ b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/validation/token/TokenConfigAppTypeEnumValidatorTest.java @@ -0,0 +1,29 @@ +package com.cf.imes.module.system.validation.token; + +import com.cf.imes.framework.test.core.ut.BaseMockitoUnitTest; +import com.cf.imes.module.system.enums.token.TokenConfigAppTypeEnum; +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; + +/** + * token配置管理应用类型校验器单元测试 + * + * @author Gqr + * @since 2025/12/10 14:21 + */ +class TokenConfigAppTypeEnumValidatorTest extends BaseMockitoUnitTest { + @Mock + private ConstraintValidatorContext constraintValidatorContext; + + @Test + void testValid() { + TokenConfigAppTypeEnumValidator validator = new TokenConfigAppTypeEnumValidator(); + assertTrue(validator.isValid(TokenConfigAppTypeEnum.WEBCAD.getType(), constraintValidatorContext)); + assertTrue(validator.isValid(null, constraintValidatorContext)); + assertFalse(validator.isValid(2, constraintValidatorContext)); + } +} \ No newline at end of file