From d3720005ca75f873ebe3a35e0b7358f24242f4dc Mon Sep 17 00:00:00 2001 From: gaoqr <13665037151@163.com> Date: Tue, 9 Dec 2025 16:06:50 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B5=84=E9=87=91=E7=AE=A1=E7=90=86=E9=83=A8?= =?UTF-8?q?=E5=88=86=E6=9E=9A=E4=B8=BE=E5=8D=95=E5=85=83=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../enums/pay/DurationUnitEnumTest.java | 89 +++++++++++++++++++ .../enums/pay/IncomeExpenseTypeEnumTest.java | 36 ++++++++ .../enums/pay/InvoiceStatusEnumTest.java | 48 ++++++++++ .../enums/pay/PayChannelCodeEnumTest.java | 75 ++++++++++++++++ .../system/enums/pay/PayConstantsTest.java | 23 +++++ .../enums/pay/PayOrderStatusEnumTest.java | 69 ++++++++++++++ .../pay/ProductDurationUnitEnumTest.java | 86 ++++++++++++++++++ .../system/enums/pay/TradeTypeEnumTest.java | 38 ++++++++ 8 files changed, 464 insertions(+) create mode 100644 cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/pay/DurationUnitEnumTest.java create mode 100644 cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/pay/IncomeExpenseTypeEnumTest.java create mode 100644 cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/pay/InvoiceStatusEnumTest.java create mode 100644 cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/pay/PayChannelCodeEnumTest.java create mode 100644 cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/pay/PayConstantsTest.java create mode 100644 cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/pay/PayOrderStatusEnumTest.java create mode 100644 cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/pay/ProductDurationUnitEnumTest.java create mode 100644 cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/pay/TradeTypeEnumTest.java diff --git a/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/pay/DurationUnitEnumTest.java b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/pay/DurationUnitEnumTest.java new file mode 100644 index 000000000..d4bd0e8d9 --- /dev/null +++ b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/pay/DurationUnitEnumTest.java @@ -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; + } +} \ 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/IncomeExpenseTypeEnumTest.java b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/pay/IncomeExpenseTypeEnumTest.java new file mode 100644 index 000000000..db3009025 --- /dev/null +++ b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/pay/IncomeExpenseTypeEnumTest.java @@ -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()); + } +} \ 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/InvoiceStatusEnumTest.java b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/pay/InvoiceStatusEnumTest.java new file mode 100644 index 000000000..cdee44f92 --- /dev/null +++ b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/pay/InvoiceStatusEnumTest.java @@ -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()); + } +} \ 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/PayChannelCodeEnumTest.java b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/pay/PayChannelCodeEnumTest.java new file mode 100644 index 000000000..b743d28d7 --- /dev/null +++ b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/pay/PayChannelCodeEnumTest.java @@ -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()); + } +} \ 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 new file mode 100644 index 000000000..1083c2fda --- /dev/null +++ b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/pay/PayConstantsTest.java @@ -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); + } +} \ 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/PayOrderStatusEnumTest.java b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/pay/PayOrderStatusEnumTest.java new file mode 100644 index 000000000..b7fe4b32d --- /dev/null +++ b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/pay/PayOrderStatusEnumTest.java @@ -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()); + } +} \ 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/ProductDurationUnitEnumTest.java b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/pay/ProductDurationUnitEnumTest.java new file mode 100644 index 000000000..dbae692b6 --- /dev/null +++ b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/pay/ProductDurationUnitEnumTest.java @@ -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; + } +} \ 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/TradeTypeEnumTest.java b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/pay/TradeTypeEnumTest.java new file mode 100644 index 000000000..8e95be710 --- /dev/null +++ b/cf-module-system/cf-module-system-biz/src/test/java/com/cf/imes/module/system/enums/pay/TradeTypeEnumTest.java @@ -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()); + } +} \ No newline at end of file