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.service.TChargingOrderService; import org.junit.jupiter.api.Test; import org.springframework.test.util.ReflectionTestUtils; import java.time.LocalDate; 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 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 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); } }