package com.ruoyi.order.service.impl; import com.ruoyi.order.api.vo.ChargingOrderListVO; import org.junit.jupiter.api.Test; import java.math.BigDecimal; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import static org.junit.jupiter.api.Assertions.assertEquals; class ChargingPeriodIncomeTest { @Test void usesActualChargingOrderShareIncome() { TChargingOrderServiceImpl service = new TChargingOrderServiceImpl(); ChargingOrderListVO item = new ChargingOrderListVO(); Map row = new HashMap<>(); row.put("platformIncome", new BigDecimal("0.73")); row.put("partnerIncome", new BigDecimal("0.27")); service.applyChargingPeriodShareIncome(item, row); assertEquals(new BigDecimal("0.73"), item.getPlatformIncome()); assertEquals(new BigDecimal("0.27"), item.getPartnerIncome()); } @Test void usesZeroIncomeWhenNoEffectiveShareRecordExists() { TChargingOrderServiceImpl service = new TChargingOrderServiceImpl(); ChargingOrderListVO item = new ChargingOrderListVO(); service.applyChargingPeriodShareIncome(item, null); assertEquals(BigDecimal.ZERO, item.getPlatformIncome()); assertEquals(BigDecimal.ZERO, item.getPartnerIncome()); } @Test void mergesAccountingSummaryIntoCurrentPageOrders() { Map firstOrder = new HashMap<>(); firstOrder.put("id", 101L); Map secondOrder = new HashMap<>(); secondOrder.put("id", 102L); List> orders = Arrays.asList(firstOrder, secondOrder); Map summary = new HashMap<>(); summary.put("orderId", 101L); summary.put("periodElectricPrice", new BigDecimal("3.20")); summary.put("periodServicePrice", new BigDecimal("1.10")); summary.put("jian", new BigDecimal("2.00")); summary.put("feng", new BigDecimal("1.00")); summary.put("ping", BigDecimal.ZERO); summary.put("gu", BigDecimal.ZERO); TChargingOrderServiceImpl.mergeChargingPeriodAccountingRows( orders, Arrays.asList(summary)); assertEquals(new BigDecimal("3.20"), firstOrder.get("periodElectricPrice")); assertEquals(new BigDecimal("1.10"), firstOrder.get("periodServicePrice")); assertEquals(new BigDecimal("2.00"), firstOrder.get("jian")); assertEquals(BigDecimal.ZERO, secondOrder.get("periodElectricPrice")); assertEquals(BigDecimal.ZERO, secondOrder.get("gu")); } }