You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dolphinscheduler.apache.org by we...@apache.org on 2021/08/05 03:05:20 UTC
[dolphinscheduler] branch json_split_two updated:
[Feature][JsonSplit-api] fix TaskInstance api (#5948)
This is an automated email from the ASF dual-hosted git repository.
wenhemin pushed a commit to branch json_split_two
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git
The following commit(s) were added to refs/heads/json_split_two by this push:
new 339d7f4 [Feature][JsonSplit-api] fix TaskInstance api (#5948)
339d7f4 is described below
commit 339d7f4166545598af75b3903982bb2700570d70
Author: JinyLeeChina <42...@users.noreply.github.com>
AuthorDate: Thu Aug 5 11:05:11 2021 +0800
[Feature][JsonSplit-api] fix TaskInstance api (#5948)
* check has cycle of ProcessDefinition
* checkProcessNode of processDefinition
* TaskInstance api
Co-authored-by: JinyLeeChina <29...@qq.com>
---
.../api/controller/TaskInstanceController.java | 18 +++--
.../api/service/TaskInstanceService.java | 28 +++++---
.../api/service/impl/TaskInstanceServiceImpl.java | 54 ++++++++-------
.../api/controller/TaskInstanceControllerTest.java | 9 ++-
.../api/service/TaskInstanceServiceTest.java | 80 ++++++++++++----------
5 files changed, 104 insertions(+), 85 deletions(-)
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/TaskInstanceController.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/TaskInstanceController.java
index 98c7cb8..5aaa915 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/TaskInstanceController.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/TaskInstanceController.java
@@ -55,7 +55,7 @@ import springfox.documentation.annotations.ApiIgnore;
*/
@Api(tags = "TASK_INSTANCE_TAG")
@RestController
-@RequestMapping("/projects/{projectName}/task-instance")
+@RequestMapping("/projects/{projectCode}/task-instance")
public class TaskInstanceController extends BaseController {
@Autowired
@@ -65,7 +65,7 @@ public class TaskInstanceController extends BaseController {
* query task list paging
*
* @param loginUser login user
- * @param projectName project name
+ * @param projectCode project code
* @param processInstanceId process instance id
* @param searchVal search value
* @param taskName task name
@@ -96,7 +96,7 @@ public class TaskInstanceController extends BaseController {
@ApiException(QUERY_TASK_LIST_PAGING_ERROR)
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
public Result queryTaskListPaging(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
- @ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
+ @ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
@RequestParam(value = "processInstanceId", required = false, defaultValue = "0") Integer processInstanceId,
@RequestParam(value = "processInstanceName", required = false) String processInstanceName,
@RequestParam(value = "searchVal", required = false) String searchVal,
@@ -108,15 +108,13 @@ public class TaskInstanceController extends BaseController {
@RequestParam(value = "endDate", required = false) String endTime,
@RequestParam("pageNo") Integer pageNo,
@RequestParam("pageSize") Integer pageSize) {
-
-
Map<String, Object> result = checkPageParams(pageNo, pageSize);
if (result.get(Constants.STATUS) != Status.SUCCESS) {
return returnDataListPaging(result);
}
searchVal = ParameterUtils.handleEscapes(searchVal);
- result = taskInstanceService.queryTaskListPaging(
- loginUser, projectName, processInstanceId, processInstanceName, taskName, executorName, startTime, endTime, searchVal, stateType, host, pageNo, pageSize);
+ result = taskInstanceService.queryTaskListPaging(loginUser, projectCode, processInstanceId, processInstanceName,
+ taskName, executorName, startTime, endTime, searchVal, stateType, host, pageNo, pageSize);
return returnDataListPaging(result);
}
@@ -124,7 +122,7 @@ public class TaskInstanceController extends BaseController {
* change one task instance's state from FAILURE to FORCED_SUCCESS
*
* @param loginUser login user
- * @param projectName project name
+ * @param projectCode project code
* @param taskInstanceId task instance id
* @return the result code and msg
*/
@@ -137,9 +135,9 @@ public class TaskInstanceController extends BaseController {
@ApiException(FORCE_TASK_SUCCESS_ERROR)
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
public Result<Object> forceTaskSuccess(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
- @ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
+ @ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
@RequestParam(value = "taskInstanceId") Integer taskInstanceId) {
- Map<String, Object> result = taskInstanceService.forceTaskSuccess(loginUser, projectName, taskInstanceId);
+ Map<String, Object> result = taskInstanceService.forceTaskSuccess(loginUser, projectCode, taskInstanceId);
return returnDataList(result);
}
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/TaskInstanceService.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/TaskInstanceService.java
index cbbc89b..95737ee 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/TaskInstanceService.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/TaskInstanceService.java
@@ -31,7 +31,7 @@ public interface TaskInstanceService {
* query task list by project, process instance, task name, task start time, task end time, task status, keyword paging
*
* @param loginUser login user
- * @param projectName project name
+ * @param projectCode project code
* @param processInstanceId process instance id
* @param searchVal search value
* @param taskName task name
@@ -43,19 +43,29 @@ public interface TaskInstanceService {
* @param pageSize page size
* @return task list page
*/
- Map<String, Object> queryTaskListPaging(User loginUser, String projectName,
- Integer processInstanceId, String processInstanceName, String taskName, String executorName, String startDate,
- String endDate, String searchVal, ExecutionStatus stateType, String host,
- Integer pageNo, Integer pageSize);
+ Map<String, Object> queryTaskListPaging(User loginUser,
+ long projectCode,
+ Integer processInstanceId,
+ String processInstanceName,
+ String taskName,
+ String executorName,
+ String startDate,
+ String endDate,
+ String searchVal,
+ ExecutionStatus stateType,
+ String host,
+ Integer pageNo,
+ Integer pageSize);
/**
* change one task instance's state from failure to forced success
*
- * @param loginUser login user
- * @param projectName project name
+ * @param loginUser login user
+ * @param projectCode project code
* @param taskInstanceId task instance id
* @return the result code and msg
*/
- Map<String, Object> forceTaskSuccess(User loginUser, String projectName, Integer taskInstanceId);
-
+ Map<String, Object> forceTaskSuccess(User loginUser,
+ long projectCode,
+ Integer taskInstanceId);
}
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskInstanceServiceImpl.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskInstanceServiceImpl.java
index 2afa5b9..1a4cb3f 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskInstanceServiceImpl.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskInstanceServiceImpl.java
@@ -35,7 +35,6 @@ import org.apache.dolphinscheduler.dao.mapper.TaskInstanceMapper;
import org.apache.dolphinscheduler.service.process.ProcessService;
import java.util.Date;
-import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
@@ -75,7 +74,7 @@ public class TaskInstanceServiceImpl extends BaseServiceImpl implements TaskInst
* query task list by project, process instance, task name, task start time, task end time, task status, keyword paging
*
* @param loginUser login user
- * @param projectName project name
+ * @param projectCode project code
* @param processInstanceId process instance id
* @param searchVal search value
* @param taskName task name
@@ -88,17 +87,24 @@ public class TaskInstanceServiceImpl extends BaseServiceImpl implements TaskInst
* @return task list page
*/
@Override
- public Map<String, Object> queryTaskListPaging(User loginUser, String projectName,
- Integer processInstanceId, String processInstanceName, String taskName, String executorName, String startDate,
- String endDate, String searchVal, ExecutionStatus stateType, String host,
- Integer pageNo, Integer pageSize) {
- Map<String, Object> result = new HashMap<>();
- Project project = projectMapper.queryByName(projectName);
-
- Map<String, Object> checkResult = projectService.checkProjectAndAuth(loginUser, project, projectName);
- Status status = (Status) checkResult.get(Constants.STATUS);
- if (status != Status.SUCCESS) {
- return checkResult;
+ public Map<String, Object> queryTaskListPaging(User loginUser,
+ long projectCode,
+ Integer processInstanceId,
+ String processInstanceName,
+ String taskName,
+ String executorName,
+ String startDate,
+ String endDate,
+ String searchVal,
+ ExecutionStatus stateType,
+ String host,
+ Integer pageNo,
+ Integer pageSize) {
+ Project project = projectMapper.queryByCode(projectCode);
+ //check user access for project
+ Map<String, Object> result = projectService.checkProjectAndAuth(loginUser, project, project.getName());
+ if (result.get(Constants.STATUS) != Status.SUCCESS) {
+ return result;
}
int[] statusArray = null;
@@ -118,7 +124,7 @@ public class TaskInstanceServiceImpl extends BaseServiceImpl implements TaskInst
int executorId = usersService.getUserIdByName(executorName);
IPage<TaskInstance> taskInstanceIPage = taskInstanceMapper.queryTaskInstanceListPaging(
- page, project.getCode(), processInstanceId, processInstanceName, searchVal, taskName, executorId, statusArray, host, start, end
+ page, project.getCode(), processInstanceId, processInstanceName, searchVal, taskName, executorId, statusArray, host, start, end
);
Set<String> exclusionSet = new HashSet<>();
exclusionSet.add(Constants.CLASS);
@@ -143,21 +149,18 @@ public class TaskInstanceServiceImpl extends BaseServiceImpl implements TaskInst
/**
* change one task instance's state from failure to forced success
*
- * @param loginUser login user
- * @param projectName project name
+ * @param loginUser login user
+ * @param projectCode project code
* @param taskInstanceId task instance id
* @return the result code and msg
*/
@Override
- public Map<String, Object> forceTaskSuccess(User loginUser, String projectName, Integer taskInstanceId) {
- Map<String, Object> result = new HashMap<>();
- Project project = projectMapper.queryByName(projectName);
-
- // check user auth
- Map<String, Object> checkResult = projectService.checkProjectAndAuth(loginUser, project, projectName);
- Status status = (Status) checkResult.get(Constants.STATUS);
- if (status != Status.SUCCESS) {
- return checkResult;
+ public Map<String, Object> forceTaskSuccess(User loginUser, long projectCode, Integer taskInstanceId) {
+ Project project = projectMapper.queryByCode(projectCode);
+ //check user access for project
+ Map<String, Object> result = projectService.checkProjectAndAuth(loginUser, project, project.getName());
+ if (result.get(Constants.STATUS) != Status.SUCCESS) {
+ return result;
}
// check whether the task instance can be found
@@ -181,7 +184,6 @@ public class TaskInstanceServiceImpl extends BaseServiceImpl implements TaskInst
} else {
putMsg(result, Status.FORCE_TASK_SUCCESS_ERROR);
}
-
return result;
}
}
diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/TaskInstanceControllerTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/TaskInstanceControllerTest.java
index ec47c5e..2c153d5 100644
--- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/TaskInstanceControllerTest.java
+++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/TaskInstanceControllerTest.java
@@ -19,7 +19,7 @@ package org.apache.dolphinscheduler.api.controller;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.when;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
@@ -63,7 +63,6 @@ public class TaskInstanceControllerTest extends AbstractControllerTest {
@Test
public void testQueryTaskListPaging() {
-
Map<String,Object> result = new HashMap<>();
Integer pageNo = 1;
Integer pageSize = 20;
@@ -71,9 +70,9 @@ public class TaskInstanceControllerTest extends AbstractControllerTest {
result.put(Constants.DATA_LIST, pageInfo);
result.put(Constants.STATUS, Status.SUCCESS);
- when(taskInstanceService.queryTaskListPaging(any(), eq(""), eq(1), eq(""), eq(""), eq(""),any(), any(),
+ when(taskInstanceService.queryTaskListPaging(any(), eq(1L), eq(1), eq(""), eq(""), eq(""),any(), any(),
eq(""), Mockito.any(), eq("192.168.xx.xx"), any(), any())).thenReturn(result);
- Result taskResult = taskInstanceController.queryTaskListPaging(null, "", 1, "", "",
+ Result taskResult = taskInstanceController.queryTaskListPaging(null, 1L, 1, "", "",
"", "", ExecutionStatus.SUCCESS,"192.168.xx.xx", "2020-01-01 00:00:00", "2020-01-02 00:00:00",pageNo, pageSize);
Assert.assertEquals(Integer.valueOf(Status.SUCCESS.getCode()), taskResult.getCode());
}
@@ -87,7 +86,7 @@ public class TaskInstanceControllerTest extends AbstractControllerTest {
Map<String, Object> mockResult = new HashMap<>(5);
mockResult.put(Constants.STATUS, Status.SUCCESS);
mockResult.put(Constants.MSG, Status.SUCCESS.getMsg());
- when(taskInstanceService.forceTaskSuccess(any(User.class), anyString(), anyInt())).thenReturn(mockResult);
+ when(taskInstanceService.forceTaskSuccess(any(User.class), anyLong(), anyInt())).thenReturn(mockResult);
MvcResult mvcResult = mockMvc.perform(post("/projects/{projectName}/task-instance/force-success", "cxc_1113")
.header(SESSION_ID, sessionId)
diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TaskInstanceServiceTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TaskInstanceServiceTest.java
index 32de49f..09145a1 100644
--- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TaskInstanceServiceTest.java
+++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TaskInstanceServiceTest.java
@@ -82,29 +82,29 @@ public class TaskInstanceServiceTest {
@Test
public void queryTaskListPaging() {
- String projectName = "project_test1";
+ long projectCode = 1L;
User loginUser = getAdminUser();
+ Project project = getProject(projectCode);
Map<String, Object> result = new HashMap<>();
- putMsg(result, Status.PROJECT_NOT_FOUNT, projectName);
+ putMsg(result, Status.PROJECT_NOT_FOUNT, projectCode);
//project auth fail
- when(projectMapper.queryByName(projectName)).thenReturn(null);
- when(projectService.checkProjectAndAuth(loginUser, null, projectName)).thenReturn(result);
- Map<String, Object> proejctAuthFailRes = taskInstanceService.queryTaskListPaging(loginUser, "project_test1", 0, "", "",
+ when(projectMapper.queryByCode(projectCode)).thenReturn(project);
+ when(projectService.checkProjectAndAuth(loginUser, project, "project_test1")).thenReturn(result);
+ Map<String, Object> projectAuthFailRes = taskInstanceService.queryTaskListPaging(loginUser, projectCode, 0, "", "",
"test_user", "2019-02-26 19:48:00", "2019-02-26 19:48:22", "", null, "", 1, 20);
- Assert.assertEquals(Status.PROJECT_NOT_FOUNT, proejctAuthFailRes.get(Constants.STATUS));
+ Assert.assertEquals(Status.PROJECT_NOT_FOUNT, projectAuthFailRes.get(Constants.STATUS));
// data parameter check
- putMsg(result, Status.SUCCESS, projectName);
- Project project = getProject(projectName);
- when(projectMapper.queryByName(Mockito.anyString())).thenReturn(project);
- when(projectService.checkProjectAndAuth(loginUser, project, projectName)).thenReturn(result);
- Map<String, Object> dataParameterRes = taskInstanceService.queryTaskListPaging(loginUser, projectName, 1, "", "",
+ putMsg(result, Status.SUCCESS, projectCode);
+ when(projectMapper.queryByCode(projectCode)).thenReturn(project);
+ when(projectService.checkProjectAndAuth(loginUser, project, project.getName())).thenReturn(result);
+ Map<String, Object> dataParameterRes = taskInstanceService.queryTaskListPaging(loginUser, projectCode, 1, "", "",
"test_user", "20200101 00:00:00", "2020-01-02 00:00:00", "", ExecutionStatus.SUCCESS, "192.168.xx.xx", 1, 20);
Assert.assertEquals(Status.REQUEST_PARAMS_NOT_VALID_ERROR, dataParameterRes.get(Constants.STATUS));
//project
- putMsg(result, Status.SUCCESS, projectName);
+ putMsg(result, Status.SUCCESS, projectCode);
Date start = DateUtils.getScheduleDate("2020-01-01 00:00:00");
Date end = DateUtils.getScheduleDate("2020-01-02 00:00:00");
ProcessInstance processInstance = getProcessInstance();
@@ -113,8 +113,8 @@ public class TaskInstanceServiceTest {
Page<TaskInstance> pageReturn = new Page<>(1, 10);
taskInstanceList.add(taskInstance);
pageReturn.setRecords(taskInstanceList);
- when(projectMapper.queryByName(Mockito.anyString())).thenReturn(project);
- when(projectService.checkProjectAndAuth(loginUser, project, projectName)).thenReturn(result);
+ when(projectMapper.queryByCode(projectCode)).thenReturn(project);
+ when(projectService.checkProjectAndAuth(loginUser, project, project.getName())).thenReturn(result);
when(usersService.queryUser(loginUser.getId())).thenReturn(loginUser);
when(usersService.getUserIdByName(loginUser.getUserName())).thenReturn(loginUser.getId());
when(taskInstanceMapper.queryTaskInstanceListPaging(Mockito.any(Page.class), eq(project.getCode()), eq(1), eq(""), eq(""), eq(""),
@@ -122,38 +122,38 @@ public class TaskInstanceServiceTest {
when(usersService.queryUser(processInstance.getExecutorId())).thenReturn(loginUser);
when(processService.findProcessInstanceDetailById(taskInstance.getProcessInstanceId())).thenReturn(processInstance);
- Map<String, Object> successRes = taskInstanceService.queryTaskListPaging(loginUser, projectName, 1, "", "",
+ Map<String, Object> successRes = taskInstanceService.queryTaskListPaging(loginUser, projectCode, 1, "", "",
"test_user", "2020-01-01 00:00:00", "2020-01-02 00:00:00", "", ExecutionStatus.SUCCESS, "192.168.xx.xx", 1, 20);
Assert.assertEquals(Status.SUCCESS, successRes.get(Constants.STATUS));
//executor name empty
when(taskInstanceMapper.queryTaskInstanceListPaging(Mockito.any(Page.class), eq(project.getCode()), eq(1), eq(""), eq(""), eq(""),
eq(0), Mockito.any(), eq("192.168.xx.xx"), eq(start), eq(end))).thenReturn(pageReturn);
- Map<String, Object> executorEmptyRes = taskInstanceService.queryTaskListPaging(loginUser, projectName, 1, "", "",
+ Map<String, Object> executorEmptyRes = taskInstanceService.queryTaskListPaging(loginUser, projectCode, 1, "", "",
"", "2020-01-01 00:00:00", "2020-01-02 00:00:00", "", ExecutionStatus.SUCCESS, "192.168.xx.xx", 1, 20);
Assert.assertEquals(Status.SUCCESS, executorEmptyRes.get(Constants.STATUS));
//executor null
when(usersService.queryUser(loginUser.getId())).thenReturn(null);
when(usersService.getUserIdByName(loginUser.getUserName())).thenReturn(-1);
- Map<String, Object> executorNullRes = taskInstanceService.queryTaskListPaging(loginUser, projectName, 1, "", "",
+ Map<String, Object> executorNullRes = taskInstanceService.queryTaskListPaging(loginUser, projectCode, 1, "", "",
"test_user", "2020-01-01 00:00:00", "2020-01-02 00:00:00", "", ExecutionStatus.SUCCESS, "192.168.xx.xx", 1, 20);
Assert.assertEquals(Status.SUCCESS, executorNullRes.get(Constants.STATUS));
//start/end date null
when(taskInstanceMapper.queryTaskInstanceListPaging(Mockito.any(Page.class), eq(project.getCode()), eq(1), eq(""), eq(""), eq(""),
eq(0), Mockito.any(), eq("192.168.xx.xx"), any(), any())).thenReturn(pageReturn);
- Map<String, Object> executorNullDateRes = taskInstanceService.queryTaskListPaging(loginUser, projectName, 1, "", "",
+ Map<String, Object> executorNullDateRes = taskInstanceService.queryTaskListPaging(loginUser, projectCode, 1, "", "",
"", null, null, "", ExecutionStatus.SUCCESS, "192.168.xx.xx", 1, 20);
Assert.assertEquals(Status.SUCCESS, executorNullDateRes.get(Constants.STATUS));
//start date error format
when(taskInstanceMapper.queryTaskInstanceListPaging(Mockito.any(Page.class), eq(project.getCode()), eq(1), eq(""), eq(""), eq(""),
eq(0), Mockito.any(), eq("192.168.xx.xx"), any(), any())).thenReturn(pageReturn);
- Map<String, Object> executorErrorStartDateRes = taskInstanceService.queryTaskListPaging(loginUser, projectName, 1, "", "",
+ Map<String, Object> executorErrorStartDateRes = taskInstanceService.queryTaskListPaging(loginUser, projectCode, 1, "", "",
"", "error date", null, "", ExecutionStatus.SUCCESS, "192.168.xx.xx", 1, 20);
Assert.assertEquals(Status.REQUEST_PARAMS_NOT_VALID_ERROR, executorErrorStartDateRes.get(Constants.STATUS));
- Map<String, Object> executorErrorEndDateRes = taskInstanceService.queryTaskListPaging(loginUser, projectName, 1, "", "",
+ Map<String, Object> executorErrorEndDateRes = taskInstanceService.queryTaskListPaging(loginUser, projectCode, 1, "", "",
"", null, "error date", "", ExecutionStatus.SUCCESS, "192.168.xx.xx", 1, 20);
Assert.assertEquals(Status.REQUEST_PARAMS_NOT_VALID_ERROR, executorErrorEndDateRes.get(Constants.STATUS));
}
@@ -174,14 +174,14 @@ public class TaskInstanceServiceTest {
/**
* get mock Project
*
- * @param projectName projectName
+ * @param projectCode projectCode
* @return Project
*/
- private Project getProject(String projectName) {
+ private Project getProject(long projectCode) {
Project project = new Project();
- project.setCode(1L);
+ project.setCode(projectCode);
project.setId(1);
- project.setName(projectName);
+ project.setName("project_test1");
project.setUserId(1);
return project;
}
@@ -228,44 +228,54 @@ public class TaskInstanceServiceTest {
@Test
public void forceTaskSuccess() {
User user = getAdminUser();
- String projectName = "test";
- Project project = getProject(projectName);
+ long projectCode = 1L;
+ Project project = getProject(projectCode);
int taskId = 1;
TaskInstance task = getTaskInstance();
Map<String, Object> mockSuccess = new HashMap<>(5);
putMsg(mockSuccess, Status.SUCCESS);
- when(projectMapper.queryByName(projectName)).thenReturn(project);
+ when(projectMapper.queryByCode(projectCode)).thenReturn(project);
// user auth failed
Map<String, Object> mockFailure = new HashMap<>(5);
- putMsg(mockFailure, Status.USER_NO_OPERATION_PROJECT_PERM, user.getUserName(), projectName);
- when(projectService.checkProjectAndAuth(user, project, projectName)).thenReturn(mockFailure);
- Map<String, Object> authFailRes = taskInstanceService.forceTaskSuccess(user, projectName, taskId);
+ putMsg(mockFailure, Status.USER_NO_OPERATION_PROJECT_PERM, user.getUserName(), projectCode);
+ when(projectService.checkProjectAndAuth(user, project, project.getName())).thenReturn(mockFailure);
+ Map<String, Object> authFailRes = taskInstanceService.forceTaskSuccess(user, projectCode, taskId);
Assert.assertNotSame(Status.SUCCESS, authFailRes.get(Constants.STATUS));
// test task not found
- when(projectService.checkProjectAndAuth(user, project, projectName)).thenReturn(mockSuccess);
+ when(projectService.checkProjectAndAuth(user, project, project.getName())).thenReturn(mockSuccess);
when(taskInstanceMapper.selectById(Mockito.anyInt())).thenReturn(null);
- Map<String, Object> taskNotFoundRes = taskInstanceService.forceTaskSuccess(user, projectName, taskId);
+ Map<String, Object> taskNotFoundRes = taskInstanceService.forceTaskSuccess(user, projectCode, taskId);
Assert.assertEquals(Status.TASK_INSTANCE_NOT_FOUND, taskNotFoundRes.get(Constants.STATUS));
// test task instance state error
task.setState(ExecutionStatus.SUCCESS);
when(taskInstanceMapper.selectById(1)).thenReturn(task);
- Map<String, Object> taskStateErrorRes = taskInstanceService.forceTaskSuccess(user, projectName, taskId);
+ Map<String, Object> result = new HashMap<>();
+ putMsg(result, Status.SUCCESS, projectCode);
+ when(projectMapper.queryByCode(projectCode)).thenReturn(project);
+ when(projectService.checkProjectAndAuth(user, project, project.getName())).thenReturn(result);
+ Map<String, Object> taskStateErrorRes = taskInstanceService.forceTaskSuccess(user, projectCode, taskId);
Assert.assertEquals(Status.TASK_INSTANCE_STATE_OPERATION_ERROR, taskStateErrorRes.get(Constants.STATUS));
// test error
task.setState(ExecutionStatus.FAILURE);
when(taskInstanceMapper.updateById(task)).thenReturn(0);
- Map<String, Object> errorRes = taskInstanceService.forceTaskSuccess(user, projectName, taskId);
+ putMsg(result, Status.SUCCESS, projectCode);
+ when(projectMapper.queryByCode(projectCode)).thenReturn(project);
+ when(projectService.checkProjectAndAuth(user, project, project.getName())).thenReturn(result);
+ Map<String, Object> errorRes = taskInstanceService.forceTaskSuccess(user, projectCode, taskId);
Assert.assertEquals(Status.FORCE_TASK_SUCCESS_ERROR, errorRes.get(Constants.STATUS));
// test success
task.setState(ExecutionStatus.FAILURE);
when(taskInstanceMapper.updateById(task)).thenReturn(1);
- Map<String, Object> successRes = taskInstanceService.forceTaskSuccess(user, projectName, taskId);
+ putMsg(result, Status.SUCCESS, projectCode);
+ when(projectMapper.queryByCode(projectCode)).thenReturn(project);
+ when(projectService.checkProjectAndAuth(user, project, project.getName())).thenReturn(result);
+ Map<String, Object> successRes = taskInstanceService.forceTaskSuccess(user, projectCode, taskId);
Assert.assertEquals(Status.SUCCESS, successRes.get(Constants.STATUS));
}
}
\ No newline at end of file