package com.ruoyi.order.mapper; import org.junit.jupiter.api.Test; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; import java.util.stream.Collectors; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; class CardChargingOrderSummaryMapperTest { @Test void splitsSummaryQueriesForMyCatAndRequiresCompleteTimeRanges() throws IOException { String mapper = resource("mapper/order/TCardChargingOrderMapper.xml"); String pageList = select(mapper, "pageList"); String summary = select(mapper, "summary"); String orderIds = select(mapper, "summaryOrderIds"); String share = select(mapper, "shareIncomeSummaryByOrderIds"); String accounting = select(mapper, "accountingSummaryByOrderIds"); String capacity = select(mapper, "capacitySummaryByOrderIds"); assertTrue(pageList.contains("SELECT o.*")); assertFalse(pageList.contains(" JOIN ")); assertFalse(pageList.contains("t_card_charging_order_accounting_strategy")); assertTrue(summary.contains("FROM t_card_charging_order o")); assertFalse(summary.contains(" JOIN ")); assertFalse(summary.contains("t_card_charging_order_share_record")); assertFalse(summary.contains("t_card_charging_order_accounting_strategy")); assertTrue(orderIds.contains("")); assertTrue(share.contains("charging_order_id IN")); assertTrue(accounting.contains("charging_order_id IN")); assertTrue(capacity.contains("charging_order_id AS orderId")); assertTrue(capacity.contains("GROUP BY charging_order_id")); assertTrue(mapper.contains("startTime1 != null and startTime1 != '' and startTime2 != null and startTime2 != ''")); assertTrue(mapper.contains("endTime1 != null and endTime1 != '' and endTime2 != null and endTime2 != ''")); } private String select(String mapper, String id) { int start = mapper.indexOf("