package com.ruoyi.order.controller;
|
|
import com.ruoyi.account.api.feignClient.AppUserClient;
|
import com.ruoyi.order.api.query.ChargingOrderQuery;
|
import com.ruoyi.order.api.vo.TCharingOrderVO;
|
import com.ruoyi.order.dto.SixChargingDto;
|
import com.ruoyi.order.dto.EnterpriseChargingDetailVO;
|
import com.ruoyi.order.export.EnterpriseChargingDetailExport;
|
import com.ruoyi.order.service.TChargingOrderService;
|
import org.junit.jupiter.api.Test;
|
import org.springframework.test.util.ReflectionTestUtils;
|
|
import java.time.LocalDate;
|
import java.math.BigDecimal;
|
import java.util.Arrays;
|
import java.util.List;
|
|
import static org.junit.jupiter.api.Assertions.assertNull;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.mockito.ArgumentMatchers.same;
|
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verifyNoInteractions;
|
import static org.mockito.Mockito.when;
|
|
class TChargingOrderControllerTest {
|
|
@Test
|
void enterpriseChargingDetailExportContainsVisibleDetailColumns() {
|
EnterpriseChargingDetailVO detail = new EnterpriseChargingDetailVO();
|
detail.setLicensePlate("川JD20960");
|
detail.setChargingCapacity(new BigDecimal("40.693"));
|
detail.setElectrovalence(new BigDecimal("43.0857"));
|
detail.setServiceCharge(new BigDecimal("16.2772"));
|
detail.setEndMode(0);
|
detail.setPeriodCount(1);
|
|
EnterpriseChargingDetailExport export = ReflectionTestUtils.invokeMethod(
|
new TChargingOrderController(), "buildEnterpriseChargingDetailExport", detail);
|
|
assertEquals("川JD20960", export.getLicensePlate());
|
assertEquals(new BigDecimal("40.693"), export.getChargingCapacity());
|
assertEquals(new BigDecimal("43.0857"), export.getElectrovalence());
|
assertEquals(new BigDecimal("16.2772"), export.getServiceCharge());
|
assertEquals("异常终止", export.getEndMode());
|
assertEquals(1, export.getPeriodCount());
|
}
|
|
@Test
|
void latestAdjacentMonthDataMovesTheSixMonthWindowForward() {
|
SixChargingDto june = new SixChargingDto();
|
june.setMonth("06");
|
SixChargingDto july = new SixChargingDto();
|
july.setMonth("07");
|
|
LocalDate endMonth = TChargingOrderController.resolveStatisticsEndMonth(
|
LocalDate.of(2026, 6, 30), Arrays.asList(june, july));
|
List<SixChargingDto> months = TChargingOrderController.generateLastSixMonths(endMonth);
|
|
assertEquals(LocalDate.of(2026, 7, 30), endMonth);
|
assertEquals(Arrays.asList("02", "03", "04", "05", "06", "07"),
|
months.stream().map(SixChargingDto::getMonth).collect(java.util.stream.Collectors.toList()));
|
}
|
|
@Test
|
void blankPhoneDoesNotExpandQueryToAllUserIds() {
|
TChargingOrderService chargingOrderService = mock(TChargingOrderService.class);
|
AppUserClient appUserClient = mock(AppUserClient.class);
|
TChargingOrderController controller = new TChargingOrderController();
|
ReflectionTestUtils.setField(controller, "chargingOrderService", chargingOrderService);
|
ReflectionTestUtils.setField(controller, "appUserClient", appUserClient);
|
|
ChargingOrderQuery query = new ChargingOrderQuery();
|
query.setPhone("");
|
when(chargingOrderService.chargingOrder(same(query))).thenReturn(new TCharingOrderVO());
|
|
controller.chargingOrder(query);
|
|
assertNull(query.getUserIds());
|
verify(chargingOrderService).chargingOrder(same(query));
|
verifyNoInteractions(appUserClient);
|
}
|
}
|