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());
|
}
|
}
|