fix(用例管理): 修复关联第三方需求全选失效问题
--bug=1036165 --user=郭雨琦 https://www.tapd.cn/55049933/bugtrace/bugs/view/1155049933001036165
This commit is contained in:
parent
3795b45ceb
commit
fad9764753
|
@ -22,6 +22,11 @@ public class FunctionalCaseDemandBatchRequest extends BaseFunctionalCaseBatchDTO
|
||||||
@NotBlank(message = "{functional_case_demand.demand_platform.not_blank}")
|
@NotBlank(message = "{functional_case_demand.demand_platform.not_blank}")
|
||||||
private String demandPlatform;
|
private String demandPlatform;
|
||||||
|
|
||||||
@Schema(description = "需求集合")
|
@Schema(description = "需求集合(全选时可为空)")
|
||||||
private List<DemandDTO> demandList;
|
private List<DemandDTO> demandList;
|
||||||
|
|
||||||
|
@Schema(description = "全选需求时的过滤条件")
|
||||||
|
private FunctionalDemandBatchRequest functionalDemandBatchRequest;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,4 +28,8 @@ public class FunctionalCaseDemandRequest {
|
||||||
|
|
||||||
@Schema(description = "需求集合")
|
@Schema(description = "需求集合")
|
||||||
private List<DemandDTO> demandList;
|
private List<DemandDTO> demandList;
|
||||||
|
|
||||||
|
@Schema(description = "全选需求时的过滤条件")
|
||||||
|
private FunctionalDemandBatchRequest functionalDemandBatchRequest;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
package io.metersphere.functional.request;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author guoyuqi
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class FunctionalDemandBatchRequest{
|
||||||
|
|
||||||
|
@Schema(description = "关键字")
|
||||||
|
private String keyword;
|
||||||
|
|
||||||
|
@Schema(description = "取消勾选的需求ID(关联全选需求时传参)")
|
||||||
|
List<String> excludeIds = new ArrayList<>();
|
||||||
|
|
||||||
|
@Schema(description = "是否选择所有(关联全选需求时传参)")
|
||||||
|
private boolean selectAll;
|
||||||
|
}
|
|
@ -1,5 +1,6 @@
|
||||||
package io.metersphere.functional.service;
|
package io.metersphere.functional.service;
|
||||||
|
|
||||||
|
import io.metersphere.functional.domain.FunctionalCase;
|
||||||
import io.metersphere.functional.domain.FunctionalCaseDemand;
|
import io.metersphere.functional.domain.FunctionalCaseDemand;
|
||||||
import io.metersphere.functional.domain.FunctionalCaseDemandExample;
|
import io.metersphere.functional.domain.FunctionalCaseDemandExample;
|
||||||
import io.metersphere.functional.dto.DemandDTO;
|
import io.metersphere.functional.dto.DemandDTO;
|
||||||
|
@ -7,10 +8,8 @@ import io.metersphere.functional.dto.FunctionalDemandDTO;
|
||||||
import io.metersphere.functional.mapper.ExtFunctionalCaseDemandMapper;
|
import io.metersphere.functional.mapper.ExtFunctionalCaseDemandMapper;
|
||||||
import io.metersphere.functional.mapper.ExtFunctionalCaseMapper;
|
import io.metersphere.functional.mapper.ExtFunctionalCaseMapper;
|
||||||
import io.metersphere.functional.mapper.FunctionalCaseDemandMapper;
|
import io.metersphere.functional.mapper.FunctionalCaseDemandMapper;
|
||||||
import io.metersphere.functional.request.FunctionalCaseDemandBatchRequest;
|
import io.metersphere.functional.mapper.FunctionalCaseMapper;
|
||||||
import io.metersphere.functional.request.FunctionalCaseDemandRequest;
|
import io.metersphere.functional.request.*;
|
||||||
import io.metersphere.functional.request.FunctionalThirdDemandPageRequest;
|
|
||||||
import io.metersphere.functional.request.QueryDemandListRequest;
|
|
||||||
import io.metersphere.plugin.platform.dto.reponse.PlatformDemandDTO;
|
import io.metersphere.plugin.platform.dto.reponse.PlatformDemandDTO;
|
||||||
import io.metersphere.plugin.platform.dto.request.DemandPageRequest;
|
import io.metersphere.plugin.platform.dto.request.DemandPageRequest;
|
||||||
import io.metersphere.plugin.platform.spi.Platform;
|
import io.metersphere.plugin.platform.spi.Platform;
|
||||||
|
@ -32,7 +31,9 @@ import org.mybatis.spring.SqlSessionUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -54,6 +55,8 @@ public class FunctionalCaseDemandService {
|
||||||
private ProjectApplicationService projectApplicationService;
|
private ProjectApplicationService projectApplicationService;
|
||||||
@Resource
|
@Resource
|
||||||
private ExtFunctionalCaseMapper extFunctionalCaseMapper;
|
private ExtFunctionalCaseMapper extFunctionalCaseMapper;
|
||||||
|
@Resource
|
||||||
|
private FunctionalCaseMapper functionalCaseMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取需求列表
|
* 获取需求列表
|
||||||
|
@ -120,10 +123,10 @@ public class FunctionalCaseDemandService {
|
||||||
String demandId = functionalDemandDTO.getDemandId();
|
String demandId = functionalDemandDTO.getDemandId();
|
||||||
//当前数据例是否有父亲的这个数据,有,就把当前这个map数据放入父亲下(相同平台的)
|
//当前数据例是否有父亲的这个数据,有,就把当前这个map数据放入父亲下(相同平台的)
|
||||||
List<FunctionalDemandDTO> list = new ArrayList<>();
|
List<FunctionalDemandDTO> list = new ArrayList<>();
|
||||||
if (parentNotMatchedMap.get(demandId)!=null) {
|
if (parentNotMatchedMap.get(demandId) != null) {
|
||||||
list= parentNotMatchedMap.get(demandId).stream().filter(t -> StringUtils.equalsIgnoreCase(t.getDemandPlatform(), functionalDemandDTO.getDemandPlatform())).toList();
|
list = parentNotMatchedMap.get(demandId).stream().filter(t -> StringUtils.equalsIgnoreCase(t.getDemandPlatform(), functionalDemandDTO.getDemandPlatform())).toList();
|
||||||
}
|
}
|
||||||
if(CollectionUtils.isEmpty(list)) {
|
if (CollectionUtils.isEmpty(list)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
delChild(functionalDemandDTO, list, parentNotMatchedMap, copyFunctionalDemandDTOS);
|
delChild(functionalDemandDTO, list, parentNotMatchedMap, copyFunctionalDemandDTOS);
|
||||||
|
@ -156,10 +159,10 @@ public class FunctionalCaseDemandService {
|
||||||
}
|
}
|
||||||
for (FunctionalDemandDTO demandDTO : list) {
|
for (FunctionalDemandDTO demandDTO : list) {
|
||||||
String demandId1 = demandDTO.getDemandId();
|
String demandId1 = demandDTO.getDemandId();
|
||||||
if (parentNotMatchedMap.get(demandId1)!=null){
|
if (parentNotMatchedMap.get(demandId1) != null) {
|
||||||
List<FunctionalDemandDTO> list1 = parentNotMatchedMap.get(demandId1).stream().filter(t -> StringUtils.equalsIgnoreCase(t.getDemandPlatform(), functionalDemandDTO.getDemandPlatform())).toList();
|
List<FunctionalDemandDTO> list1 = parentNotMatchedMap.get(demandId1).stream().filter(t -> StringUtils.equalsIgnoreCase(t.getDemandPlatform(), functionalDemandDTO.getDemandPlatform())).toList();
|
||||||
demandDTO.setChildren(list1);
|
demandDTO.setChildren(list1);
|
||||||
delChild(demandDTO,list1, parentNotMatchedMap, copyFunctionalDemandDTOS);
|
delChild(demandDTO, list1, parentNotMatchedMap, copyFunctionalDemandDTOS);
|
||||||
}
|
}
|
||||||
copyFunctionalDemandDTOS.remove(demandDTO);
|
copyFunctionalDemandDTOS.remove(demandDTO);
|
||||||
}
|
}
|
||||||
|
@ -172,13 +175,15 @@ public class FunctionalCaseDemandService {
|
||||||
* @param userId 当前操作人
|
* @param userId 当前操作人
|
||||||
*/
|
*/
|
||||||
public void addDemand(FunctionalCaseDemandRequest request, String userId) {
|
public void addDemand(FunctionalCaseDemandRequest request, String userId) {
|
||||||
if (checkDemandList(request.getDemandList())) return;
|
FunctionalCase functionalCase = functionalCaseMapper.selectByPrimaryKey(request.getCaseId());
|
||||||
|
List<DemandDTO> demandDTOList = doSelectDemandList(request.getFunctionalDemandBatchRequest(), request.getDemandList(), functionalCase.getProjectId());
|
||||||
|
if (checkDemandList(demandDTOList)) return;
|
||||||
FunctionalCaseDemandExample functionalCaseDemandExample = new FunctionalCaseDemandExample();
|
FunctionalCaseDemandExample functionalCaseDemandExample = new FunctionalCaseDemandExample();
|
||||||
functionalCaseDemandExample.createCriteria().andCaseIdEqualTo(request.getCaseId()).andDemandPlatformEqualTo(request.getDemandPlatform());
|
functionalCaseDemandExample.createCriteria().andCaseIdEqualTo(request.getCaseId()).andDemandPlatformEqualTo(request.getDemandPlatform());
|
||||||
List<FunctionalCaseDemand> existDemands = functionalCaseDemandMapper.selectByExample(functionalCaseDemandExample);
|
List<FunctionalCaseDemand> existDemands = functionalCaseDemandMapper.selectByExample(functionalCaseDemandExample);
|
||||||
try (SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH)){
|
try (SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH)) {
|
||||||
FunctionalCaseDemandMapper functionalCaseDemandMapper = sqlSession.getMapper(FunctionalCaseDemandMapper.class);
|
FunctionalCaseDemandMapper functionalCaseDemandMapper = sqlSession.getMapper(FunctionalCaseDemandMapper.class);
|
||||||
for (DemandDTO demandDTO : request.getDemandList()) {
|
for (DemandDTO demandDTO : demandDTOList) {
|
||||||
FunctionalCaseDemand functionalCaseDemand = buildFunctionalCaseDemand(request.getCaseId(), request.getDemandPlatform(), userId, demandDTO);
|
FunctionalCaseDemand functionalCaseDemand = buildFunctionalCaseDemand(request.getCaseId(), request.getDemandPlatform(), userId, demandDTO);
|
||||||
List<FunctionalCaseDemand> list = existDemands.stream().filter(t -> StringUtils.equalsIgnoreCase(t.getDemandId(), functionalCaseDemand.getDemandId()) && StringUtils.equalsIgnoreCase(t.getParent(), functionalCaseDemand.getParent())
|
List<FunctionalCaseDemand> list = existDemands.stream().filter(t -> StringUtils.equalsIgnoreCase(t.getDemandId(), functionalCaseDemand.getDemandId()) && StringUtils.equalsIgnoreCase(t.getParent(), functionalCaseDemand.getParent())
|
||||||
&& StringUtils.equalsIgnoreCase(t.getDemandName(), functionalCaseDemand.getDemandName()) && StringUtils.equalsIgnoreCase(t.getDemandUrl(), functionalCaseDemand.getDemandUrl())).toList();
|
&& StringUtils.equalsIgnoreCase(t.getDemandName(), functionalCaseDemand.getDemandName()) && StringUtils.equalsIgnoreCase(t.getDemandUrl(), functionalCaseDemand.getDemandUrl())).toList();
|
||||||
|
@ -283,18 +288,19 @@ public class FunctionalCaseDemandService {
|
||||||
* @param userId 当前操作人
|
* @param userId 当前操作人
|
||||||
*/
|
*/
|
||||||
public void batchRelevance(FunctionalCaseDemandBatchRequest request, String userId) {
|
public void batchRelevance(FunctionalCaseDemandBatchRequest request, String userId) {
|
||||||
if (checkDemandList(request.getDemandList())) return;
|
List<DemandDTO> demandDTOList = doSelectDemandList(request.getFunctionalDemandBatchRequest(), request.getDemandList(), request.getProjectId());
|
||||||
|
if (checkDemandList(demandDTOList)) return;
|
||||||
List<String> caseIds = doSelectIds(request, request.getProjectId());
|
List<String> caseIds = doSelectIds(request, request.getProjectId());
|
||||||
SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH);
|
SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH);
|
||||||
FunctionalCaseDemandMapper functionalCaseDemandMapper = sqlSession.getMapper(FunctionalCaseDemandMapper.class);
|
FunctionalCaseDemandMapper functionalCaseDemandMapper = sqlSession.getMapper(FunctionalCaseDemandMapper.class);
|
||||||
List<String> demandIds = request.getDemandList().stream().map(DemandDTO::getDemandId).toList();
|
List<String> demandIds = demandDTOList.stream().map(DemandDTO::getDemandId).toList();
|
||||||
String demandPlatform = request.getDemandPlatform();
|
String demandPlatform = request.getDemandPlatform();
|
||||||
//查询当前平台所有已关联的需求
|
//查询当前平台所有已关联的需求
|
||||||
FunctionalCaseDemandExample functionalCaseDemandExample = new FunctionalCaseDemandExample();
|
FunctionalCaseDemandExample functionalCaseDemandExample = new FunctionalCaseDemandExample();
|
||||||
functionalCaseDemandExample.createCriteria().andDemandPlatformEqualTo(demandPlatform);
|
functionalCaseDemandExample.createCriteria().andDemandPlatformEqualTo(demandPlatform);
|
||||||
List<FunctionalCaseDemand> existPlatformDemands = functionalCaseDemandMapper.selectByExample(functionalCaseDemandExample);
|
List<FunctionalCaseDemand> existPlatformDemands = functionalCaseDemandMapper.selectByExample(functionalCaseDemandExample);
|
||||||
Map<String, List<FunctionalCaseDemand>> caseDemandMap = existPlatformDemands.stream().collect(Collectors.groupingBy(FunctionalCaseDemand::getCaseId));
|
Map<String, List<FunctionalCaseDemand>> caseDemandMap = existPlatformDemands.stream().collect(Collectors.groupingBy(FunctionalCaseDemand::getCaseId));
|
||||||
Map<String, DemandDTO> demandDTOMap = request.getDemandList().stream().collect(Collectors.toMap(DemandDTO::getDemandId, t -> t));
|
Map<String, DemandDTO> demandDTOMap = demandDTOList.stream().collect(Collectors.toMap(DemandDTO::getDemandId, t -> t));
|
||||||
caseIds.forEach(t -> {
|
caseIds.forEach(t -> {
|
||||||
List<String> existDemandIds = new ArrayList<>();
|
List<String> existDemandIds = new ArrayList<>();
|
||||||
List<FunctionalCaseDemand> functionalCaseDemands = caseDemandMap.get(t);
|
List<FunctionalCaseDemand> functionalCaseDemands = caseDemandMap.get(t);
|
||||||
|
@ -314,6 +320,43 @@ public class FunctionalCaseDemandService {
|
||||||
SqlSessionUtils.closeSqlSession(sqlSession, sqlSessionFactory);
|
SqlSessionUtils.closeSqlSession(sqlSession, sqlSessionFactory);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<DemandDTO> doSelectDemandList(FunctionalDemandBatchRequest functionalDemandBatchRequest, List<DemandDTO> demandList, String projectId) {
|
||||||
|
if (functionalDemandBatchRequest != null && functionalDemandBatchRequest.isSelectAll()) {
|
||||||
|
DemandPageRequest demandPageRequest = new DemandPageRequest();
|
||||||
|
demandPageRequest.setQuery(functionalDemandBatchRequest.getKeyword());
|
||||||
|
demandPageRequest.setSelectAll(functionalDemandBatchRequest.isSelectAll());
|
||||||
|
demandPageRequest.setExcludeIds(functionalDemandBatchRequest.getExcludeIds());
|
||||||
|
demandPageRequest.setProjectConfig(projectApplicationService.getProjectDemandThirdPartConfig(projectId));
|
||||||
|
Platform platform = projectApplicationService.getPlatform(projectId, false);
|
||||||
|
PluginPager<PlatformDemandDTO> platformDemandDTOPluginPager = platform.pageDemand(demandPageRequest);
|
||||||
|
return getDemandDTOS(platformDemandDTOPluginPager);
|
||||||
|
} else {
|
||||||
|
return demandList;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<DemandDTO> getDemandDTOS(PluginPager<PlatformDemandDTO> platformDemandDTOPluginPager) {
|
||||||
|
if (platformDemandDTOPluginPager.getData()!=null) {
|
||||||
|
List<PlatformDemandDTO.Demand> list = platformDemandDTOPluginPager.getData().getList();
|
||||||
|
List<DemandDTO> demandDTOList = new ArrayList<>();
|
||||||
|
setDemandDTOList(list, demandDTOList);
|
||||||
|
return demandDTOList;
|
||||||
|
} else {
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDemandDTOList(List<PlatformDemandDTO.Demand> list, List<DemandDTO> demandDTOList) {
|
||||||
|
for (PlatformDemandDTO.Demand demand : list) {
|
||||||
|
DemandDTO demandDTO = new DemandDTO();
|
||||||
|
BeanUtils.copyBean(demand, demandDTO);
|
||||||
|
if (CollectionUtils.isNotEmpty(demand.getChildren())) {
|
||||||
|
setDemandDTOList(demand.getChildren(), demandDTOList);
|
||||||
|
}
|
||||||
|
demandDTOList.add(demandDTO);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public <T> List<String> doSelectIds(T dto, String projectId) {
|
public <T> List<String> doSelectIds(T dto, String projectId) {
|
||||||
FunctionalCaseDemandBatchRequest request = (FunctionalCaseDemandBatchRequest) dto;
|
FunctionalCaseDemandBatchRequest request = (FunctionalCaseDemandBatchRequest) dto;
|
||||||
if (request.isSelectAll()) {
|
if (request.isSelectAll()) {
|
||||||
|
|
|
@ -5,10 +5,8 @@ import io.metersphere.functional.domain.FunctionalCaseDemandExample;
|
||||||
import io.metersphere.functional.dto.DemandDTO;
|
import io.metersphere.functional.dto.DemandDTO;
|
||||||
import io.metersphere.functional.dto.FunctionalDemandDTO;
|
import io.metersphere.functional.dto.FunctionalDemandDTO;
|
||||||
import io.metersphere.functional.mapper.FunctionalCaseDemandMapper;
|
import io.metersphere.functional.mapper.FunctionalCaseDemandMapper;
|
||||||
import io.metersphere.functional.request.FunctionalCaseDemandBatchRequest;
|
import io.metersphere.functional.request.*;
|
||||||
import io.metersphere.functional.request.FunctionalCaseDemandRequest;
|
import io.metersphere.functional.service.FunctionalCaseDemandService;
|
||||||
import io.metersphere.functional.request.FunctionalThirdDemandPageRequest;
|
|
||||||
import io.metersphere.functional.request.QueryDemandListRequest;
|
|
||||||
import io.metersphere.plugin.platform.dto.reponse.PlatformDemandDTO;
|
import io.metersphere.plugin.platform.dto.reponse.PlatformDemandDTO;
|
||||||
import io.metersphere.plugin.platform.utils.PluginPager;
|
import io.metersphere.plugin.platform.utils.PluginPager;
|
||||||
import io.metersphere.sdk.constants.SessionConstants;
|
import io.metersphere.sdk.constants.SessionConstants;
|
||||||
|
@ -25,6 +23,7 @@ import io.metersphere.system.mapper.SystemParameterMapper;
|
||||||
import io.metersphere.system.utils.Pager;
|
import io.metersphere.system.utils.Pager;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.junit.jupiter.api.*;
|
import org.junit.jupiter.api.*;
|
||||||
import org.mockserver.client.MockServerClient;
|
import org.mockserver.client.MockServerClient;
|
||||||
|
@ -37,7 +36,6 @@ import org.springframework.test.context.jdbc.Sql;
|
||||||
import org.springframework.test.context.jdbc.SqlConfig;
|
import org.springframework.test.context.jdbc.SqlConfig;
|
||||||
import org.springframework.test.web.servlet.MvcResult;
|
import org.springframework.test.web.servlet.MvcResult;
|
||||||
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
|
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
|
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -55,6 +53,8 @@ public class FunctionalCaseDemandControllerTests extends BaseTest {
|
||||||
@Resource
|
@Resource
|
||||||
private FunctionalCaseDemandMapper functionalCaseDemandMapper;
|
private FunctionalCaseDemandMapper functionalCaseDemandMapper;
|
||||||
@Resource
|
@Resource
|
||||||
|
private FunctionalCaseDemandService functionalCaseDemandService;
|
||||||
|
@Resource
|
||||||
private OperationLogMapper operationLogMapper;
|
private OperationLogMapper operationLogMapper;
|
||||||
@Resource
|
@Resource
|
||||||
private SystemParameterMapper systemParameterMapper;
|
private SystemParameterMapper systemParameterMapper;
|
||||||
|
@ -80,6 +80,24 @@ public class FunctionalCaseDemandControllerTests extends BaseTest {
|
||||||
@Order(1)
|
@Order(1)
|
||||||
@Sql(scripts = {"/dml/init_case_demand.sql"}, config = @SqlConfig(encoding = "utf-8", transactionMode = SqlConfig.TransactionMode.ISOLATED))
|
@Sql(scripts = {"/dml/init_case_demand.sql"}, config = @SqlConfig(encoding = "utf-8", transactionMode = SqlConfig.TransactionMode.ISOLATED))
|
||||||
public void addDemandSuccess() throws Exception {
|
public void addDemandSuccess() throws Exception {
|
||||||
|
basePluginTestService.addJiraPlugin();
|
||||||
|
basePluginTestService.addServiceIntegration(DEFAULT_ORGANIZATION_ID);
|
||||||
|
mockServerClient
|
||||||
|
.when(
|
||||||
|
request()
|
||||||
|
.withMethod("GET")
|
||||||
|
.withPath("/rest/api/2/search"))
|
||||||
|
.respond(
|
||||||
|
response()
|
||||||
|
.withStatusCode(200)
|
||||||
|
.withHeaders(
|
||||||
|
new Header("Content-Type", "application/json; charset=utf-8"),
|
||||||
|
new Header("Cache-Control", "public, max-age=86400"))
|
||||||
|
.withBody("{\"id\":\"123456\",\"name\":\"test\"}")
|
||||||
|
|
||||||
|
);
|
||||||
|
FunctionalDemandBatchRequest functionalDemandBatchRequest = new FunctionalDemandBatchRequest();
|
||||||
|
functionalDemandBatchRequest.setSelectAll(false);
|
||||||
FunctionalCaseDemandRequest functionalCaseDemandRequest = new FunctionalCaseDemandRequest();
|
FunctionalCaseDemandRequest functionalCaseDemandRequest = new FunctionalCaseDemandRequest();
|
||||||
functionalCaseDemandRequest.setCaseId("DEMAND_TEST_FUNCTIONAL_CASE_ID");
|
functionalCaseDemandRequest.setCaseId("DEMAND_TEST_FUNCTIONAL_CASE_ID");
|
||||||
functionalCaseDemandRequest.setDemandPlatform("Metersphere");
|
functionalCaseDemandRequest.setDemandPlatform("Metersphere");
|
||||||
|
@ -124,6 +142,38 @@ public class FunctionalCaseDemandControllerTests extends BaseTest {
|
||||||
functionalCaseDemandExample.createCriteria().andCaseIdEqualTo("DEMAND_TEST_FUNCTIONAL_CASE_ID").andDemandNameLike("%手动加入孩子超长名字%");
|
functionalCaseDemandExample.createCriteria().andCaseIdEqualTo("DEMAND_TEST_FUNCTIONAL_CASE_ID").andDemandNameLike("%手动加入孩子超长名字%");
|
||||||
functionalCaseDemands = functionalCaseDemandMapper.selectByExample(functionalCaseDemandExample);
|
functionalCaseDemands = functionalCaseDemandMapper.selectByExample(functionalCaseDemandExample);
|
||||||
Assertions.assertFalse(functionalCaseDemands.isEmpty());
|
Assertions.assertFalse(functionalCaseDemands.isEmpty());
|
||||||
|
|
||||||
|
functionalCaseDemandRequest = new FunctionalCaseDemandRequest();
|
||||||
|
functionalCaseDemandRequest.setFunctionalDemandBatchRequest(functionalDemandBatchRequest);
|
||||||
|
functionalCaseDemandRequest.setCaseId("DEMAND_TEST_FUNCTIONAL_CASE_ID5");
|
||||||
|
functionalCaseDemandRequest.setDemandPlatform("Metersphere");
|
||||||
|
functionalDemandBatchRequest.setSelectAll(true);
|
||||||
|
functionalCaseDemandRequest.setFunctionalDemandBatchRequest(functionalDemandBatchRequest);
|
||||||
|
this.requestPostWithOkAndReturn(URL_DEMAND_ADD, functionalCaseDemandRequest);
|
||||||
|
|
||||||
|
PluginPager<PlatformDemandDTO> platformDemandDTOPluginPager = new PluginPager<>();
|
||||||
|
platformDemandDTOPluginPager.setCurrent(1);
|
||||||
|
platformDemandDTOPluginPager.setPageSize(500);
|
||||||
|
platformDemandDTOPluginPager.setTotal(1);
|
||||||
|
PlatformDemandDTO platformDemandDTO = new PlatformDemandDTO();
|
||||||
|
platformDemandDTO.setCustomHeaders(new ArrayList<>());
|
||||||
|
List<PlatformDemandDTO.Demand> demands = new ArrayList<>();
|
||||||
|
PlatformDemandDTO.Demand demand = new PlatformDemandDTO.Demand();
|
||||||
|
demand.setDemandUrl("https://www.baidu.com/");
|
||||||
|
demand.setDemandId("10233");
|
||||||
|
demand.setDemandName("白度需求");
|
||||||
|
List<PlatformDemandDTO.Demand> children = new ArrayList<>();
|
||||||
|
PlatformDemandDTO.Demand child = new PlatformDemandDTO.Demand();
|
||||||
|
child.setDemandUrl("https://www.baidu.com/");
|
||||||
|
child.setDemandId("10234");
|
||||||
|
child.setDemandName("白度需求");
|
||||||
|
child.setParent("10233");
|
||||||
|
children.add(child);
|
||||||
|
demand.setChildren(children);
|
||||||
|
demands.add(demand);
|
||||||
|
platformDemandDTO.setList(demands);
|
||||||
|
platformDemandDTOPluginPager.setData(platformDemandDTO);
|
||||||
|
functionalCaseDemandService.getDemandDTOS(platformDemandDTOPluginPager);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -505,6 +555,16 @@ public class FunctionalCaseDemandControllerTests extends BaseTest {
|
||||||
System.out.println(jsonString);
|
System.out.println(jsonString);
|
||||||
functionalCaseDemandBatchRequest.setDemandList(new ArrayList<>());
|
functionalCaseDemandBatchRequest.setDemandList(new ArrayList<>());
|
||||||
this.requestPostWithOkAndReturn(URL_DEMAND_BATCH_RELEVANCE, functionalCaseDemandBatchRequest);
|
this.requestPostWithOkAndReturn(URL_DEMAND_BATCH_RELEVANCE, functionalCaseDemandBatchRequest);
|
||||||
|
|
||||||
|
functionalCaseDemandBatchRequest = new FunctionalCaseDemandBatchRequest();
|
||||||
|
functionalCaseDemandBatchRequest.setSelectAll(true);
|
||||||
|
functionalCaseDemandBatchRequest.setProjectId("gyq_project-case-demand-test");
|
||||||
|
functionalCaseDemandBatchRequest.setDemandPlatform("jira");
|
||||||
|
FunctionalDemandBatchRequest functionalDemandBatchRequest = new FunctionalDemandBatchRequest();
|
||||||
|
functionalDemandBatchRequest.setSelectAll(true);
|
||||||
|
functionalCaseDemandBatchRequest.setFunctionalDemandBatchRequest(functionalDemandBatchRequest);
|
||||||
|
this.requestPostWithOkAndReturn(URL_DEMAND_BATCH_RELEVANCE, functionalCaseDemandBatchRequest);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -589,22 +649,6 @@ public class FunctionalCaseDemandControllerTests extends BaseTest {
|
||||||
@Test
|
@Test
|
||||||
@Order(15)
|
@Order(15)
|
||||||
public void pageDemandSuccess() throws Exception {
|
public void pageDemandSuccess() throws Exception {
|
||||||
basePluginTestService.addJiraPlugin();
|
|
||||||
basePluginTestService.addServiceIntegration(DEFAULT_ORGANIZATION_ID);
|
|
||||||
mockServerClient
|
|
||||||
.when(
|
|
||||||
request()
|
|
||||||
.withMethod("GET")
|
|
||||||
.withPath("/rest/api/2/search"))
|
|
||||||
.respond(
|
|
||||||
response()
|
|
||||||
.withStatusCode(200)
|
|
||||||
.withHeaders(
|
|
||||||
new Header("Content-Type", "application/json; charset=utf-8"),
|
|
||||||
new Header("Cache-Control", "public, max-age=86400"))
|
|
||||||
.withBody("{\"id\":\"123456\",\"name\":\"test\"}")
|
|
||||||
|
|
||||||
);
|
|
||||||
FunctionalThirdDemandPageRequest functionalThirdDemandPageRequest = new FunctionalThirdDemandPageRequest();
|
FunctionalThirdDemandPageRequest functionalThirdDemandPageRequest = new FunctionalThirdDemandPageRequest();
|
||||||
functionalThirdDemandPageRequest.setProjectId("gyq_project-case-demand-test");
|
functionalThirdDemandPageRequest.setProjectId("gyq_project-case-demand-test");
|
||||||
functionalThirdDemandPageRequest.setPageSize(10);
|
functionalThirdDemandPageRequest.setPageSize(10);
|
||||||
|
|
|
@ -22,6 +22,10 @@ VALUES ('DEMAND_TEST_FUNCTIONAL_CASE_ID3', 1, 'DEMAND_TEST_MODULE_ID', 'project-
|
||||||
INSERT INTO functional_case(id, num, module_id, project_id, template_id, name, review_status, tags, case_edit_type, pos, version_id, ref_id, last_execute_result, deleted, public_case, latest, create_user, update_user, delete_user, create_time, update_time, delete_time)
|
INSERT INTO functional_case(id, num, module_id, project_id, template_id, name, review_status, tags, case_edit_type, pos, version_id, ref_id, last_execute_result, deleted, public_case, latest, create_user, update_user, delete_user, create_time, update_time, delete_time)
|
||||||
VALUES ('DEMAND_TEST_FUNCTIONAL_CASE_ID4', 1, 'DEMAND_TEST_MODULE_ID', 'project-case-demand-test', '100001', '关联需求测试', 'UN_REVIEWED', NULL, 'STEP', 0, 'v1.0.0', 'DEMAND_TEST_FUNCTIONAL_CASE_ID4', 'UN_EXECUTED', false, b'0', b'1', 'gyq', 'gyq', '', 1698058347559, 1698058347559, NULL);
|
VALUES ('DEMAND_TEST_FUNCTIONAL_CASE_ID4', 1, 'DEMAND_TEST_MODULE_ID', 'project-case-demand-test', '100001', '关联需求测试', 'UN_REVIEWED', NULL, 'STEP', 0, 'v1.0.0', 'DEMAND_TEST_FUNCTIONAL_CASE_ID4', 'UN_EXECUTED', false, b'0', b'1', 'gyq', 'gyq', '', 1698058347559, 1698058347559, NULL);
|
||||||
|
|
||||||
|
|
||||||
|
INSERT INTO functional_case(id, num, module_id, project_id, template_id, name, review_status, tags, case_edit_type, pos, version_id, ref_id, last_execute_result, deleted, public_case, latest, create_user, update_user, delete_user, create_time, update_time, delete_time)
|
||||||
|
VALUES ('DEMAND_TEST_FUNCTIONAL_CASE_ID5', 1, 'DEMAND_TEST_MODULE_ID', 'gyq_project-case-demand-test', '100001', '关联需求测试', 'UN_REVIEWED', NULL, 'STEP', 0, 'v1.0.0', 'DEMAND_TEST_FUNCTIONAL_CASE_ID5', 'UN_EXECUTED', false, b'0', b'1', 'gyq', 'gyq', '', 1698058347559, 1698058347559, NULL);
|
||||||
|
|
||||||
INSERT INTO functional_case_custom_field(case_id, field_id, value) VALUES ('DEMAND_TEST_FUNCTIONAL_CASE_ID', 'gyq_custom_id_demand1', '22');
|
INSERT INTO functional_case_custom_field(case_id, field_id, value) VALUES ('DEMAND_TEST_FUNCTIONAL_CASE_ID', 'gyq_custom_id_demand1', '22');
|
||||||
INSERT INTO functional_case_custom_field(case_id, field_id, value) VALUES ('DEMAND_TEST_FUNCTIONAL_CASE_ID', 'gyq_custom_id_demand2', '33');
|
INSERT INTO functional_case_custom_field(case_id, field_id, value) VALUES ('DEMAND_TEST_FUNCTIONAL_CASE_ID', 'gyq_custom_id_demand2', '33');
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue