资金管理部分枚举单元测试完善

This commit is contained in:
gaoqr
2025-12-09 16:06:50 +08:00
parent aa334aef7b
commit d3720005ca
8 changed files with 464 additions and 0 deletions
@@ -0,0 +1,89 @@
package com.cf.imes.module.system.enums.pay;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
/**
* {@link DurationUnitEnum} 的单元测试
*/
public class DurationUnitEnumTest {
@Test
public void testFromStatus() {
// 测试正常情况 - 年
assertEquals(DurationUnitEnum.YEAR, DurationUnitEnum.fromStatus(0));
// 测试正常情况 - 月
assertEquals(DurationUnitEnum.MONTH, DurationUnitEnum.fromStatus(1));
// 测试正常情况 - 日
assertEquals(DurationUnitEnum.DAY, DurationUnitEnum.fromStatus(2));
// 测试不存在的类型
assertNull(DurationUnitEnum.fromStatus(999));
// 测试null值
assertNull(DurationUnitEnum.fromStatus(null));
}
@Test
public void testGetDesc() {
// 测试年描述
assertEquals("duration.unit.year", DurationUnitEnum.getDesc(0));
// 测试月描述
assertEquals("duration.unit.month", DurationUnitEnum.getDesc(1));
// 测试日描述
assertEquals("duration.unit.day", DurationUnitEnum.getDesc(2));
// 测试不存在的类型
assertNull(DurationUnitEnum.getDesc(999));
// 测试null值
assertNull(DurationUnitEnum.getDesc(null));
}
@Test
public void testEnumValues() {
// 测试枚举值的基本属性
assertEquals(0, DurationUnitEnum.YEAR.getCode());
assertEquals("duration.unit.year", DurationUnitEnum.YEAR.getDesc());
assertEquals(1, DurationUnitEnum.MONTH.getCode());
assertEquals("duration.unit.month", DurationUnitEnum.MONTH.getDesc());
assertEquals(2, DurationUnitEnum.DAY.getCode());
assertEquals("duration.unit.day", DurationUnitEnum.DAY.getDesc());
}
@Test
public void testArrayMethod() {
// 测试array()方法
int[] arrays = DurationUnitEnum.YEAR.array();
assertEquals(3, arrays.length);
assertTrue(contains(arrays, 0)); // YEAR
assertTrue(contains(arrays, 1)); // MONTH
assertTrue(contains(arrays, 2)); // DAY
}
@Test
public void testArraysField() {
// 测试ARRAYS静态字段包含所有枚举值的code
int[] arrays = DurationUnitEnum.ARRAYS;
assertEquals(3, arrays.length);
assertTrue(contains(arrays, 0)); // YEAR
assertTrue(contains(arrays, 1)); // MONTH
assertTrue(contains(arrays, 2)); // DAY
}
private boolean contains(int[] array, int value) {
for (int i : array) {
if (i == value) {
return true;
}
}
return false;
}
}
@@ -0,0 +1,36 @@
package com.cf.imes.module.system.enums.pay;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
/**
* {@link IncomeExpenseTypeEnum} 的单元测试
*/
public class IncomeExpenseTypeEnumTest {
@Test
public void testFromType() {
// 测试正常情况 - 收入
assertEquals(IncomeExpenseTypeEnum.INCOME, IncomeExpenseTypeEnum.fromType(0));
// 测试正常情况 - 支出
assertEquals(IncomeExpenseTypeEnum.EXPENSES, IncomeExpenseTypeEnum.fromType(1));
// 测试不存在的类型
assertNull(IncomeExpenseTypeEnum.fromType(999));
// 测试null值
assertNull(IncomeExpenseTypeEnum.fromType(null));
}
@Test
public void testEnumValues() {
// 测试枚举值的基本属性
assertEquals(0, IncomeExpenseTypeEnum.INCOME.getCode());
assertEquals("收入", IncomeExpenseTypeEnum.INCOME.getDesc());
assertEquals(1, IncomeExpenseTypeEnum.EXPENSES.getCode());
assertEquals("支出", IncomeExpenseTypeEnum.EXPENSES.getDesc());
}
}
@@ -0,0 +1,48 @@
package com.cf.imes.module.system.enums.pay;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
/**
* {@link InvoiceStatusEnum} 的单元测试
*/
public class InvoiceStatusEnumTest {
@Test
public void testFromType() {
// 测试正常情况 - 可开票
assertEquals(InvoiceStatusEnum.INVOICABLE, InvoiceStatusEnum.fromType(0));
// 测试正常情况 - 待开票
assertEquals(InvoiceStatusEnum.PENDINGINVOICING, InvoiceStatusEnum.fromType(1));
// 测试正常情况 - 已开票
assertEquals(InvoiceStatusEnum.INVOICINGSUCCESSFUL, InvoiceStatusEnum.fromType(2));
// 测试正常情况 - 开票失败
assertEquals(InvoiceStatusEnum.INVOICINGFAILED, InvoiceStatusEnum.fromType(3));
// 测试不存在的类型
assertNull(InvoiceStatusEnum.fromType(999));
// 测试null值
assertNull(InvoiceStatusEnum.fromType(null));
}
@Test
public void testEnumValues() {
// 测试枚举值的基本属性
assertEquals(0, InvoiceStatusEnum.INVOICABLE.getCode());
assertEquals("可开票", InvoiceStatusEnum.INVOICABLE.getDesc());
assertEquals(1, InvoiceStatusEnum.PENDINGINVOICING.getCode());
assertEquals("待开票", InvoiceStatusEnum.PENDINGINVOICING.getDesc());
assertEquals(2, InvoiceStatusEnum.INVOICINGSUCCESSFUL.getCode());
assertEquals("已开票", InvoiceStatusEnum.INVOICINGSUCCESSFUL.getDesc());
assertEquals(3, InvoiceStatusEnum.INVOICINGFAILED.getCode());
assertEquals("开票失败", InvoiceStatusEnum.INVOICINGFAILED.getDesc());
}
}
@@ -0,0 +1,75 @@
package com.cf.imes.module.system.enums.pay;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
/**
* {@link PayChannelCodeEnum} 的单元测试
*/
public class PayChannelCodeEnumTest {
@Test
public void testFromType() {
// 测试正常情况 - 支付宝
assertEquals(PayChannelCodeEnum.ALIPAY_PC, PayChannelCodeEnum.fromType(0));
// 测试正常情况 - 微信
assertEquals(PayChannelCodeEnum.WECHAT_NATIVE, PayChannelCodeEnum.fromType(1));
// 测试不存在的类型
assertNull(PayChannelCodeEnum.fromType(999));
// 测试null值
assertNull(PayChannelCodeEnum.fromType(null));
}
@Test
public void testIsAlipay() {
// 测试支付宝类型
assertTrue(PayChannelCodeEnum.isAlipay(0));
// 测试非支付宝类型
assertFalse(PayChannelCodeEnum.isAlipay(1));
// 测试null值
assertFalse(PayChannelCodeEnum.isAlipay(null));
}
@Test
public void testIsWechat() {
// 测试微信类型
assertTrue(PayChannelCodeEnum.isWechat(1));
// 测试非微信类型
assertFalse(PayChannelCodeEnum.isWechat(0));
// 测试null值
assertFalse(PayChannelCodeEnum.isWechat(null));
}
@Test
public void testDescribe() {
// 测试支付宝描述
assertEquals("pay.channel.alipay", PayChannelCodeEnum.describe(0));
// 测试微信描述
assertEquals("pay.channel.wechat", PayChannelCodeEnum.describe(1));
// 测试不存在的类型
assertNull(PayChannelCodeEnum.describe(999));
// 测试null值
assertNull(PayChannelCodeEnum.describe(null));
}
@Test
public void testEnumValues() {
// 测试枚举值的基本属性
assertEquals(0, PayChannelCodeEnum.ALIPAY_PC.getCode());
assertEquals("pay.channel.alipay", PayChannelCodeEnum.ALIPAY_PC.getDesc());
assertEquals(1, PayChannelCodeEnum.WECHAT_NATIVE.getCode());
assertEquals("pay.channel.wechat", PayChannelCodeEnum.WECHAT_NATIVE.getDesc());
}
}
@@ -0,0 +1,23 @@
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,69 @@
package com.cf.imes.module.system.enums.pay;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
/**
* {@link PayOrderStatusEnum} 的单元测试
*/
public class PayOrderStatusEnumTest {
@Test
public void testFromType() {
// 测试正常情况 - 等待支付
assertEquals(PayOrderStatusEnum.WAITING, PayOrderStatusEnum.fromType(0));
// 测试正常情况 - 支付成功
assertEquals(PayOrderStatusEnum.SUCCESS, PayOrderStatusEnum.fromType(10));
// 测试正常情况 - 已退款
assertEquals(PayOrderStatusEnum.REFUND, PayOrderStatusEnum.fromType(20));
// 测试正常情况 - 支付关闭
assertEquals(PayOrderStatusEnum.CLOSED, PayOrderStatusEnum.fromType(30));
// 测试不存在的类型
assertNull(PayOrderStatusEnum.fromType(999));
// 测试null值
assertNull(PayOrderStatusEnum.fromType(null));
}
@Test
public void testIsSuccess() {
// 测试支付成功的状态
assertTrue(PayOrderStatusEnum.isSuccess(10));
// 测试非支付成功的状态
assertFalse(PayOrderStatusEnum.isSuccess(0));
assertFalse(PayOrderStatusEnum.isSuccess(20));
assertFalse(PayOrderStatusEnum.isSuccess(30));
// 测试null值
assertFalse(PayOrderStatusEnum.isSuccess(null));
}
@Test
public void testIsClosed() {
// 测试支付关闭的状态
assertTrue(PayOrderStatusEnum.isClosed(30));
// 测试非支付关闭的状态
assertFalse(PayOrderStatusEnum.isClosed(0));
assertFalse(PayOrderStatusEnum.isClosed(10));
assertFalse(PayOrderStatusEnum.isClosed(20));
// 测试null值
assertFalse(PayOrderStatusEnum.isClosed(null));
}
@Test
public void testEnumValues() {
// 测试枚举值的基本属性
assertEquals(0, PayOrderStatusEnum.WAITING.getStatus());
assertEquals(10, PayOrderStatusEnum.SUCCESS.getStatus());
assertEquals(20, PayOrderStatusEnum.REFUND.getStatus());
assertEquals(30, PayOrderStatusEnum.CLOSED.getStatus());
}
}
@@ -0,0 +1,86 @@
package com.cf.imes.module.system.enums.pay;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
/**
* {@link ProductDurationUnitEnum} 的单元测试
*/
public class ProductDurationUnitEnumTest {
@Test
public void testFromStatus() {
// 测试正常情况 - 年
assertEquals(ProductDurationUnitEnum.YEAR, ProductDurationUnitEnum.fromStatus(0));
// 测试正常情况 - 月
assertEquals(ProductDurationUnitEnum.MONTH, ProductDurationUnitEnum.fromStatus(1));
// 测试不存在的类型
assertNull(ProductDurationUnitEnum.fromStatus(999));
// 测试null值
assertNull(ProductDurationUnitEnum.fromStatus(null));
}
@Test
public void testGetDesc() {
// 测试年描述
assertEquals("duration.unit.year", ProductDurationUnitEnum.getDesc(0));
// 测试月描述
assertEquals("duration.unit.month", ProductDurationUnitEnum.getDesc(1));
// 测试不存在的类型
assertNull(ProductDurationUnitEnum.getDesc(999));
// 测试null值
assertNull(ProductDurationUnitEnum.getDesc(null));
}
@Test
public void testValidArr() {
// 测试validArr方法
ProductDurationUnitEnum[] validArr = ProductDurationUnitEnum.validArr();
assertEquals(1, validArr.length);
assertEquals(ProductDurationUnitEnum.YEAR, validArr[0]);
}
@Test
public void testEnumValues() {
// 测试枚举值的基本属性
assertEquals(0, ProductDurationUnitEnum.YEAR.getCode());
assertEquals("duration.unit.year", ProductDurationUnitEnum.YEAR.getDesc());
assertEquals(1, ProductDurationUnitEnum.MONTH.getCode());
assertEquals("duration.unit.month", ProductDurationUnitEnum.MONTH.getDesc());
}
@Test
public void testArrayMethod() {
// 测试array()方法
int[] arrays = ProductDurationUnitEnum.YEAR.array();
assertEquals(2, arrays.length);
assertTrue(contains(arrays, 0)); // YEAR
assertTrue(contains(arrays, 1)); // MONTH
}
@Test
public void testArraysField() {
// 测试ARRAYS静态字段包含所有枚举值的code
int[] arrays = ProductDurationUnitEnum.ARRAYS;
assertEquals(2, arrays.length);
assertTrue(contains(arrays, 0)); // YEAR
assertTrue(contains(arrays, 1)); // MONTH
}
private boolean contains(int[] array, int value) {
for (int i : array) {
if (i == value) {
return true;
}
}
return false;
}
}
@@ -0,0 +1,38 @@
package com.cf.imes.module.system.enums.pay;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
/**
* {@link TradeTypeEnum} 的单元测试
*/
public class TradeTypeEnumTest {
@Test
public void testFromCode() {
// 测试正常情况 - 产品购买
assertEquals(TradeTypeEnum.PRODUCT, TradeTypeEnum.fromCode(1));
// 测试不存在的类型
assertNull(TradeTypeEnum.fromCode(999));
// 测试null值
assertNull(TradeTypeEnum.fromCode(null));
}
@Test
public void testValidArr() {
// 测试validArr方法
TradeTypeEnum[] validArr = TradeTypeEnum.validArr();
assertEquals(1, validArr.length);
assertEquals(TradeTypeEnum.PRODUCT, validArr[0]);
}
@Test
public void testEnumValues() {
// 测试枚举值的基本属性
assertEquals(1, TradeTypeEnum.PRODUCT.getCode());
assertEquals("trade.type.product", TradeTypeEnum.PRODUCT.getDesc());
}
}