package jnpf.dmsMapper;
|
|
import org.apache.ibatis.builder.xml.XMLMapperBuilder;
|
import org.apache.ibatis.io.Resources;
|
import org.apache.ibatis.mapping.MappedStatement;
|
import org.apache.ibatis.session.Configuration;
|
import org.junit.jupiter.api.Test;
|
|
import java.io.InputStream;
|
import java.util.Arrays;
|
import java.util.HashMap;
|
import java.util.Map;
|
|
import static org.junit.jupiter.api.Assertions.*;
|
|
class DmsWenjianGuidangMapperXmlTest {
|
private Configuration parse() throws Exception {
|
Configuration configuration = new Configuration();
|
String resource = "mapper/DmsWenjianGuidangMapper.xml";
|
try (InputStream in = Resources.getResourceAsStream(resource)) {
|
new XMLMapperBuilder(in, configuration, resource, configuration.getSqlFragments()).parse();
|
}
|
return configuration;
|
}
|
|
@Test
|
void conflictsMatchNativeSerialsAndPreviouslySavedIdsWithinTenant() throws Exception {
|
MappedStatement statement = parse().getMappedStatement(
|
DmsWenjianGuidangMapper.class.getName() + ".selectConflicts");
|
Map<String, Object> params = new HashMap<>();
|
params.put("ids", Arrays.asList("copy-1"));
|
params.put("shenqingId", "current-application");
|
String sql = statement.getBoundSql(params).getSql().replaceAll("\\s+", " ");
|
assertFalse(statement.getResultMaps().get(0).getAutoMapping());
|
assertTrue(sql.contains("p.f_tenant_id = g.f_tenant_id"));
|
assertTrue(sql.contains("g.wenjian_liushui_id = p.dayin_liushuihao"));
|
assertTrue(sql.contains("g.wenjian_liushui_id = p.f_id"));
|
assertTrue(sql.contains("p.f_id IN"));
|
assertTrue(sql.contains("s.f_id != ?"));
|
assertTrue(sql.contains("NOT IN (3, 4, 7, 9)"));
|
assertTrue(sql.contains("p.f_delete_mark IS NULL"));
|
}
|
|
@Test
|
void confirmationStillUsesTenantAndExpectedStatus() throws Exception {
|
Map<String, Object> params = new HashMap<>();
|
params.put("ids", Arrays.asList("copy-1"));
|
String sql = parse().getMappedStatement(DmsWenjianGuidangMapper.class.getName() + ".changeStatus")
|
.getBoundSql(params).getSql().replaceAll("\\s+", " ");
|
assertTrue(sql.contains("f_tenant_id = ?"));
|
assertTrue(sql.contains("AND biz_status = ? AND f_id IN"));
|
assertTrue(sql.contains("f_delete_mark IS NULL"));
|
}
|
}
|