package com.ruoyi.order.service.impl; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.order.dto.PayOrderDto; import com.ruoyi.order.dto.PayOrderQueryDto; import com.ruoyi.order.mapper.TChargingOrderMapper; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.test.util.ReflectionTestUtils; import java.util.Collections; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; class InvoicePayOrderQueryTest { private TChargingOrderServiceImpl service; private TChargingOrderMapper mapper; @BeforeEach void setUp() { service = new TChargingOrderServiceImpl(); mapper = mock(TChargingOrderMapper.class); ReflectionTestUtils.setField(service, "baseMapper", mapper); } @Test void invoiceWithoutOrderDetailsReturnsEmptyInsteadOfAllOrders() { PayOrderQueryDto query = new PayOrderQueryDto(); query.setInvoiceId(1001L); query.setIds(Collections.emptyList()); R> result = service.payOrderQuery(query); assertNotNull(result.getData()); assertTrue(result.getData().getRecords().isEmpty()); verify(mapper, never()).payOrderQuery(any(), any()); } @Test void ordinaryPayOrderQueryStillUsesMapperWithoutInvoiceId() { PayOrderQueryDto query = new PayOrderQueryDto(); when(mapper.payOrderQuery(any(), any())).thenReturn(Collections.emptyList()); service.payOrderQuery(query); verify(mapper).payOrderQuery(any(), any()); } }