test
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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"));
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
mock-maker-subclass
|
||||
Reference in New Issue
Block a user