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("<include refid=\"queryCondition\"/>"));
|
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("<select id=\"" + id + "\"");
|
int end = mapper.indexOf("</select>", start);
|
assertTrue(start >= 0 && end > start);
|
return mapper.substring(start, end);
|
}
|
|
private String resource(String path) throws IOException {
|
InputStream input = getClass().getClassLoader().getResourceAsStream(path);
|
assertNotNull(input);
|
try (BufferedReader reader = new BufferedReader(new InputStreamReader(input, StandardCharsets.UTF_8))) {
|
return reader.lines().collect(Collectors.joining("\n"));
|
}
|
}
|
}
|