This commit is contained in:
wkc
2026-07-02 16:48:17 +08:00
parent 979ed9669f
commit 87fb6443e6
27 changed files with 2167 additions and 0 deletions

View File

@@ -0,0 +1,40 @@
package com.ruoyi.ccdi.project.mapper;
import org.junit.jupiter.api.Test;
import java.io.InputStream;
import java.lang.reflect.Method;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
class CcdiBankTagTaskMapperXmlTest {
private static final String RESOURCE = "mapper/ccdi/project/CcdiBankTagTaskMapper.xml";
@Test
void mapper_shouldExposeLatestFailedTaskQuery() {
Method method = Arrays.stream(CcdiBankTagTaskMapper.class.getDeclaredMethods())
.filter(item -> "selectLatestFailedTaskByProjectId".equals(item.getName()))
.findFirst()
.orElse(null);
assertNotNull(method, "应提供查询项目最近失败打标任务的方法");
}
@Test
void xml_shouldSelectLatestFailedTaskByProjectId() throws Exception {
try (InputStream inputStream = getClass().getClassLoader().getResourceAsStream(RESOURCE)) {
String xml = new String(inputStream.readAllBytes(), StandardCharsets.UTF_8);
assertTrue(xml.contains("selectLatestFailedTaskByProjectId"), xml);
assertTrue(xml.contains("from ccdi_bank_tag_task"), xml);
assertTrue(xml.contains("project_id = #{projectId}"), xml);
assertTrue(xml.contains("status = 'FAILED'"), xml);
assertTrue(xml.contains("order by id desc"), xml);
assertTrue(xml.contains("limit 1"), xml);
}
}
}

View File

@@ -0,0 +1,27 @@
package com.ruoyi.ccdi.project.mapper;
import java.lang.reflect.Method;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.List;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
class CcdiProjectExtendedPurchaseSupplierContractTest {
@Test
void shouldExposeExtendedPurchaseSupplierDetailQuery() throws Exception {
Class<?> mapperClass = Class.forName("com.ruoyi.ccdi.project.mapper.CcdiProjectSpecialCheckMapper");
Method method = mapperClass.getMethod("selectExtendedPurchaseSuppliers", Long.class, String.class);
assertEquals(List.class, method.getReturnType());
String xml = Files.readString(Path.of("src/main/resources/mapper/ccdi/project/CcdiProjectSpecialCheckMapper.xml"));
assertTrue(xml.contains("select id=\"selectExtendedPurchaseSuppliers\""));
assertTrue(xml.contains("ccdi_purchase_transaction_supplier"));
assertTrue(xml.contains("is_bid_winner"));
assertTrue(xml.contains("sort_order"));
}
}

View File

@@ -0,0 +1,51 @@
package com.ruoyi.ccdi.project.mapper;
import org.junit.jupiter.api.Test;
import java.nio.file.Files;
import java.nio.file.Path;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
class CcdiProjectMapperXmlTest {
@Test
void projectQueriesShouldApplyProjectVisibilityAndDeletedFilters() throws Exception {
String xml = Files.readString(Path.of("src/main/resources/mapper/ccdi/project/CcdiProjectMapper.xml"));
assertFalse(xml.contains("params.dataScope"), xml);
assertFalse(xml.contains("${queryDTO.params.dataScope}"), xml);
String listSql = extractSelect(xml, "selectProjectPage");
assertTrue(listSql.contains("LEFT JOIN sys_user u ON p.create_by = u.user_name"), listSql);
assertTrue(listSql.contains("scope != null and !scope.viewAllProjects"), listSql);
assertTrue(listSql.contains("p.create_by = #{scope.username}"), listSql);
assertTrue(listSql.contains("queryDTO.includeDeleted"), listSql);
assertTrue(listSql.contains("p.del_flag = '2'"), listSql);
assertTrue(listSql.contains("p.status = '5'"), listSql);
assertTrue(listSql.contains("p.del_flag = '0'"), listSql);
assertTrue(listSql.contains("p.status != '5'"), listSql);
String historySql = extractSelect(xml, "selectHistoryProjects");
assertTrue(historySql.contains("p.status in ('1', '2')"), historySql);
assertTrue(historySql.contains("p.del_flag = '0'"), historySql);
assertTrue(xml.contains("<update id=\"markProjectDeleted\">"), xml);
assertTrue(xml.contains("status = '5'"), xml);
assertTrue(xml.contains("del_flag = '2'"), xml);
assertTrue(xml.contains("<update id=\"restoreDeletedProject\">"), xml);
assertTrue(xml.contains("status = '1'"), xml);
assertTrue(xml.contains("del_flag = '0'"), xml);
assertTrue(xml.contains("is_archived = 0"), xml);
}
private String extractSelect(String xml, String selectId) {
String start = "<select id=\"" + selectId + "\"";
int startIndex = xml.indexOf(start);
assertTrue(startIndex >= 0, "missing select: " + selectId);
int endIndex = xml.indexOf("</select>", startIndex);
assertTrue(endIndex >= 0, "missing closing select tag: " + selectId);
return xml.substring(startIndex, endIndex);
}
}

View File

@@ -0,0 +1 @@
mock-maker-subclass