资金管理统计接口单元测试完善

This commit is contained in:
gaoqr
2025-12-31 15:30:51 +08:00
parent 137689e2a4
commit f46a33bddb
@@ -0,0 +1,99 @@
package com.cf.imes.module.system.service.funds.statistics;
import com.cf.imes.framework.common.enums.StatisticsUnit;
import com.cf.imes.framework.common.util.i18n.core.util.I18nUtils;
import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils;
import com.cf.imes.framework.security.test.WithMockLoginUser;
import com.cf.imes.framework.test.core.ut.BaseDbAndRedisUnitTest;
import com.cf.imes.module.system.controller.admin.funds.organamount.vo.OrganFundsStatisticsReqVO;
import com.cf.imes.module.system.controller.admin.statistics.vo.OrgStatusGroupStatisticsReqVO;
import com.cf.imes.module.system.dal.dataobject.incomeandexpense.IncomeExpenseDetailsDO;
import com.cf.imes.module.system.dal.mysql.incomeandexpense.IncomeExpenseDetailsMapper;
import jakarta.annotation.Resource;
import org.junit.jupiter.api.Test;
import org.springframework.context.annotation.Import;
import org.springframework.test.context.bean.override.mockito.MockitoBean;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
import static com.cf.imes.framework.test.core.util.RandomUtils.randomPojo;
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
import static org.junit.jupiter.api.Assertions.assertEquals;
/**
*
*
* @author Gqr
* @since 2025/12/31 15:20
*/
@Import(FundsStatisticsServiceImpl.class)
public class FundsStatisticsServiceImplTest extends BaseDbAndRedisUnitTest {
@Resource
private FundsStatisticsServiceImpl fundsStatisticsService;
@MockitoBean
private I18nUtils i18nUtils;
@Resource
private IncomeExpenseDetailsMapper incomeExpenseDetailsMapper;
@Test
@WithMockLoginUser(organId = 1L)
void should_return_consumption_trend_with_zero_filling() {
Long organId = SecurityFrameworkUtils.getUserOrganId();
OrgStatusGroupStatisticsReqVO reqVO = new OrgStatusGroupStatisticsReqVO();
reqVO.setUnit(StatisticsUnit.DAY.getValue());
reqVO.setCreateTime(new LocalDate[]{
LocalDate.now().minusDays(2),
LocalDate.now().plusDays(1)
});
IncomeExpenseDetailsDO pojo1 = randomPojo(IncomeExpenseDetailsDO.class, o -> {
o.setOrganId(organId);
o.setAmount(new BigDecimal("100"));
o.setCreateTime(LocalDateTime.now().minusDays(2));
});
IncomeExpenseDetailsDO pojo2 = randomPojo(IncomeExpenseDetailsDO.class, o -> {
o.setOrganId(organId);
o.setAmount(new BigDecimal("200"));
o.setCreateTime(LocalDateTime.now());
});
IncomeExpenseDetailsDO pojo3 = randomPojo(IncomeExpenseDetailsDO.class, o -> {
o.setAmount(new BigDecimal("200"));
o.setCreateTime(LocalDateTime.now());
});
incomeExpenseDetailsMapper.insert(pojo1);
incomeExpenseDetailsMapper.insert(pojo2);
incomeExpenseDetailsMapper.insert(pojo3);
// when query
Map<String, Object> result =
fundsStatisticsService.getFunsTradeTypeGroupStatistics(reqVO);
// then
List<?> xAxis = (List<?>) result.get("dateList");
List<?> series = (List<?>) result.get("series");
assertEquals(4, xAxis.size());
Map<?, ?> seriesItem = (Map<?, ?>) series.get(0);
BigDecimal[] data = (BigDecimal[]) seriesItem.get("data");
assertArrayEquals(
new BigDecimal[]{
new BigDecimal("100.00"),
BigDecimal.ZERO,
new BigDecimal("400.00"),
BigDecimal.ZERO,
},
data
);
}
}