system微服务单元测试完善

This commit is contained in:
gaoqr
2025-12-11 10:19:34 +08:00
parent d3720005ca
commit 4c89805643
24 changed files with 327 additions and 207 deletions
@@ -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 {
}
@@ -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格式
}
@@ -13,22 +13,13 @@ import jakarta.validation.ConstraintValidatorContext;
*/
public class FundsStatisticsUnitInEnumValidator implements ConstraintValidator<FundsStatisticsUnitInEnum, Integer> {
@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);
}
}
@@ -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<? extends Payload>[] payload() default {};
/**
* 整数最大位数
*
* @return
*/
int integer() default 7;
/**
* 小数点后的最大位数
*
* @return
*/
int fraction() default 3;
}
@@ -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<MoneyValid, Number> {
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;
}
}
@@ -12,20 +12,12 @@ import jakarta.validation.ConstraintValidatorContext;
*/
public class TokenConfigAppTypeEnumValidator implements ConstraintValidator<TokenConfigAppTypeEnumValid, Integer> {
@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);
}
}
@@ -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;
@@ -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())
@@ -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;
@@ -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())
@@ -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())
@@ -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())
@@ -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;
@@ -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;
@@ -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);
}
}
@@ -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());
}
}
@@ -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);
}
}
@@ -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));
}
}
@@ -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));
}
}
@@ -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));
}
}
@@ -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));
}
}
@@ -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));
}
}
@@ -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));
}
}
@@ -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));
}
}