From 638795e09676c07e604f1e50539710c47828fd3b Mon Sep 17 00:00:00 2001 From: wkc <978997012@qq.com> Date: Wed, 4 Mar 2026 16:08:46 +0800 Subject: [PATCH] =?UTF-8?q?test:=20=E6=B7=BB=E5=8A=A0=E9=93=B6=E8=A1=8C?= =?UTF-8?q?=E6=B5=81=E6=B0=B4=E8=BD=AC=E6=8D=A2=E6=96=B9=E6=B3=95=E7=9A=84?= =?UTF-8?q?=E5=8D=95=E5=85=83=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/entity/CcdiBankStatementTest.java | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 ccdi-project/src/test/java/com/ruoyi/ccdi/project/domain/entity/CcdiBankStatementTest.java diff --git a/ccdi-project/src/test/java/com/ruoyi/ccdi/project/domain/entity/CcdiBankStatementTest.java b/ccdi-project/src/test/java/com/ruoyi/ccdi/project/domain/entity/CcdiBankStatementTest.java new file mode 100644 index 0000000..4be7e86 --- /dev/null +++ b/ccdi-project/src/test/java/com/ruoyi/ccdi/project/domain/entity/CcdiBankStatementTest.java @@ -0,0 +1,94 @@ +package com.ruoyi.ccdi.project.domain.entity; + +import com.ruoyi.lsfx.domain.response.GetBankStatementResponse.BankStatementItem; +import org.junit.jupiter.api.Test; + +import java.math.BigDecimal; + +import static org.junit.jupiter.api.Assertions.*; + +/** + * 银行流水实体类测试 + * + * @author ruoyi + * @date 2026-03-04 + */ +class CcdiBankStatementTest { + + @Test + void testFromResponse_Success() { + // 准备测试数据 + BankStatementItem item = new BankStatementItem(); + item.setBankStatementId(123456L); + item.setLeId(100); + item.setAccountId(200L); + item.setLeName("测试企业"); + item.setAccountMaskNo("6222****1234"); + item.setDrAmount(new BigDecimal("1000.00")); + item.setCrAmount(new BigDecimal("500.00")); + item.setBalanceAmount(new BigDecimal("5000.00")); + item.setTrxDate("2026-03-04"); + item.setCustomerAccountMaskNo("6228****5678"); + + // 执行转换 + CcdiBankStatement entity = CcdiBankStatement.fromResponse(item); + + // 验证结果 + assertNotNull(entity, "转换结果不应为null"); + assertEquals(123456L, entity.getBankStatementId(), "流水ID应该匹配"); + assertEquals(100, entity.getLeId(), "企业ID应该匹配"); + assertEquals(200L, entity.getAccountId(), "账号ID应该匹配"); + assertEquals("测试企业", entity.getLeAccountName(), "企业名称应该匹配"); + + // 验证手动映射的字段 + assertEquals("6222****1234", entity.getLeAccountNo(), "企业账号应该从 accountMaskNo 映射"); + assertEquals("6228****5678", entity.getCustomerAccountNo(), "对手方账号应该从 customerAccountMaskNo 映射"); + + // 验证金额字段 + assertEquals(new BigDecimal("1000.00"), entity.getAmountDr(), "付款金额应该匹配"); + assertEquals(new BigDecimal("500.00"), entity.getAmountCr(), "收款金额应该匹配"); + assertEquals(new BigDecimal("5000.00"), entity.getAmountBalance(), "余额应该匹配"); + + // 验证特殊字段 + assertNull(entity.getMetaJson(), "metaJson 应该强制为 null"); + assertNull(entity.getProjectId(), "projectId 应该为 null(需要 Service 层设置)"); + } + + @Test + void testFromResponse_Null() { + // 测试空值处理 + CcdiBankStatement entity = CcdiBankStatement.fromResponse(null); + + // 验证返回 null + assertNull(entity, "传入 null 应该返回 null"); + } + + @Test + void testFromResponse_EmptyObject() { + // 测试空对象转换 + BankStatementItem item = new BankStatementItem(); + + // 执行转换 + CcdiBankStatement entity = CcdiBankStatement.fromResponse(item); + + // 验证不会抛出异常 + assertNotNull(entity, "空对象转换结果不应为 null"); + assertNull(entity.getMetaJson(), "metaJson 应该为 null"); + } + + @Test + void testFromResponse_FieldTypeCompatibility() { + // 测试字段类型兼容性 + BankStatementItem item = new BankStatementItem(); + item.setInternalFlag(1); // Integer 类型 + item.setTransTypeId(100); // Integer 类型 + + // 执行转换 + CcdiBankStatement entity = CcdiBankStatement.fromResponse(item); + + // 验证类型转换正确 + assertNotNull(entity, "转换结果不应为 null"); + assertEquals(1, entity.getInternalFlag(), "Integer 类型应该正确复制"); + assertEquals(100, entity.getTrxType(), "Integer 类型应该正确复制"); + } +}