刘光辉
4 小时以前 06f314545ac3514d7ce28939920866ae8188d31c
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
package jnpf.dmsMapper;
 
import org.apache.ibatis.builder.xml.XMLMapperBuilder;
import org.apache.ibatis.session.Configuration;
import org.junit.jupiter.api.Test;
import java.util.*;
import static org.junit.jupiter.api.Assertions.*;
 
class DmsWenjianBupinghengMapperXmlTest {
    @Test void completionRecognizesUnsignedRecycledCopiesWithoutInventingHandoverData() throws Exception {
        Configuration c = new Configuration();
        try (java.io.InputStream input = getClass().getResourceAsStream("/mapper/DmsWenjianBupinghengMapper.xml")) {
            new XMLMapperBuilder(input, c, "mapper/DmsWenjianBupinghengMapper.xml", c.getSqlFragments()).parse();
        }
        String sql = c.getMappedStatement(DmsWenjianBupinghengMapper.class.getName() + ".finishDistribution")
                .getBoundSql(Map.of("tenantId", "tenant", "taskId", "task")).getSql().replaceAll("\\s+", " ");
        assertTrue(sql.contains("signed.f_id IS NULL AND recycled.task_status IS NULL"));
        assertTrue(sql.contains("recycled.task_status IS NULL OR recycled.task_status = 'yidayin'"));
        assertTrue(sql.contains("p.biz_status IN ('daixiaohui', 'yixiaohui', 'daiguidang', 'yiguidang')"));
        assertTrue(sql.contains("q.f_tenant_id = p.f_tenant_id AND q.dayin_renwu_id = p.dayin_renwu_id"));
        assertTrue(sql.contains("jsonb_build_object('id', p.f_id)"));
        assertTrue(sql.contains("COALESCE(signed.fafang_shijian, d.fafang_shijian)"));
        assertTrue(sql.contains("p.biz_status IN ('daifafang', 'daiqianshou')"));
    }
 
    @Test void executionMapperUsesNativeSchemaAndNeverCreatesDocuments() throws Exception {
        Configuration c=new Configuration();
        try(java.io.InputStream input=getClass().getResourceAsStream("/mapper/DmsWenjianBupinghengMapper.xml")){
            new XMLMapperBuilder(input,c,"mapper/DmsWenjianBupinghengMapper.xml",c.getSqlFragments()).parse();
        }
        String ns="jnpf.dmsMapper.DmsWenjianBupinghengMapper.";
        assertFalse(c.hasStatement(ns+"insertDocument"));assertFalse(c.hasStatement(ns+"insertDetail"));
        assertFalse(c.hasStatement(ns+"selectBySerial"));
        for(String name:List.of("lockDocument","lockItems","completeDocument","linkReplacement")){
            String sql=c.getMappedStatement(ns+name).getBoundSql(Map.of()).getSql();
            assertTrue(sql.contains("f_tenant_id = ?"));assertTrue(sql.contains("f_delete_mark IS NULL"));
            assertFalse(sql.contains("f_creator_time"));assertFalse(sql.contains("f_last_modify_time"));
        }
        assertTrue(c.getMappedStatement(ns+"lockDocument").getBoundSql(Map.of()).getSql().contains("FOR UPDATE"));
        assertTrue(c.getMappedStatement(ns+"lockItems").getBoundSql(Map.of()).getSql().contains("FOR UPDATE"));
        assertTrue(c.getMappedStatement(ns+"completeDocument").getBoundSql(Map.of()).getSql().contains("zhixing_shijian IS NULL"));
        assertFalse(c.getResultMap(ns+"ExecutionMap").getAutoMapping());assertFalse(c.getResultMap(ns+"ItemMap").getAutoMapping());
    }
}