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 EnterpriseChargingDetailMapperTest {
|
|
@Test
|
void selectsExpectedChargingDetailColumns() throws IOException {
|
InputStream input = getClass().getClassLoader()
|
.getResourceAsStream("mapper/order/TChargingOrderMapper.xml");
|
assertNotNull(input);
|
|
String mapper;
|
try (BufferedReader reader = new BufferedReader(new InputStreamReader(input, StandardCharsets.UTF_8))) {
|
mapper = reader.lines().collect(Collectors.joining("\n"));
|
}
|
|
String detailSelect = mapper.substring(
|
mapper.indexOf("<sql id=\"enterpriseChargingDetailSelect\""),
|
mapper.indexOf("<select id=\"enterpriseChargingDetail\""));
|
|
assertFalse(detailSelect.contains("SELECT DISTINCT"));
|
assertFalse(detailSelect.contains("FROM t_charging_order_accounting_strategy"));
|
assertFalse(detailSelect.contains("t_order_invoice"));
|
assertFalse(detailSelect.contains("t_order_invoice_detail"));
|
assertTrue(detailSelect.contains("AS licensePlate"));
|
assertTrue(detailSelect.contains("AS chargingCapacity"));
|
assertFalse(detailSelect.contains("AS electrovalence"));
|
assertFalse(detailSelect.contains("AS serviceCharge"));
|
assertTrue(detailSelect.contains("AS endMode"));
|
|
String countSelect = mapper.substring(
|
mapper.indexOf("<select id=\"enterpriseChargingDetailCount\""),
|
mapper.indexOf("<sql id=\"enterpriseChargingDetailSelect\""));
|
assertFalse(countSelect.contains("t_order_invoice"));
|
assertFalse(countSelect.contains("t_order_invoice_detail"));
|
assertFalse(countSelect.contains("t_charging_pile cp"));
|
assertFalse(countSelect.contains("t_charging_gun cg"));
|
assertFalse(countSelect.contains("t_app_user_car"));
|
assertTrue(countSelect.contains("FROM t_charging_order co"));
|
assertTrue(countSelect.contains("<include refid=\"enterpriseChargingOrderWhere\""));
|
|
String invoiceIds = mapper.substring(
|
mapper.indexOf("<select id=\"enterpriseInvoiceIds\""),
|
mapper.indexOf("<select id=\"enterpriseInvoiceChargingDetails\""));
|
assertTrue(invoiceIds.contains("FROM t_order_invoice"));
|
assertFalse(invoiceIds.contains("JOIN"));
|
|
String invoiceDetails = mapper.substring(
|
mapper.indexOf("<select id=\"enterpriseInvoiceChargingDetails\""),
|
mapper.indexOf("<sql id=\"enterpriseChargingOrderWhere\""));
|
assertTrue(invoiceDetails.contains("FROM t_order_invoice_detail"));
|
assertTrue(invoiceDetails.contains("order_invoice_id IN"));
|
assertFalse(invoiceDetails.contains("JOIN"));
|
|
assertTrue(mapper.contains("<select id=\"enterpriseChargingPeriodCounts\""));
|
String periodCounts = mapper.substring(
|
mapper.indexOf("<select id=\"enterpriseChargingPeriodCounts\""),
|
mapper.indexOf("<select id=\"queryChargingBillIncome\""));
|
assertTrue(periodCounts.contains("FROM t_charging_order_accounting_strategy"));
|
assertTrue(periodCounts.contains("WHERE charging_order_id IN"));
|
assertTrue(periodCounts.contains("GROUP BY charging_order_id"));
|
}
|
}
|