1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
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"));
    }
}