This is an automated email from the ASF dual-hosted git repository.
ruanwenjun pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git
The following commit(s) were added to refs/heads/dev by this push:
new 9c5808c34c [Chore][API] Remove deprecated
ProjectService#checkProjectAndAuth (#18218)
9c5808c34c is described below
commit 9c5808c34c5477e0e309fc4d4c362f2832c70544
Author: Wenjun Ruan <[email protected]>
AuthorDate: Thu May 7 22:03:16 2026 +0800
[Chore][API] Remove deprecated ProjectService#checkProjectAndAuth (#18218)
Migrate all internal callers to checkProjectAndAuthThrowException and drop
the two @Deprecated overloads (Map-returning and Result-mutating) along
with the unused private getCheckResult helper. Tests are updated to mock
the new throwing API via doThrow / doNothing and assert exceptions
instead of inspecting result-map status codes. Permission failures now
flow through ApiExceptionHandler, preserving the wire format.
---
.../api/service/ProjectService.java | 27 ---
.../api/service/impl/ProjectServiceImpl.java | 77 +-------
.../api/service/impl/SchedulerServiceImpl.java | 7 +-
.../service/impl/TaskDefinitionServiceImpl.java | 39 ++---
.../api/service/impl/TaskInstanceServiceImpl.java | 17 +-
.../impl/WorkflowDefinitionServiceImpl.java | 111 ++++--------
.../service/impl/WorkflowInstanceServiceImpl.java | 50 ++----
.../api/service/ProjectServiceTest.java | 19 +-
.../api/service/TaskDefinitionServiceImplTest.java | 21 +--
.../api/service/TaskInstanceServiceTest.java | 3 +-
.../api/service/WorkflowDefinitionServiceTest.java | 193 ++++++++-------------
.../api/service/WorkflowInstanceServiceTest.java | 132 +++++---------
12 files changed, 206 insertions(+), 490 deletions(-)
diff --git
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/ProjectService.java
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/ProjectService.java
index 643c8e6dd1..fbf72cccef 100644
---
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/ProjectService.java
+++
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/ProjectService.java
@@ -54,19 +54,6 @@ public interface ProjectService {
*/
Map<String, Object> queryByName(User loginUser, String projectName);
- /**
- * check project and authorization
- *
- * @param loginUser login user
- * @param project project
- * @param projectCode project code
- * @param perm String
- * @return true if the login user have permission to see the project
- * @deprecated use {@link #checkProjectAndAuthThrowException(User, Long,
String)} instead
- */
- @Deprecated
- Map<String, Object> checkProjectAndAuth(User loginUser, Project project,
long projectCode, String perm);
-
void checkProjectAndAuthThrowException(User loginUser, Project project,
String permission) throws ServiceException;
void checkProjectAndAuthThrowException(User loginUser, Long projectCode,
String permission) throws ServiceException;
@@ -195,20 +182,6 @@ public interface ProjectService {
*/
Result queryProjectCreatedAndAuthorizedByUser(User loginUser);
- /**
- * check project and authorization
- *
- * @param result result
- * @param loginUser login user
- * @param project project
- * @param projectCode project code
- * @param perm String
- * @return true if the login user have permission to see the project
- * @deprecated use {@link #checkProjectAndAuthThrowException(User, Long,
String)} instead
- */
- @Deprecated
- void checkProjectAndAuth(Result result, User loginUser, Project project,
long projectCode, String perm);
-
/**
* the project list in dependent node's permissions should not be
restricted
* @return project list
diff --git
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProjectServiceImpl.java
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProjectServiceImpl.java
index af97e5474e..1625b6e603 100644
---
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProjectServiceImpl.java
+++
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProjectServiceImpl.java
@@ -192,34 +192,6 @@ public class ProjectServiceImpl extends BaseServiceImpl
implements ProjectServic
return result;
}
- /**
- * check project and authorization
- *
- * @param loginUser login user
- * @param project project
- * @param projectCode project code
- * @return true if the login user have permission to see the project
- */
- @Deprecated
- @Override
- public Map<String, Object> checkProjectAndAuth(User loginUser, Project
project, long projectCode,
- String permission) {
- Map<String, Object> result = new HashMap<>();
- if (project == null) {
- log.error("Project does not exist, projectCode:{}.", projectCode);
- putMsg(result, Status.PROJECT_NOT_EXIST);
- } else if (!canOperatorPermissions(loginUser, new
Object[]{project.getId()}, AuthorizationType.PROJECTS,
- permission)) {
- // check read permission
- log.error("User does not have {} permission to operate project,
userName:{}, projectCode:{}.",
- permission, loginUser.getUserName(), projectCode);
- putMsg(result, Status.USER_NO_OPERATION_PROJECT_PERM,
loginUser.getUserName(), projectCode);
- } else {
- putMsg(result, Status.SUCCESS);
- }
- return result;
- }
-
public void checkProjectAndAuthThrowException(@NonNull User loginUser,
@Nullable Project project,
String permission) {
// todo: throw a permission exception
@@ -478,12 +450,7 @@ public class ProjectServiceImpl extends BaseServiceImpl
implements ProjectServic
return result;
}
- checkProjectAndAuth(result, loginUser, project, project == null ? 0L :
project.getCode(), PROJECT_DELETE);
- if (result.getCode() != Status.SUCCESS.getCode()) {
- return result;
- }
-
- assert project != null;
+ checkProjectAndAuthThrowException(loginUser, project, PROJECT_DELETE);
List<WorkflowDefinition> workflowDefinitionList =
workflowDefinitionMapper.queryAllDefinitionList(project.getCode());
@@ -508,23 +475,6 @@ public class ProjectServiceImpl extends BaseServiceImpl
implements ProjectServic
return result;
}
- /**
- * get check result
- *
- * @param loginUser login user
- * @param project project
- * @return check result
- */
- private Map<String, Object> getCheckResult(User loginUser, Project
project, String perm) {
- Map<String, Object> checkResult =
- checkProjectAndAuth(loginUser, project, project == null ? 0L :
project.getCode(), perm);
- Status status = (Status) checkResult.get(Constants.STATUS);
- if (status != Status.SUCCESS) {
- return checkResult;
- }
- return null;
- }
-
/**
* updateWorkflowInstance project
*
@@ -811,31 +761,6 @@ public class ProjectServiceImpl extends BaseServiceImpl
implements ProjectServic
return result;
}
- /**
- * check project and authorization
- *
- * @param result result
- * @param loginUser login user
- * @param project project
- * @param projectCode project code
- * @return true if the login user have permission to see the project
- */
- @Deprecated
- @Override
- public void checkProjectAndAuth(Result result, User loginUser, Project
project, long projectCode,
- String permission) {
- if (project == null) {
- log.error("Project does not exist, project code:{}.", projectCode);
- putMsg(result, Status.PROJECT_NOT_EXIST);
- } else if (!canOperatorPermissions(loginUser, new
Object[]{project.getId()}, AuthorizationType.PROJECTS,
- permission)) {
- // check read permission
- putMsg(result, Status.USER_NO_OPERATION_PROJECT_PERM,
loginUser.getUserName(), projectCode);
- } else {
- putMsg(result, Status.SUCCESS);
- }
- }
-
/**
* query all project for dependent node
*
diff --git
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/SchedulerServiceImpl.java
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/SchedulerServiceImpl.java
index e43863f509..fc073e79a3 100644
---
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/SchedulerServiceImpl.java
+++
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/SchedulerServiceImpl.java
@@ -483,10 +483,9 @@ public class SchedulerServiceImpl extends BaseServiceImpl
implements SchedulerSe
long
environmentCode) {
Project project = projectMapper.queryByCode(projectCode);
// check user access for project
- Map<String, Object> result =
projectService.checkProjectAndAuth(loginUser, project, projectCode, null);
- if (result.get(Constants.STATUS) != Status.SUCCESS) {
- return result;
- }
+ projectService.checkProjectAndAuthThrowException(loginUser, project,
null);
+
+ Map<String, Object> result = new HashMap<>();
// check schedule exists
Schedule schedule =
scheduleMapper.queryByWorkflowDefinitionCode(workflowDefinitionCode);
if (schedule == null) {
diff --git
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskDefinitionServiceImpl.java
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskDefinitionServiceImpl.java
index 3f00b19489..6512338c53 100644
---
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskDefinitionServiceImpl.java
+++
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskDefinitionServiceImpl.java
@@ -134,12 +134,9 @@ public class TaskDefinitionServiceImpl extends
BaseServiceImpl implements TaskDe
String taskName) {
Project project = projectMapper.queryByCode(projectCode);
// check user access for project
- Map<String, Object> result =
- projectService.checkProjectAndAuth(loginUser, project,
projectCode, TASK_DEFINITION);
- if (result.get(Constants.STATUS) != Status.SUCCESS) {
- return result;
- }
+ projectService.checkProjectAndAuthThrowException(loginUser, project,
TASK_DEFINITION);
+ Map<String, Object> result = new HashMap<>();
TaskDefinition taskDefinition =
taskDefinitionMapper.queryByName(project.getCode(),
workflowDefinitionCode, taskName);
if (taskDefinition == null) {
@@ -526,11 +523,9 @@ public class TaskDefinitionServiceImpl extends
BaseServiceImpl implements TaskDe
public Map<String, Object> switchVersion(User loginUser, long projectCode,
long taskCode, int version) {
Project project = projectMapper.queryByCode(projectCode);
// check user access for project
- Map<String, Object> result =
- projectService.checkProjectAndAuth(loginUser, project,
projectCode, WORKFLOW_SWITCH_TO_THIS_VERSION);
- if (result.get(Constants.STATUS) != Status.SUCCESS) {
- return result;
- }
+ projectService.checkProjectAndAuthThrowException(loginUser, project,
WORKFLOW_SWITCH_TO_THIS_VERSION);
+
+ Map<String, Object> result = new HashMap<>();
if (processService.isTaskOnline(taskCode)) {
log.warn(
"Task definition version can not be switched due to
workflow definition is {}, taskDefinitionCode:{}.",
@@ -584,13 +579,8 @@ public class TaskDefinitionServiceImpl extends
BaseServiceImpl implements TaskDe
Result result = new Result();
Project project = projectMapper.queryByCode(projectCode);
// check user access for project
- Map<String, Object> checkResult =
- projectService.checkProjectAndAuth(loginUser, project,
projectCode, TASK_VERSION_VIEW);
- Status resultStatus = (Status) checkResult.get(Constants.STATUS);
- if (resultStatus != Status.SUCCESS) {
- putMsg(result, resultStatus);
- return result;
- }
+ projectService.checkProjectAndAuthThrowException(loginUser, project,
TASK_VERSION_VIEW);
+
PageInfo<TaskDefinitionLog> pageInfo = new PageInfo<>(pageNo,
pageSize);
Page<TaskDefinitionLog> page = new Page<>(pageNo, pageSize);
IPage<TaskDefinitionLog> taskDefinitionVersionsPaging =
@@ -645,12 +635,9 @@ public class TaskDefinitionServiceImpl extends
BaseServiceImpl implements TaskDe
public Map<String, Object> queryTaskDefinitionDetail(User loginUser, long
projectCode, long taskCode) {
Project project = projectMapper.queryByCode(projectCode);
// check user access for project
- Map<String, Object> result =
- projectService.checkProjectAndAuth(loginUser, project,
projectCode, TASK_DEFINITION);
- if (result.get(Constants.STATUS) != Status.SUCCESS) {
- return result;
- }
+ projectService.checkProjectAndAuthThrowException(loginUser, project,
TASK_DEFINITION);
+ Map<String, Object> result = new HashMap<>();
TaskDefinition taskDefinition =
taskDefinitionMapper.queryByCode(taskCode);
if (taskDefinition == null || projectCode !=
taskDefinition.getProjectCode()) {
log.error("Task definition does not exist,
taskDefinitionCode:{}.", taskCode);
@@ -705,11 +692,9 @@ public class TaskDefinitionServiceImpl extends
BaseServiceImpl implements TaskDe
ReleaseState
releaseState) {
Project project = projectMapper.queryByCode(projectCode);
// check user access for project
- Map<String, Object> result =
projectService.checkProjectAndAuth(loginUser, project, projectCode, null);
- Status resultStatus = (Status) result.get(Constants.STATUS);
- if (resultStatus != Status.SUCCESS) {
- return result;
- }
+ projectService.checkProjectAndAuthThrowException(loginUser, project,
null);
+
+ Map<String, Object> result = new HashMap<>();
if (null == releaseState) {
putMsg(result, Status.REQUEST_PARAMS_NOT_VALID_ERROR,
Constants.RELEASE_STATE);
return result;
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 b5abbc86a6..1090df775e 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
@@ -28,7 +28,6 @@ import
org.apache.dolphinscheduler.api.service.TaskInstanceService;
import org.apache.dolphinscheduler.api.service.UsersService;
import org.apache.dolphinscheduler.api.utils.PageInfo;
import org.apache.dolphinscheduler.api.utils.Result;
-import org.apache.dolphinscheduler.common.constants.Constants;
import org.apache.dolphinscheduler.common.enums.TaskExecuteType;
import org.apache.dolphinscheduler.common.utils.DateUtils;
import org.apache.dolphinscheduler.dao.entity.Project;
@@ -241,13 +240,7 @@ public class TaskInstanceServiceImpl extends
BaseServiceImpl implements TaskInst
Project project = projectMapper.queryByCode(projectCode);
// check user access for project
- Map<String, Object> checkResult =
- projectService.checkProjectAndAuth(loginUser, project,
projectCode, FORCED_SUCCESS);
- Status status = (Status) checkResult.get(Constants.STATUS);
- if (status != Status.SUCCESS) {
- putMsg(result, status);
- return result;
- }
+ projectService.checkProjectAndAuthThrowException(loginUser, project,
FORCED_SUCCESS);
TaskInstance taskInstance =
taskInstanceMapper.selectById(taskInstanceId);
if (taskInstance == null) {
@@ -271,13 +264,7 @@ public class TaskInstanceServiceImpl extends
BaseServiceImpl implements TaskInst
Project project = projectMapper.queryByCode(projectCode);
// check user access for project
- Map<String, Object> checkResult =
- projectService.checkProjectAndAuth(loginUser, project,
projectCode, FORCED_SUCCESS);
- Status status = (Status) checkResult.get(Constants.STATUS);
- if (status != Status.SUCCESS) {
- putMsg(result, status);
- return result;
- }
+ projectService.checkProjectAndAuthThrowException(loginUser, project,
FORCED_SUCCESS);
TaskInstance taskInstance =
taskInstanceMapper.selectById(taskInstanceId);
if (taskInstance == null) {
diff --git
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowDefinitionServiceImpl.java
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowDefinitionServiceImpl.java
index 4ff7110e42..981ec94bbc 100644
---
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowDefinitionServiceImpl.java
+++
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowDefinitionServiceImpl.java
@@ -457,11 +457,9 @@ public class WorkflowDefinitionServiceImpl extends
BaseServiceImpl implements Wo
public Map<String, Object> queryWorkflowDefinitionList(User loginUser,
long projectCode) {
Project project = projectMapper.queryByCode(projectCode);
// check user access for project
- Map<String, Object> result =
- projectService.checkProjectAndAuth(loginUser, project,
projectCode, WORKFLOW_DEFINITION);
- if (result.get(Constants.STATUS) != Status.SUCCESS) {
- return result;
- }
+ projectService.checkProjectAndAuthThrowException(loginUser, project,
WORKFLOW_DEFINITION);
+
+ Map<String, Object> result = new HashMap<>();
List<WorkflowDefinition> resourceList =
workflowDefinitionMapper.queryAllDefinitionList(projectCode);
List<DagData> dagDataList =
resourceList.stream().map(processService::genDagData).collect(Collectors.toList());
result.put(Constants.DATA_LIST, dagDataList);
@@ -480,11 +478,9 @@ public class WorkflowDefinitionServiceImpl extends
BaseServiceImpl implements Wo
public Map<String, Object> queryWorkflowDefinitionSimpleList(User
loginUser, long projectCode) {
Project project = projectMapper.queryByCode(projectCode);
// check user access for project
- Map<String, Object> result =
- projectService.checkProjectAndAuth(loginUser, project,
projectCode, WORKFLOW_DEFINITION);
- if (result.get(Constants.STATUS) != Status.SUCCESS) {
- return result;
- }
+ projectService.checkProjectAndAuthThrowException(loginUser, project,
WORKFLOW_DEFINITION);
+
+ Map<String, Object> result = new HashMap<>();
List<WorkflowDefinition> workflowDefinitions =
workflowDefinitionMapper.queryAllDefinitionList(projectCode);
ArrayNode arrayNode = JSONUtils.createArrayNode();
for (WorkflowDefinition workflowDefinition : workflowDefinitions) {
@@ -568,12 +564,9 @@ public class WorkflowDefinitionServiceImpl extends
BaseServiceImpl implements Wo
public Map<String, Object> queryWorkflowDefinitionByCode(User loginUser,
long projectCode, long code) {
Project project = projectMapper.queryByCode(projectCode);
// check user access for project
- Map<String, Object> result =
- projectService.checkProjectAndAuth(loginUser, project,
projectCode, WORKFLOW_DEFINITION);
- if (result.get(Constants.STATUS) != Status.SUCCESS) {
- return result;
- }
+ projectService.checkProjectAndAuthThrowException(loginUser, project,
WORKFLOW_DEFINITION);
+ Map<String, Object> result = new HashMap<>();
WorkflowDefinition workflowDefinition =
workflowDefinitionMapper.queryByCode(code);
if (workflowDefinition == null || projectCode !=
workflowDefinition.getProjectCode()) {
log.error("workflow definition does not exist,
workflowDefinitionCode:{}.", code);
@@ -609,11 +602,9 @@ public class WorkflowDefinitionServiceImpl extends
BaseServiceImpl implements Wo
public Map<String, Object> queryWorkflowDefinitionByName(User loginUser,
long projectCode, String name) {
Project project = projectMapper.queryByCode(projectCode);
// check user access for project
- Map<String, Object> result =
- projectService.checkProjectAndAuth(loginUser, project,
projectCode, WORKFLOW_DEFINITION);
- if (result.get(Constants.STATUS) != Status.SUCCESS) {
- return result;
- }
+ projectService.checkProjectAndAuthThrowException(loginUser, project,
WORKFLOW_DEFINITION);
+
+ Map<String, Object> result = new HashMap<>();
WorkflowDefinition workflowDefinition =
workflowDefinitionMapper.queryByDefineName(projectCode, name);
if (workflowDefinition == null) {
@@ -836,11 +827,9 @@ public class WorkflowDefinitionServiceImpl extends
BaseServiceImpl implements Wo
long
workflowDefinitionCode) {
Project project = projectMapper.queryByCode(projectCode);
// check user access for project
- Map<String, Object> result =
- projectService.checkProjectAndAuth(loginUser, project,
projectCode, WORKFLOW_CREATE);
- if (result.get(Constants.STATUS) != Status.SUCCESS) {
- return result;
- }
+ projectService.checkProjectAndAuthThrowException(loginUser, project,
WORKFLOW_CREATE);
+
+ Map<String, Object> result = new HashMap<>();
WorkflowDefinition workflowDefinition =
workflowDefinitionMapper.verifyByDefineName(project.getCode(),
name.trim());
if (workflowDefinition == null) {
@@ -1050,10 +1039,9 @@ public class WorkflowDefinitionServiceImpl extends
BaseServiceImpl implements Wo
public Map<String, Object> getTaskNodeListByDefinitionCode(User loginUser,
long projectCode, long code) {
Project project = projectMapper.queryByCode(projectCode);
// check user access for project
- Map<String, Object> result =
projectService.checkProjectAndAuth(loginUser, project, projectCode, null);
- if (result.get(Constants.STATUS) != Status.SUCCESS) {
- return result;
- }
+ projectService.checkProjectAndAuthThrowException(loginUser, project,
null);
+
+ Map<String, Object> result = new HashMap<>();
WorkflowDefinition workflowDefinition =
workflowDefinitionMapper.queryByCode(code);
if (workflowDefinition == null || projectCode !=
workflowDefinition.getProjectCode()) {
log.error("workflow definition does not exist,
workflowDefinitionCode:{}.", code);
@@ -1079,11 +1067,9 @@ public class WorkflowDefinitionServiceImpl extends
BaseServiceImpl implements Wo
public Map<String, Object> getNodeListMapByDefinitionCodes(User loginUser,
long projectCode, String codes) {
Project project = projectMapper.queryByCode(projectCode);
// check user access for project
- Map<String, Object> result =
projectService.checkProjectAndAuth(loginUser, project, projectCode, null);
- if (result.get(Constants.STATUS) != Status.SUCCESS) {
- return result;
- }
+ projectService.checkProjectAndAuthThrowException(loginUser, project,
null);
+ Map<String, Object> result = new HashMap<>();
Set<Long> defineCodeSet =
Lists.newArrayList(codes.split(Constants.COMMA)).stream().map(Long::parseLong)
.collect(Collectors.toSet());
List<WorkflowDefinition> workflowDefinitionList =
workflowDefinitionMapper.queryByCodes(defineCodeSet);
@@ -1131,11 +1117,9 @@ public class WorkflowDefinitionServiceImpl extends
BaseServiceImpl implements Wo
public Map<String, Object> queryAllWorkflowDefinitionByProjectCode(User
loginUser, long projectCode) {
Project project = projectMapper.queryByCode(projectCode);
// check user access for project
- Map<String, Object> result =
- projectService.checkProjectAndAuth(loginUser, project,
projectCode, WORKFLOW_DEFINITION);
- if (result.get(Constants.STATUS) != Status.SUCCESS) {
- return result;
- }
+ projectService.checkProjectAndAuthThrowException(loginUser, project,
WORKFLOW_DEFINITION);
+
+ Map<String, Object> result = new HashMap<>();
List<WorkflowDefinition> workflowDefinitions =
workflowDefinitionMapper.queryAllDefinitionList(projectCode);
List<DagData> dagDataList =
workflowDefinitions.stream().map(processService::genDagData).collect(Collectors.toList());
@@ -1208,10 +1192,8 @@ public class WorkflowDefinitionServiceImpl extends
BaseServiceImpl implements Wo
Map<String, Object> result = new HashMap<>();
Project project = projectMapper.queryByCode(projectCode);
// check user access for project
- result = projectService.checkProjectAndAuth(loginUser, project,
projectCode, WORKFLOW_TREE_VIEW);
- if (result.get(Constants.STATUS) != Status.SUCCESS) {
- return result;
- }
+ projectService.checkProjectAndAuthThrowException(loginUser, project,
WORKFLOW_TREE_VIEW);
+
WorkflowDefinition workflowDefinition =
workflowDefinitionMapper.queryByCode(code);
if (null == workflowDefinition || projectCode !=
workflowDefinition.getProjectCode()) {
log.error("workflow definition does not exist, code:{}.", code);
@@ -1377,9 +1359,6 @@ public class WorkflowDefinitionServiceImpl extends
BaseServiceImpl implements Wo
String codes,
long
targetProjectCode) {
Map<String, Object> result = checkParams(loginUser, projectCode,
codes, targetProjectCode, WORKFLOW_BATCH_COPY);
- if (result.get(Constants.STATUS) != Status.SUCCESS) {
- return result;
- }
List<String> failedWorkflowList = new ArrayList<>();
doBatchOperateWorkflowDefinition(loginUser, targetProjectCode,
failedWorkflowList, codes, result, true);
checkBatchOperateResult(projectCode, targetProjectCode, result,
failedWorkflowList, true);
@@ -1403,9 +1382,6 @@ public class WorkflowDefinitionServiceImpl extends
BaseServiceImpl implements Wo
long
targetProjectCode) {
Map<String, Object> result =
checkParams(loginUser, projectCode, codes, targetProjectCode,
TASK_DEFINITION_MOVE);
- if (result.get(Constants.STATUS) != Status.SUCCESS) {
- return result;
- }
if (projectCode == targetProjectCode) {
log.warn("Project code is same as target project code,
projectCode:{}.", projectCode);
return result;
@@ -1423,26 +1399,20 @@ public class WorkflowDefinitionServiceImpl extends
BaseServiceImpl implements Wo
long targetProjectCode, String
perm) {
Project project = projectMapper.queryByCode(projectCode);
// check user access for project
- Map<String, Object> result =
projectService.checkProjectAndAuth(loginUser, project, projectCode, perm);
- if (result.get(Constants.STATUS) != Status.SUCCESS) {
- return result;
- }
+ projectService.checkProjectAndAuthThrowException(loginUser, project,
perm);
if (StringUtils.isEmpty(workflowDefinitionCodes)) {
log.error("Parameter workflowDefinitionCodes is empty, projectCode
is {}.", projectCode);
- putMsg(result, Status.WORKFLOW_DEFINITION_CODES_IS_EMPTY,
workflowDefinitionCodes);
- return result;
+ throw new
ServiceException(Status.WORKFLOW_DEFINITION_CODES_IS_EMPTY);
}
if (projectCode != targetProjectCode) {
Project targetProject =
projectMapper.queryByCode(targetProjectCode);
// check user access for project
- Map<String, Object> targetResult =
- projectService.checkProjectAndAuth(loginUser,
targetProject, targetProjectCode, perm);
- if (targetResult.get(Constants.STATUS) != Status.SUCCESS) {
- return targetResult;
- }
+ projectService.checkProjectAndAuthThrowException(loginUser,
targetProject, perm);
}
+ Map<String, Object> result = new HashMap<>();
+ putMsg(result, Status.SUCCESS);
return result;
}
@@ -1701,12 +1671,9 @@ public class WorkflowDefinitionServiceImpl extends
BaseServiceImpl implements Wo
int version) {
Project project = projectMapper.queryByCode(projectCode);
// check user access for project
- Map<String, Object> result =
- projectService.checkProjectAndAuth(loginUser, project,
projectCode, WORKFLOW_SWITCH_TO_THIS_VERSION);
- if (result.get(Constants.STATUS) != Status.SUCCESS) {
- return result;
- }
+ projectService.checkProjectAndAuthThrowException(loginUser, project,
WORKFLOW_SWITCH_TO_THIS_VERSION);
+ Map<String, Object> result = new HashMap<>();
WorkflowDefinition workflowDefinition =
workflowDefinitionMapper.queryByCode(code);
if (Objects.isNull(workflowDefinition) || projectCode !=
workflowDefinition.getProjectCode()) {
log.error(
@@ -1824,13 +1791,8 @@ public class WorkflowDefinitionServiceImpl extends
BaseServiceImpl implements Wo
Result result = new Result();
Project project = projectMapper.queryByCode(projectCode);
// check user access for project
- Map<String, Object> checkResult =
- projectService.checkProjectAndAuth(loginUser, project,
projectCode, VERSION_LIST);
- Status resultStatus = (Status) checkResult.get(Constants.STATUS);
- if (resultStatus != Status.SUCCESS) {
- putMsg(result, resultStatus);
- return result;
- }
+ projectService.checkProjectAndAuthThrowException(loginUser, project,
VERSION_LIST);
+
PageInfo<WorkflowDefinitionLog> pageInfo = new PageInfo<>(pageNo,
pageSize);
Page<WorkflowDefinitionLog> page = new Page<>(pageNo, pageSize);
IPage<WorkflowDefinitionLog> workflowDefinitionLogIPage =
@@ -1939,12 +1901,9 @@ public class WorkflowDefinitionServiceImpl extends
BaseServiceImpl implements Wo
Project project = projectMapper.queryByCode(projectCode);
// check user access for project
- Map<String, Object> result =
- projectService.checkProjectAndAuth(loginUser, project,
projectCode, WORKFLOW_DEFINITION);
- if (result.get(Constants.STATUS) != Status.SUCCESS) {
- return result;
- }
+ projectService.checkProjectAndAuthThrowException(loginUser, project,
WORKFLOW_DEFINITION);
+ Map<String, Object> result = new HashMap<>();
WorkflowDefinition workflowDefinition =
workflowDefinitionMapper.queryByCode(code);
if (Objects.isNull(workflowDefinition) || projectCode !=
workflowDefinition.getProjectCode()) {
diff --git
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowInstanceServiceImpl.java
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowInstanceServiceImpl.java
index 362e340414..6e5ed60d09 100644
---
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowInstanceServiceImpl.java
+++
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowInstanceServiceImpl.java
@@ -185,13 +185,9 @@ public class WorkflowInstanceServiceImpl extends
BaseServiceImpl implements Work
String
startTime, String endTime) {
Project project = projectMapper.queryByCode(projectCode);
// check user access for project
- Map<String, Object> result =
- projectService.checkProjectAndAuth(loginUser, project,
projectCode,
- WORKFLOW_INSTANCE);
- if (result.get(Constants.STATUS) != Status.SUCCESS) {
- return result;
- }
+ projectService.checkProjectAndAuthThrowException(loginUser, project,
WORKFLOW_INSTANCE);
+ Map<String, Object> result = new HashMap<>();
if (0 > size) {
putMsg(result, Status.NEGTIVE_SIZE_NUMBER_ERROR, size);
return result;
@@ -234,12 +230,9 @@ public class WorkflowInstanceServiceImpl extends
BaseServiceImpl implements Work
public Map<String, Object> queryWorkflowInstanceById(User loginUser, long
projectCode, Integer workflowInstanceId) {
Project project = projectMapper.queryByCode(projectCode);
// check user access for project
- Map<String, Object> result =
- projectService.checkProjectAndAuth(loginUser, project,
projectCode,
- WORKFLOW_INSTANCE);
- if (result.get(Constants.STATUS) != Status.SUCCESS) {
- return result;
- }
+ projectService.checkProjectAndAuthThrowException(loginUser, project,
WORKFLOW_INSTANCE);
+
+ Map<String, Object> result = new HashMap<>();
WorkflowInstance workflowInstance =
processService.findWorkflowInstanceDetailById(workflowInstanceId)
.orElseThrow(() -> new
ServiceException(WORKFLOW_INSTANCE_NOT_EXIST, workflowInstanceId));
@@ -356,12 +349,9 @@ public class WorkflowInstanceServiceImpl extends
BaseServiceImpl implements Work
Integer
workflowInstanceId) {
Project project = projectMapper.queryByCode(projectCode);
// check user access for project
- Map<String, Object> result =
- projectService.checkProjectAndAuth(loginUser, project,
projectCode,
- WORKFLOW_INSTANCE);
- if (result.get(Constants.STATUS) != Status.SUCCESS) {
- return result;
- }
+ projectService.checkProjectAndAuthThrowException(loginUser, project,
WORKFLOW_INSTANCE);
+
+ Map<String, Object> result = new HashMap<>();
WorkflowInstance workflowInstance =
processService.findWorkflowInstanceDetailById(workflowInstanceId)
.orElseThrow(() -> new
ServiceException(WORKFLOW_INSTANCE_NOT_EXIST, workflowInstanceId));
WorkflowDefinition workflowDefinition =
@@ -479,13 +469,9 @@ public class WorkflowInstanceServiceImpl extends
BaseServiceImpl implements Work
public Map<String, Object> querySubWorkflowInstanceByTaskId(User
loginUser, long projectCode, Integer taskId) {
Project project = projectMapper.queryByCode(projectCode);
// check user access for project
- Map<String, Object> result =
- projectService.checkProjectAndAuth(loginUser, project,
projectCode,
- WORKFLOW_INSTANCE);
- if (result.get(Constants.STATUS) != Status.SUCCESS) {
- return result;
- }
+ projectService.checkProjectAndAuthThrowException(loginUser, project,
WORKFLOW_INSTANCE);
+ Map<String, Object> result = new HashMap<>();
TaskInstance taskInstance = taskInstanceDao.queryById(taskId);
if (taskInstance == null) {
log.error("Task instance does not exist, projectCode:{},
taskInstanceId{}.", projectCode, taskId);
@@ -689,13 +675,9 @@ public class WorkflowInstanceServiceImpl extends
BaseServiceImpl implements Work
public Map<String, Object> queryParentInstanceBySubId(User loginUser, long
projectCode, Integer subId) {
Project project = projectMapper.queryByCode(projectCode);
// check user access for project
- Map<String, Object> result =
- projectService.checkProjectAndAuth(loginUser, project,
projectCode,
- WORKFLOW_INSTANCE);
- if (result.get(Constants.STATUS) != Status.SUCCESS) {
- return result;
- }
+ projectService.checkProjectAndAuthThrowException(loginUser, project,
WORKFLOW_INSTANCE);
+ Map<String, Object> result = new HashMap<>();
WorkflowInstance subInstance =
processService.findWorkflowInstanceDetailById(subId)
.orElseThrow(() -> new
ServiceException(WORKFLOW_INSTANCE_NOT_EXIST, subId));
if (subInstance.getIsSubWorkflow() == Flag.NO) {
@@ -992,9 +974,11 @@ public class WorkflowInstanceServiceImpl extends
BaseServiceImpl implements Work
Project project = projectMapper.queryByCode(projectCode);
// check user access for project
- Map<String, Object> result =
- projectService.checkProjectAndAuth(loginUser, project,
projectCode, WORKFLOW_INSTANCE);
- if (result.get(Constants.STATUS) != Status.SUCCESS || triggerCode ==
null) {
+ projectService.checkProjectAndAuthThrowException(loginUser, project,
WORKFLOW_INSTANCE);
+
+ Map<String, Object> result = new HashMap<>();
+ if (triggerCode == null) {
+ putMsg(result, Status.SUCCESS);
return result;
}
diff --git
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ProjectServiceTest.java
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ProjectServiceTest.java
index 3f7a1ba242..b50b22c5a7 100644
---
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ProjectServiceTest.java
+++
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ProjectServiceTest.java
@@ -25,6 +25,7 @@ import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import org.apache.dolphinscheduler.api.enums.Status;
+import org.apache.dolphinscheduler.api.exceptions.ServiceException;
import
org.apache.dolphinscheduler.api.permission.ResourcePermissionCheckService;
import org.apache.dolphinscheduler.api.service.impl.BaseServiceImpl;
import org.apache.dolphinscheduler.api.service.impl.ProjectServiceImpl;
@@ -130,20 +131,19 @@ public class ProjectServiceTest {
@Test
public void testCheckProjectAndAuth() {
- long projectCode = 1L;
User loginUser = getLoginUser();
// PROJECT_NOT_EXIST
- Map<String, Object> result =
projectService.checkProjectAndAuth(loginUser, null, projectCode, PROJECT);
- logger.info(result.toString());
- Assertions.assertEquals(Status.PROJECT_NOT_EXIST,
result.get(Constants.STATUS));
+ ServiceException notExistEx =
Assertions.assertThrows(ServiceException.class,
+ () ->
projectService.checkProjectAndAuthThrowException(loginUser, (Project) null,
PROJECT));
+ Assertions.assertEquals(Status.PROJECT_NOT_EXIST.getCode(),
notExistEx.getCode());
// USER_NO_OPERATION_PROJECT_PERM
Project project = getProject();
project.setUserId(2);
- result = projectService.checkProjectAndAuth(loginUser, project,
projectCode, PROJECT);
- logger.info(result.toString());
- Assertions.assertEquals(Status.USER_NO_OPERATION_PROJECT_PERM,
result.get(Constants.STATUS));
+ ServiceException noPermEx =
Assertions.assertThrows(ServiceException.class,
+ () ->
projectService.checkProjectAndAuthThrowException(loginUser, project, PROJECT));
+
Assertions.assertEquals(Status.USER_NO_OPERATION_PROJECT_PERM.getCode(),
noPermEx.getCode());
// success
project.setUserId(1);
@@ -153,9 +153,8 @@ public class ProjectServiceTest {
Mockito.when(resourcePermissionCheckService.resourcePermissionCheck(AuthorizationType.PROJECTS,
new Object[]{project.getId()},
0, baseServiceLogger)).thenReturn(true);
- result = projectService.checkProjectAndAuth(loginUser, project,
projectCode, PROJECT);
- logger.info(result.toString());
- Assertions.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
+ Assertions.assertDoesNotThrow(
+ () ->
projectService.checkProjectAndAuthThrowException(loginUser, project, PROJECT));
}
@Test
diff --git
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TaskDefinitionServiceImplTest.java
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TaskDefinitionServiceImplTest.java
index 9807c3e999..c38c221ff4 100644
---
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TaskDefinitionServiceImplTest.java
+++
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TaskDefinitionServiceImplTest.java
@@ -140,11 +140,8 @@ public class TaskDefinitionServiceImplTest {
String taskName = "task";
Project project = getProject();
when(projectMapper.queryByCode(PROJECT_CODE)).thenReturn(project);
-
- Map<String, Object> result = new HashMap<>();
- putMsg(result, Status.SUCCESS, PROJECT_CODE);
- when(projectService.checkProjectAndAuth(user, project, PROJECT_CODE,
TASK_DEFINITION))
- .thenReturn(result);
+ Mockito.doNothing().when(projectService)
+ .checkProjectAndAuthThrowException(user, project,
TASK_DEFINITION);
when(taskDefinitionMapper.queryByName(project.getCode(),
PROCESS_DEFINITION_CODE, taskName))
.thenReturn(new TaskDefinition());
@@ -159,13 +156,8 @@ public class TaskDefinitionServiceImplTest {
public void switchVersion() {
Project project = getProject();
when(projectMapper.queryByCode(PROJECT_CODE)).thenReturn(project);
-
- Map<String, Object> result = new HashMap<>();
-
- putMsg(result, Status.SUCCESS, PROJECT_CODE);
- when(
- projectService.checkProjectAndAuth(user, project,
PROJECT_CODE, WORKFLOW_SWITCH_TO_THIS_VERSION))
- .thenReturn(result);
+ Mockito.doNothing().when(projectService)
+ .checkProjectAndAuthThrowException(user, project,
WORKFLOW_SWITCH_TO_THIS_VERSION);
when(taskDefinitionLogMapper.queryByDefinitionCodeAndVersion(TASK_CODE,
VERSION))
.thenReturn(new TaskDefinitionLog());
@@ -262,17 +254,14 @@ public class TaskDefinitionServiceImplTest {
public void testReleaseTaskDefinition() {
when(projectMapper.queryByCode(PROJECT_CODE)).thenReturn(getProject());
Project project = getProject();
+
Mockito.doNothing().when(projectService).checkProjectAndAuthThrowException(user,
project, null);
// check task dose not exist
- Map<String, Object> result = new HashMap<>();
- putMsg(result, Status.TASK_DEFINE_NOT_EXIST, TASK_CODE);
- when(projectService.checkProjectAndAuth(user, project, PROJECT_CODE,
null)).thenReturn(result);
Map<String, Object> map =
taskDefinitionService.releaseTaskDefinition(user,
PROJECT_CODE, TASK_CODE, ReleaseState.OFFLINE);
assertEquals(Status.TASK_DEFINE_NOT_EXIST, map.get(Constants.STATUS));
// process definition offline
- putMsg(result, Status.SUCCESS);
TaskDefinition taskDefinition = new TaskDefinition();
taskDefinition.setProjectCode(PROJECT_CODE);
taskDefinition.setVersion(1);
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 821e293bea..ae3b7c3a02 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
@@ -124,9 +124,8 @@ public class TaskInstanceServiceTest {
20));
// data parameter check
- putMsg(result, Status.SUCCESS, projectCode);
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
- when(projectService.checkProjectAndAuth(loginUser, project,
projectCode, TASK_INSTANCE)).thenReturn(result);
+
doNothing().when(projectService).checkProjectAndAuthThrowException(loginUser,
projectCode, TASK_INSTANCE);
Assertions.assertThrows(ServiceException.class, () ->
taskInstanceService.queryTaskListPaging(loginUser,
projectCode,
1,
diff --git
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/WorkflowDefinitionServiceTest.java
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/WorkflowDefinitionServiceTest.java
index 6b674b5044..04bc998549 100644
---
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/WorkflowDefinitionServiceTest.java
+++
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/WorkflowDefinitionServiceTest.java
@@ -290,7 +290,8 @@ public class WorkflowDefinitionServiceTest extends
BaseServiceTestTool {
List<TaskDefinitionLog> taskDefinitionLogs =
JSONUtils.toList(taskDefinitionLogJson, TaskDefinitionLog.class);
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
- when(projectService.checkProjectAndAuth(user, project, projectCode,
WORKFLOW_BATCH_COPY)).thenReturn(result);
+ Mockito.doNothing().when(projectService)
+ .checkProjectAndAuthThrowException(user, project,
WORKFLOW_BATCH_COPY);
when(workflowDefinitionMapper.queryByCodes(definitionCodes)).thenReturn(workflowDefinitionList);
when(workflowTaskRelationMapper.queryByWorkflowDefinitionCode(Long.parseLong(codes)))
.thenReturn(workflowTaskRelations);
@@ -304,23 +305,19 @@ public class WorkflowDefinitionServiceTest extends
BaseServiceTestTool {
}
@Test
public void testQueryWorkflowDefinitionList() {
-
when(projectMapper.queryByCode(projectCode)).thenReturn(getProject(projectCode));
-
Project project = getProject(projectCode);
-
- Map<String, Object> result = new HashMap<>();
- putMsg(result, Status.PROJECT_NOT_FOUND, projectCode);
+ when(projectMapper.queryByCode(projectCode)).thenReturn(project);
// project not found
- when(projectService.checkProjectAndAuth(user, project, projectCode,
WORKFLOW_DEFINITION))
- .thenReturn(result);
- Map<String, Object> map =
workflowDefinitionService.queryWorkflowDefinitionList(user, projectCode);
- Assertions.assertEquals(Status.PROJECT_NOT_FOUND,
map.get(Constants.STATUS));
+ Mockito.doThrow(new ServiceException(Status.PROJECT_NOT_FOUND))
+ .when(projectService).checkProjectAndAuthThrowException(user,
project, WORKFLOW_DEFINITION);
+ ServiceException ex = Assertions.assertThrows(ServiceException.class,
+ () ->
workflowDefinitionService.queryWorkflowDefinitionList(user, projectCode));
+ Assertions.assertEquals(Status.PROJECT_NOT_FOUND.getCode(),
ex.getCode());
// project check auth success
- putMsg(result, Status.SUCCESS, projectCode);
- when(projectService.checkProjectAndAuth(user, project, projectCode,
WORKFLOW_DEFINITION))
- .thenReturn(result);
+ Mockito.doNothing().when(projectService)
+ .checkProjectAndAuthThrowException(user, project,
WORKFLOW_DEFINITION);
List<WorkflowDefinition> resourceList = new ArrayList<>();
resourceList.add(getWorkflowDefinition());
when(workflowDefinitionMapper.queryAllDefinitionList(project.getCode())).thenReturn(resourceList);
@@ -401,23 +398,19 @@ public class WorkflowDefinitionServiceTest extends
BaseServiceTestTool {
@Test
public void testQueryWorkflowDefinitionByCode() {
-
when(projectMapper.queryByCode(projectCode)).thenReturn(getProject(projectCode));
-
Project project = getProject(projectCode);
-
- Map<String, Object> result = new HashMap<>();
- putMsg(result, Status.PROJECT_NOT_FOUND, projectCode);
+ when(projectMapper.queryByCode(projectCode)).thenReturn(project);
// project check auth fail
- when(projectService.checkProjectAndAuth(user, project, projectCode,
WORKFLOW_DEFINITION))
- .thenReturn(result);
- Map<String, Object> map =
workflowDefinitionService.queryWorkflowDefinitionByCode(user, 1L, 1L);
- Assertions.assertEquals(Status.PROJECT_NOT_FOUND,
map.get(Constants.STATUS));
+ Mockito.doThrow(new ServiceException(Status.PROJECT_NOT_FOUND))
+ .when(projectService).checkProjectAndAuthThrowException(user,
project, WORKFLOW_DEFINITION);
+ ServiceException ex = Assertions.assertThrows(ServiceException.class,
+ () ->
workflowDefinitionService.queryWorkflowDefinitionByCode(user, projectCode, 1L));
+ Assertions.assertEquals(Status.PROJECT_NOT_FOUND.getCode(),
ex.getCode());
// project check auth success, instance not exist
- putMsg(result, Status.SUCCESS, projectCode);
- when(projectService.checkProjectAndAuth(user, project, projectCode,
WORKFLOW_DEFINITION))
- .thenReturn(result);
+ Mockito.doNothing().when(projectService)
+ .checkProjectAndAuthThrowException(user, project,
WORKFLOW_DEFINITION);
DagData dagData = new DagData(getWorkflowDefinition(), null, null);
when(processService.genDagData(any())).thenReturn(dagData);
@@ -427,9 +420,6 @@ public class WorkflowDefinitionServiceTest extends
BaseServiceTestTool {
// instance exit
when(workflowDefinitionMapper.queryByCode(46L)).thenReturn(getWorkflowDefinition());
- putMsg(result, Status.SUCCESS, projectCode);
- when(projectService.checkProjectAndAuth(user, project, projectCode,
WORKFLOW_DEFINITION))
- .thenReturn(result);
Map<String, Object> successRes =
workflowDefinitionService.queryWorkflowDefinitionByCode(user,
projectCode, 46L);
Assertions.assertEquals(Status.SUCCESS,
successRes.get(Constants.STATUS));
@@ -437,24 +427,19 @@ public class WorkflowDefinitionServiceTest extends
BaseServiceTestTool {
@Test
public void testQueryWorkflowDefinitionByName() {
-
when(projectMapper.queryByCode(projectCode)).thenReturn(getProject(projectCode));
-
Project project = getProject(projectCode);
-
- Map<String, Object> result = new HashMap<>();
- putMsg(result, Status.PROJECT_NOT_FOUND, projectCode);
+ when(projectMapper.queryByCode(projectCode)).thenReturn(project);
// project check auth fail
- when(projectService.checkProjectAndAuth(user, project, projectCode,
WORKFLOW_DEFINITION))
- .thenReturn(result);
- Map<String, Object> map =
- workflowDefinitionService.queryWorkflowDefinitionByName(user,
projectCode, "test_def");
- Assertions.assertEquals(Status.PROJECT_NOT_FOUND,
map.get(Constants.STATUS));
+ Mockito.doThrow(new ServiceException(Status.PROJECT_NOT_FOUND))
+ .when(projectService).checkProjectAndAuthThrowException(user,
project, WORKFLOW_DEFINITION);
+ ServiceException ex = Assertions.assertThrows(ServiceException.class,
+ () ->
workflowDefinitionService.queryWorkflowDefinitionByName(user, projectCode,
"test_def"));
+ Assertions.assertEquals(Status.PROJECT_NOT_FOUND.getCode(),
ex.getCode());
// project check auth success, instance not exist
- putMsg(result, Status.SUCCESS, projectCode);
- when(projectService.checkProjectAndAuth(user, project, projectCode,
WORKFLOW_DEFINITION))
- .thenReturn(result);
+ Mockito.doNothing().when(projectService)
+ .checkProjectAndAuthThrowException(user, project,
WORKFLOW_DEFINITION);
when(workflowDefinitionMapper.queryByDefineName(project.getCode(),
"test_def")).thenReturn(null);
Map<String, Object> instanceNotExitRes =
@@ -464,9 +449,6 @@ public class WorkflowDefinitionServiceTest extends
BaseServiceTestTool {
// instance exit
when(workflowDefinitionMapper.queryByDefineName(project.getCode(),
"test"))
.thenReturn(getWorkflowDefinition());
- putMsg(result, Status.SUCCESS, projectCode);
- when(projectService.checkProjectAndAuth(user, project, projectCode,
WORKFLOW_DEFINITION))
- .thenReturn(result);
Map<String, Object> successRes =
workflowDefinitionService.queryWorkflowDefinitionByName(user,
projectCode, "test");
Assertions.assertEquals(Status.SUCCESS,
successRes.get(Constants.STATUS));
@@ -476,34 +458,31 @@ public class WorkflowDefinitionServiceTest extends
BaseServiceTestTool {
public void testBatchCopyWorkflowDefinition() {
Project project = getProject(projectCode);
-
when(projectMapper.queryByCode(projectCode)).thenReturn(getProject(projectCode));
- Map<String, Object> result = new HashMap<>();
- putMsg(result, Status.SUCCESS, projectCode);
- Mockito.doReturn(result)
- .when(projectService)
- .checkProjectAndAuth(user, project, projectCode,
WORKFLOW_BATCH_COPY);
+ when(projectMapper.queryByCode(projectCode)).thenReturn(project);
+ Mockito.doNothing().when(projectService)
+ .checkProjectAndAuthThrowException(user, project,
WORKFLOW_BATCH_COPY);
// copy project definition ids empty test
- Map<String, Object> map =
- workflowDefinitionService.batchCopyWorkflowDefinition(user,
projectCode, StringUtils.EMPTY, 2L);
- Assertions.assertEquals(Status.WORKFLOW_DEFINITION_CODES_IS_EMPTY,
map.get(Constants.STATUS));
+ ServiceException emptyEx =
Assertions.assertThrows(ServiceException.class,
+ () ->
workflowDefinitionService.batchCopyWorkflowDefinition(user, projectCode,
StringUtils.EMPTY, 2L));
+
Assertions.assertEquals(Status.WORKFLOW_DEFINITION_CODES_IS_EMPTY.getCode(),
emptyEx.getCode());
// project check auth fail
- putMsg(result, Status.PROJECT_NOT_FOUND, projectCode);
- when(projectService.checkProjectAndAuth(user, project, projectCode,
WORKFLOW_BATCH_COPY))
- .thenReturn(result);
- Map<String, Object> map1 =
workflowDefinitionService.batchCopyWorkflowDefinition(
- user, projectCode, String.valueOf(project.getId()), 2L);
- Assertions.assertEquals(Status.PROJECT_NOT_FOUND,
map1.get(Constants.STATUS));
-
- // project check auth success, target project name not equal project
name, check auth target project fail
+ Mockito.doThrow(new ServiceException(Status.PROJECT_NOT_FOUND))
+ .when(projectService).checkProjectAndAuthThrowException(user,
project, WORKFLOW_BATCH_COPY);
+ ServiceException ex = Assertions.assertThrows(ServiceException.class,
+ () -> workflowDefinitionService.batchCopyWorkflowDefinition(
+ user, projectCode, String.valueOf(project.getId()),
2L));
+ Assertions.assertEquals(Status.PROJECT_NOT_FOUND.getCode(),
ex.getCode());
+
+ // project check auth success, target project name not equal project
name
+ Mockito.doNothing().when(projectService)
+ .checkProjectAndAuthThrowException(user, project,
WORKFLOW_BATCH_COPY);
Project project1 = getProject(projectCodeOther);
when(projectMapper.queryByCode(projectCodeOther)).thenReturn(project1);
- Mockito.doReturn(result)
- .when(projectService)
- .checkProjectAndAuth(user, project1, projectCodeOther,
WORKFLOW_BATCH_COPY);
+ Mockito.doNothing().when(projectService)
+ .checkProjectAndAuthThrowException(user, project1,
WORKFLOW_BATCH_COPY);
- putMsg(result, Status.SUCCESS, projectCodeOther);
WorkflowDefinition definition = getWorkflowDefinition();
List<WorkflowDefinition> workflowDefinitionList = new ArrayList<>();
workflowDefinitionList.add(definition);
@@ -532,13 +511,10 @@ public class WorkflowDefinitionServiceTest extends
BaseServiceTestTool {
Project project2 = getProject(projectCodeOther);
when(projectMapper.queryByCode(projectCodeOther)).thenReturn(project2);
- Map<String, Object> result = new HashMap<>();
- putMsg(result, Status.SUCCESS, projectCode);
-
- when(projectService.checkProjectAndAuth(user, project1, projectCode,
TASK_DEFINITION_MOVE))
- .thenReturn(result);
- when(projectService.checkProjectAndAuth(user, project2,
projectCodeOther, TASK_DEFINITION_MOVE))
- .thenReturn(result);
+ Mockito.doNothing().when(projectService)
+ .checkProjectAndAuthThrowException(user, project1,
TASK_DEFINITION_MOVE);
+ Mockito.doNothing().when(projectService)
+ .checkProjectAndAuthThrowException(user, project2,
TASK_DEFINITION_MOVE);
WorkflowDefinition definition = getWorkflowDefinition();
definition.setVersion(1);
@@ -558,7 +534,6 @@ public class WorkflowDefinitionServiceTest extends
BaseServiceTestTool {
when(processService.saveWorkflowDefine(user, definition, Boolean.TRUE,
Boolean.TRUE)).thenReturn(2);
when(workflowTaskRelationMapper.queryByWorkflowDefinitionCode(processDefinitionCode))
.thenReturn(getProcessTaskRelation());
- putMsg(result, Status.SUCCESS);
Map<String, Object> successRes =
workflowDefinitionService.batchMoveWorkflowDefinition(
user, projectCode, String.valueOf(processDefinitionCode),
projectCodeOther);
@@ -705,20 +680,19 @@ public class WorkflowDefinitionServiceTest extends
BaseServiceTestTool {
@Test
public void testVerifyWorkflowDefinitionName() {
-
when(projectMapper.queryByCode(projectCode)).thenReturn(getProject(projectCode));
Project project = getProject(projectCode);
+ when(projectMapper.queryByCode(projectCode)).thenReturn(project);
// project check auth fail
- Map<String, Object> result = new HashMap<>();
- putMsg(result, Status.PROJECT_NOT_FOUND, projectCode);
- when(projectService.checkProjectAndAuth(user, project, projectCode,
WORKFLOW_CREATE))
- .thenReturn(result);
- Map<String, Object> map =
workflowDefinitionService.verifyWorkflowDefinitionName(user,
- projectCode, "test_pdf", 0);
- Assertions.assertEquals(Status.PROJECT_NOT_FOUND,
map.get(Constants.STATUS));
+ Mockito.doThrow(new ServiceException(Status.PROJECT_NOT_FOUND))
+ .when(projectService).checkProjectAndAuthThrowException(user,
project, WORKFLOW_CREATE);
+ ServiceException ex = Assertions.assertThrows(ServiceException.class,
+ () ->
workflowDefinitionService.verifyWorkflowDefinitionName(user, projectCode,
"test_pdf", 0));
+ Assertions.assertEquals(Status.PROJECT_NOT_FOUND.getCode(),
ex.getCode());
// project check auth success, process not exist
- putMsg(result, Status.SUCCESS, projectCode);
+ Mockito.doNothing().when(projectService)
+ .checkProjectAndAuthThrowException(user, project,
WORKFLOW_CREATE);
when(workflowDefinitionMapper.verifyByDefineName(project.getCode(),
"test_pdf")).thenReturn(null);
Map<String, Object> processNotExistRes =
workflowDefinitionService.verifyWorkflowDefinitionName(user,
projectCode, "test_pdf", 0);
@@ -746,13 +720,10 @@ public class WorkflowDefinitionServiceTest extends
BaseServiceTestTool {
@Test
public void testGetTaskNodeListByDefinitionCode() {
-
when(projectMapper.queryByCode(projectCode)).thenReturn(getProject(projectCode));
Project project = getProject(projectCode);
+ when(projectMapper.queryByCode(projectCode)).thenReturn(project);
+
Mockito.doNothing().when(projectService).checkProjectAndAuthThrowException(user,
project, null);
- // project check auth fail
- Map<String, Object> result = new HashMap<>();
- putMsg(result, Status.SUCCESS, projectCode);
- when(projectService.checkProjectAndAuth(user, project, projectCode,
null)).thenReturn(result);
// process definition not exist
when(workflowDefinitionMapper.queryByCode(46L)).thenReturn(null);
Map<String, Object> processDefinitionNullRes =
@@ -761,7 +732,6 @@ public class WorkflowDefinitionServiceTest extends
BaseServiceTestTool {
// success
WorkflowDefinition workflowDefinition = getWorkflowDefinition();
- putMsg(result, Status.SUCCESS, projectCode);
when(processService.genDagData(any())).thenReturn(new
DagData(workflowDefinition, null, null));
when(workflowDefinitionMapper.queryByCode(46L)).thenReturn(workflowDefinition);
Map<String, Object> dataNotValidRes =
@@ -771,13 +741,10 @@ public class WorkflowDefinitionServiceTest extends
BaseServiceTestTool {
@Test
public void testGetTaskNodeListByDefinitionCodes() {
-
when(projectMapper.queryByCode(projectCode)).thenReturn(getProject(projectCode));
Project project = getProject(projectCode);
+ when(projectMapper.queryByCode(projectCode)).thenReturn(project);
+
Mockito.doNothing().when(projectService).checkProjectAndAuthThrowException(user,
project, null);
- // project check auth fail
- Map<String, Object> result = new HashMap<>();
- putMsg(result, Status.SUCCESS, projectCode);
- when(projectService.checkProjectAndAuth(user, project, projectCode,
null)).thenReturn(result);
// process definition not exist
String defineCodes = "46";
Set<Long> defineCodeSet =
Lists.newArrayList(defineCodes.split(Constants.COMMA)).stream().map(Long::parseLong)
@@ -787,7 +754,6 @@ public class WorkflowDefinitionServiceTest extends
BaseServiceTestTool {
workflowDefinitionService.getNodeListMapByDefinitionCodes(user, projectCode,
defineCodes);
Assertions.assertEquals(Status.WORKFLOW_DEFINITION_NOT_EXIST,
processNotExistRes.get(Constants.STATUS));
- putMsg(result, Status.SUCCESS, projectCode);
WorkflowDefinition workflowDefinition = getWorkflowDefinition();
List<WorkflowDefinition> workflowDefinitionList = new ArrayList<>();
workflowDefinitionList.add(workflowDefinition);
@@ -806,12 +772,10 @@ public class WorkflowDefinitionServiceTest extends
BaseServiceTestTool {
@Test
public void testQueryAllWorkflowDefinitionByProjectCode() {
- Map<String, Object> result = new HashMap<>();
Project project = getProject(projectCode);
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
- putMsg(result, Status.SUCCESS, projectCode);
- when(projectService.checkProjectAndAuth(user, project, projectCode,
WORKFLOW_DEFINITION))
- .thenReturn(result);
+ Mockito.doNothing().when(projectService)
+ .checkProjectAndAuthThrowException(user, project,
WORKFLOW_DEFINITION);
WorkflowDefinition workflowDefinition = getWorkflowDefinition();
List<WorkflowDefinition> workflowDefinitionList = new ArrayList<>();
workflowDefinitionList.add(workflowDefinition);
@@ -824,11 +788,9 @@ public class WorkflowDefinitionServiceTest extends
BaseServiceTestTool {
@Test
public void testViewTree() {
Project project1 = getProject(projectCode);
- Map<String, Object> result = new HashMap<>();
- putMsg(result, Status.SUCCESS, projectCode);
when(projectMapper.queryByCode(1)).thenReturn(project1);
- when(projectService.checkProjectAndAuth(user, project1, projectCode,
WORKFLOW_TREE_VIEW))
- .thenReturn(result);
+ Mockito.doNothing().when(projectService)
+ .checkProjectAndAuthThrowException(user, project1,
WORKFLOW_TREE_VIEW);
// process definition not exist
WorkflowDefinition workflowDefinition = getWorkflowDefinition();
Map<String, Object> processDefinitionNullRes =
@@ -836,9 +798,6 @@ public class WorkflowDefinitionServiceTest extends
BaseServiceTestTool {
Assertions.assertEquals(Status.WORKFLOW_DEFINITION_NOT_EXIST,
processDefinitionNullRes.get(Constants.STATUS));
// task instance not existproject
- putMsg(result, Status.SUCCESS, projectCode);
- when(projectMapper.queryByCode(1)).thenReturn(project1);
- when(projectService.checkProjectAndAuth(user, project1, 1,
WORKFLOW_TREE_VIEW)).thenReturn(result);
when(workflowDefinitionMapper.queryByCode(46L)).thenReturn(workflowDefinition);
when(processService.genDagGraph(workflowDefinition)).thenReturn(new
DAG<>());
Map<String, Object> taskNullRes =
@@ -857,10 +816,9 @@ public class WorkflowDefinitionServiceTest extends
BaseServiceTestTool {
when(workflowDefinitionMapper.queryByCode(46L)).thenReturn(workflowDefinition);
Project project1 = getProject(1);
- Map<String, Object> result = new HashMap<>();
- result.put(Constants.STATUS, Status.SUCCESS);
when(projectMapper.queryByCode(1)).thenReturn(project1);
- when(projectService.checkProjectAndAuth(user, project1, 1,
WORKFLOW_TREE_VIEW)).thenReturn(result);
+ Mockito.doNothing().when(projectService)
+ .checkProjectAndAuthThrowException(user, project1,
WORKFLOW_TREE_VIEW);
when(processService.genDagGraph(workflowDefinition)).thenReturn(new
DAG<>());
Map<String, Object> taskNotNuLLRes =
workflowDefinitionService.viewTree(user,
workflowDefinition.getProjectCode(), 46, 10);
@@ -948,24 +906,19 @@ public class WorkflowDefinitionServiceTest extends
BaseServiceTestTool {
@Test
public void testViewVariables() {
-
when(projectMapper.queryByCode(projectCode)).thenReturn(getProject(projectCode));
-
Project project = getProject(projectCode);
+ when(projectMapper.queryByCode(projectCode)).thenReturn(project);
WorkflowDefinition workflowDefinition = getWorkflowDefinition();
- Map<String, Object> result = new HashMap<>();
- putMsg(result, Status.PROJECT_NOT_FOUND, projectCode);
-
// project check auth fail
- when(projectService.checkProjectAndAuth(user, project, projectCode,
WORKFLOW_DEFINITION))
- .thenReturn(result);
-
- Map<String, Object> map =
- workflowDefinitionService.viewVariables(user,
workflowDefinition.getProjectCode(),
- workflowDefinition.getCode());
+ Mockito.doThrow(new ServiceException(Status.PROJECT_NOT_FOUND))
+ .when(projectService).checkProjectAndAuthThrowException(user,
project, WORKFLOW_DEFINITION);
- Assertions.assertEquals(Status.PROJECT_NOT_FOUND,
map.get(Constants.STATUS));
+ ServiceException ex = Assertions.assertThrows(ServiceException.class,
+ () -> workflowDefinitionService.viewVariables(user,
workflowDefinition.getProjectCode(),
+ workflowDefinition.getCode()));
+ Assertions.assertEquals(Status.PROJECT_NOT_FOUND.getCode(),
ex.getCode());
}
/**
diff --git
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/WorkflowInstanceServiceTest.java
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/WorkflowInstanceServiceTest.java
index 40f1efb3f0..bd31084afe 100644
---
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/WorkflowInstanceServiceTest.java
+++
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/WorkflowInstanceServiceTest.java
@@ -17,7 +17,6 @@
package org.apache.dolphinscheduler.api.service;
-import static
org.apache.dolphinscheduler.api.constants.ApiFuncIdentificationConstant.INSTANCE_DELETE;
import static
org.apache.dolphinscheduler.api.constants.ApiFuncIdentificationConstant.INSTANCE_UPDATE;
import static
org.apache.dolphinscheduler.api.constants.ApiFuncIdentificationConstant.WORKFLOW_INSTANCE;
import static org.junit.jupiter.api.Assertions.assertThrows;
@@ -313,19 +312,19 @@ public class WorkflowInstanceServiceTest {
long projectCode = 666L;
User loginUser = getAdminUser();
Project project = getProject(projectCode);
- Map<String, Object> result = new HashMap<>();
- putMsg(result, Status.PROJECT_NOT_FOUND, projectCode);
// project auth fail
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
- when(projectService.checkProjectAndAuth(loginUser, project,
projectCode, WORKFLOW_INSTANCE)).thenReturn(result);
- Map<String, Object> projectAuthFailMap =
- workflowInstanceService.queryByTriggerCode(loginUser,
projectCode, 999L);
- Assertions.assertEquals(Status.PROJECT_NOT_FOUND,
projectAuthFailMap.get(Constants.STATUS));
+ Mockito.doThrow(new ServiceException(Status.PROJECT_NOT_FOUND))
+
.when(projectService).checkProjectAndAuthThrowException(loginUser, project,
WORKFLOW_INSTANCE);
+ ServiceException ex = assertThrows(ServiceException.class,
+ () -> workflowInstanceService.queryByTriggerCode(loginUser,
projectCode, 999L));
+ Assertions.assertEquals(Status.PROJECT_NOT_FOUND.getCode(),
ex.getCode());
// project auth success
- putMsg(result, Status.SUCCESS, projectCode);
+
Mockito.doNothing().when(projectService).checkProjectAndAuthThrowException(loginUser,
project,
+ WORKFLOW_INSTANCE);
when(workflowInstanceMapper.queryByTriggerCode(projectCode)).thenReturn(new
ArrayList());
- projectAuthFailMap =
+ Map<String, Object> projectAuthFailMap =
workflowInstanceService.queryByTriggerCode(loginUser,
projectCode, 999L);
Assertions.assertEquals(Status.SUCCESS,
projectAuthFailMap.get(Constants.STATUS));
}
@@ -335,34 +334,26 @@ public class WorkflowInstanceServiceTest {
long projectCode = 1L;
User loginUser = getAdminUser();
Project project = getProject(projectCode);
- Map<String, Object> result = new HashMap<>(5);
- putMsg(result, Status.PROJECT_NOT_FOUND, projectCode);
int size = 10;
String startTime = "2020-01-01 00:00:00";
String endTime = "2020-08-02 00:00:00";
- Date start = DateUtils.stringToDate(startTime);
- Date end = DateUtils.stringToDate(endTime);
// project auth fail
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
- when(projectService.checkProjectAndAuth(loginUser, project,
projectCode, WORKFLOW_INSTANCE)).thenReturn(result);
- Map<String, Object> projectAuthFailRes = workflowInstanceService
- .queryTopNLongestRunningWorkflowInstance(loginUser,
projectCode, size, startTime, endTime);
-
- Assertions.assertEquals(Status.PROJECT_NOT_FOUND,
projectAuthFailRes.get(Constants.STATUS));
+ Mockito.doThrow(new ServiceException(Status.PROJECT_NOT_FOUND))
+
.when(projectService).checkProjectAndAuthThrowException(loginUser, project,
WORKFLOW_INSTANCE);
+ ServiceException ex = assertThrows(ServiceException.class, () ->
workflowInstanceService
+ .queryTopNLongestRunningWorkflowInstance(loginUser,
projectCode, size, startTime, endTime));
+ Assertions.assertEquals(Status.PROJECT_NOT_FOUND.getCode(),
ex.getCode());
// project auth success
- putMsg(result, Status.SUCCESS, projectCode);
WorkflowInstance workflowInstance = getProcessInstance();
- when(projectMapper.queryByCode(projectCode)).thenReturn(project);
- when(projectService.checkProjectAndAuth(loginUser, project,
projectCode, WORKFLOW_INSTANCE)).thenReturn(result);
- projectAuthFailRes = workflowInstanceService
+
Mockito.doNothing().when(projectService).checkProjectAndAuthThrowException(loginUser,
project,
+ WORKFLOW_INSTANCE);
+ Map<String, Object> projectAuthFailRes = workflowInstanceService
.queryTopNLongestRunningWorkflowInstance(loginUser,
projectCode, -1, startTime, endTime);
Assertions.assertEquals(Status.NEGTIVE_SIZE_NUMBER_ERROR,
projectAuthFailRes.get(Constants.STATUS));
- putMsg(result, Status.SUCCESS, projectCode);
- when(projectMapper.queryByCode(projectCode)).thenReturn(project);
- when(projectService.checkProjectAndAuth(loginUser, project,
projectCode, WORKFLOW_INSTANCE)).thenReturn(result);
when(usersService.queryUser(loginUser.getId())).thenReturn(loginUser);
when(usersService.getUserIdByName(loginUser.getUserName())).thenReturn(loginUser.getId());
when(usersService.queryUser(workflowInstance.getExecutorId())).thenReturn(loginUser);
@@ -377,30 +368,23 @@ public class WorkflowInstanceServiceTest {
long projectCode = 1L;
User loginUser = getAdminUser();
Project project = getProject(projectCode);
- Map<String, Object> result = new HashMap<>(5);
- putMsg(result, Status.PROJECT_NOT_FOUND, projectCode);
int size = 10;
String startTime = "2020-01-01 00:00:00";
String endTime = "2020-08-02 00:00:00";
- putMsg(result, Status.SUCCESS, projectCode);
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
- when(projectService.checkProjectAndAuth(loginUser, project,
projectCode, WORKFLOW_INSTANCE)).thenReturn(result);
+
Mockito.doNothing().when(projectService).checkProjectAndAuthThrowException(loginUser,
project,
+ WORKFLOW_INSTANCE);
+
Map<String, Object> startTimeBiggerFailRes = workflowInstanceService
.queryTopNLongestRunningWorkflowInstance(loginUser,
projectCode, size, endTime, startTime);
Assertions.assertEquals(Status.START_TIME_BIGGER_THAN_END_TIME_ERROR,
startTimeBiggerFailRes.get(Constants.STATUS));
- putMsg(result, Status.SUCCESS, projectCode);
- when(projectMapper.queryByCode(projectCode)).thenReturn(project);
- when(projectService.checkProjectAndAuth(loginUser, project,
projectCode, WORKFLOW_INSTANCE)).thenReturn(result);
Map<String, Object> dataNullFailRes = workflowInstanceService
.queryTopNLongestRunningWorkflowInstance(loginUser,
projectCode, size, null, endTime);
Assertions.assertEquals(Status.DATA_IS_NULL,
dataNullFailRes.get(Constants.STATUS));
- putMsg(result, Status.SUCCESS, projectCode);
- when(projectMapper.queryByCode(projectCode)).thenReturn(project);
- when(projectService.checkProjectAndAuth(loginUser, project,
projectCode, WORKFLOW_INSTANCE)).thenReturn(result);
dataNullFailRes = workflowInstanceService
.queryTopNLongestRunningWorkflowInstance(loginUser,
projectCode, size, startTime, null);
Assertions.assertEquals(Status.DATA_IS_NULL,
dataNullFailRes.get(Constants.STATUS));
@@ -411,23 +395,21 @@ public class WorkflowInstanceServiceTest {
long projectCode = 1L;
User loginUser = getAdminUser();
Project project = getProject(projectCode);
- Map<String, Object> result = new HashMap<>();
- putMsg(result, Status.PROJECT_NOT_FOUND, projectCode);
// project auth fail
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
- when(projectService.checkProjectAndAuth(loginUser, project,
projectCode, WORKFLOW_INSTANCE)).thenReturn(result);
- Map<String, Object> projectAuthFailRes =
- workflowInstanceService.queryWorkflowInstanceById(loginUser,
projectCode, 1);
- Assertions.assertEquals(Status.PROJECT_NOT_FOUND,
projectAuthFailRes.get(Constants.STATUS));
+ Mockito.doThrow(new ServiceException(Status.PROJECT_NOT_FOUND))
+
.when(projectService).checkProjectAndAuthThrowException(loginUser, project,
WORKFLOW_INSTANCE);
+ ServiceException ex = assertThrows(ServiceException.class,
+ () ->
workflowInstanceService.queryWorkflowInstanceById(loginUser, projectCode, 1));
+ Assertions.assertEquals(Status.PROJECT_NOT_FOUND.getCode(),
ex.getCode());
// project auth success
WorkflowInstance workflowInstance = getProcessInstance();
- putMsg(result, Status.SUCCESS, projectCode);
WorkflowDefinition workflowDefinition = getProcessDefinition();
workflowDefinition.setProjectCode(projectCode);
- when(projectMapper.queryByCode(projectCode)).thenReturn(project);
- when(projectService.checkProjectAndAuth(loginUser, project,
projectCode, WORKFLOW_INSTANCE)).thenReturn(result);
+
Mockito.doNothing().when(projectService).checkProjectAndAuthThrowException(loginUser,
project,
+ WORKFLOW_INSTANCE);
when(processService.findWorkflowInstanceDetailById(workflowInstance.getId()))
.thenReturn(Optional.of(workflowInstance));
when(processService.findWorkflowDefinition(workflowInstance.getWorkflowDefinitionCode(),
@@ -457,18 +439,18 @@ public class WorkflowInstanceServiceTest {
long projectCode = 1L;
User loginUser = getAdminUser();
Project project = getProject(projectCode);
- Map<String, Object> result = new HashMap<>();
- putMsg(result, Status.PROJECT_NOT_FOUND, projectCode);
// project auth fail
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
- when(projectService.checkProjectAndAuth(loginUser, project,
projectCode, WORKFLOW_INSTANCE)).thenReturn(result);
- Map<String, Object> projectAuthFailRes =
-
workflowInstanceService.queryTaskListByWorkflowInstanceId(loginUser,
projectCode, 1);
- Assertions.assertEquals(Status.PROJECT_NOT_FOUND,
projectAuthFailRes.get(Constants.STATUS));
+ Mockito.doThrow(new ServiceException(Status.PROJECT_NOT_FOUND))
+
.when(projectService).checkProjectAndAuthThrowException(loginUser, project,
WORKFLOW_INSTANCE);
+ ServiceException ex = assertThrows(ServiceException.class,
+ () ->
workflowInstanceService.queryTaskListByWorkflowInstanceId(loginUser,
projectCode, 1));
+ Assertions.assertEquals(Status.PROJECT_NOT_FOUND.getCode(),
ex.getCode());
// project auth success
- putMsg(result, Status.SUCCESS, projectCode);
+
Mockito.doNothing().when(projectService).checkProjectAndAuthThrowException(loginUser,
project,
+ WORKFLOW_INSTANCE);
WorkflowInstance workflowInstance = getProcessInstance();
workflowInstance.setState(WorkflowExecutionStatus.SUCCESS);
TaskInstance taskInstance = new TaskInstance();
@@ -492,8 +474,6 @@ public class WorkflowInstanceServiceTest {
Result res = new Result();
res.setCode(Status.SUCCESS.ordinal());
res.setData("xxx");
- when(projectMapper.queryByCode(projectCode)).thenReturn(project);
- when(projectService.checkProjectAndAuth(loginUser, project,
projectCode, WORKFLOW_INSTANCE)).thenReturn(result);
when(processService.findWorkflowInstanceDetailById(workflowInstance.getId()))
.thenReturn(Optional.of(workflowInstance));
when(taskInstanceDao.queryValidTaskListByWorkflowInstanceId(workflowInstance.getId()))
@@ -512,20 +492,18 @@ public class WorkflowInstanceServiceTest {
long projectCode = 1L;
User loginUser = getAdminUser();
Project project = getProject(projectCode);
- Map<String, Object> result = new HashMap<>();
- putMsg(result, Status.PROJECT_NOT_FOUND, projectCode);
// project auth fail
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
- when(projectService.checkProjectAndAuth(loginUser, project,
projectCode, WORKFLOW_INSTANCE)).thenReturn(result);
- Map<String, Object> projectAuthFailRes =
-
workflowInstanceService.querySubWorkflowInstanceByTaskId(loginUser,
projectCode, 1);
- Assertions.assertEquals(Status.PROJECT_NOT_FOUND,
projectAuthFailRes.get(Constants.STATUS));
+ Mockito.doThrow(new ServiceException(Status.PROJECT_NOT_FOUND))
+
.when(projectService).checkProjectAndAuthThrowException(loginUser, project,
WORKFLOW_INSTANCE);
+ ServiceException ex = assertThrows(ServiceException.class,
+ () ->
workflowInstanceService.querySubWorkflowInstanceByTaskId(loginUser,
projectCode, 1));
+ Assertions.assertEquals(Status.PROJECT_NOT_FOUND.getCode(),
ex.getCode());
// task null
- putMsg(result, Status.SUCCESS, projectCode);
- when(projectMapper.queryByCode(projectCode)).thenReturn(project);
- when(projectService.checkProjectAndAuth(loginUser, project,
projectCode, WORKFLOW_INSTANCE)).thenReturn(result);
+
Mockito.doNothing().when(projectService).checkProjectAndAuthThrowException(loginUser,
project,
+ WORKFLOW_INSTANCE);
when(taskInstanceDao.queryById(1)).thenReturn(null);
Map<String, Object> taskNullRes =
workflowInstanceService.querySubWorkflowInstanceByTaskId(loginUser,
projectCode, 1);
@@ -535,7 +513,6 @@ public class WorkflowInstanceServiceTest {
TaskInstance taskInstance = getTaskInstance();
taskInstance.setTaskType("HTTP");
taskInstance.setWorkflowInstanceId(1);
- putMsg(result, Status.SUCCESS, projectCode);
when(taskInstanceDao.queryById(1)).thenReturn(taskInstance);
TaskDefinition taskDefinition = new TaskDefinition();
taskDefinition.setProjectCode(projectCode);
@@ -544,7 +521,6 @@ public class WorkflowInstanceServiceTest {
workflowInstanceService.querySubWorkflowInstanceByTaskId(loginUser,
projectCode, 1);
Assertions.assertEquals(Status.TASK_INSTANCE_NOT_SUB_WORKFLOW_INSTANCE,
notSubprocessRes.get(Constants.STATUS));
- putMsg(result, Status.SUCCESS, projectCode);
taskDefinition.setProjectCode(0L);
notSubprocessRes =
workflowInstanceService.querySubWorkflowInstanceByTaskId(loginUser,
projectCode, 1);
Assertions.assertEquals(Status.TASK_INSTANCE_NOT_EXISTS,
notSubprocessRes.get(Constants.STATUS));
@@ -555,7 +531,6 @@ public class WorkflowInstanceServiceTest {
TaskInstance subTask = getTaskInstance();
subTask.setTaskType("SUB_WORKFLOW");
subTask.setWorkflowInstanceId(1);
- putMsg(result, Status.SUCCESS, projectCode);
when(taskInstanceDao.queryById(subTask.getId())).thenReturn(subTask);
when(processService.findSubWorkflowInstance(subTask.getWorkflowInstanceId(),
subTask.getId())).thenReturn(null);
Map<String, Object> subprocessNotExistRes =
@@ -564,7 +539,6 @@ public class WorkflowInstanceServiceTest {
// sub process exist
WorkflowInstance workflowInstance = getProcessInstance();
- putMsg(result, Status.SUCCESS, projectCode);
when(processService.findSubWorkflowInstance(taskInstance.getWorkflowInstanceId(),
taskInstance.getId()))
.thenReturn(workflowInstance);
Map<String, Object> subprocessExistRes =
@@ -677,20 +651,18 @@ public class WorkflowInstanceServiceTest {
long projectCode = 1L;
User loginUser = getAdminUser();
Project project = getProject(projectCode);
- Map<String, Object> result = new HashMap<>();
- putMsg(result, Status.PROJECT_NOT_FOUND, projectCode);
// project auth fail
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
- when(projectService.checkProjectAndAuth(loginUser, project,
projectCode, WORKFLOW_INSTANCE)).thenReturn(result);
- Map<String, Object> projectAuthFailRes =
- workflowInstanceService.queryParentInstanceBySubId(loginUser,
projectCode, 1);
- Assertions.assertEquals(Status.PROJECT_NOT_FOUND,
projectAuthFailRes.get(Constants.STATUS));
+ Mockito.doThrow(new ServiceException(Status.PROJECT_NOT_FOUND))
+
.when(projectService).checkProjectAndAuthThrowException(loginUser, project,
WORKFLOW_INSTANCE);
+ ServiceException ex = assertThrows(ServiceException.class,
+ () ->
workflowInstanceService.queryParentInstanceBySubId(loginUser, projectCode, 1));
+ Assertions.assertEquals(Status.PROJECT_NOT_FOUND.getCode(),
ex.getCode());
// process instance null
- putMsg(result, Status.SUCCESS, projectCode);
- when(projectMapper.queryByCode(projectCode)).thenReturn(project);
- when(projectService.checkProjectAndAuth(loginUser, project,
projectCode, WORKFLOW_INSTANCE)).thenReturn(result);
+
Mockito.doNothing().when(projectService).checkProjectAndAuthThrowException(loginUser,
project,
+ WORKFLOW_INSTANCE);
when(processService.findWorkflowInstanceDetailById(1)).thenReturn(Optional.empty());
assertThrows(ServiceException.class, () -> {
workflowInstanceService.queryParentInstanceBySubId(loginUser,
projectCode, 1);
@@ -699,7 +671,6 @@ public class WorkflowInstanceServiceTest {
// not sub process
WorkflowInstance workflowInstance = getProcessInstance();
workflowInstance.setIsSubWorkflow(Flag.NO);
- putMsg(result, Status.SUCCESS, projectCode);
when(processService.findWorkflowInstanceDetailById(1)).thenReturn(Optional.ofNullable(workflowInstance));
Map<String, Object> notSubProcessRes =
workflowInstanceService.queryParentInstanceBySubId(loginUser,
projectCode, 1);
@@ -708,14 +679,12 @@ public class WorkflowInstanceServiceTest {
// sub process
workflowInstance.setIsSubWorkflow(Flag.YES);
- putMsg(result, Status.SUCCESS, projectCode);
when(processService.findParentWorkflowInstance(1)).thenReturn(null);
Map<String, Object> subProcessNullRes =
workflowInstanceService.queryParentInstanceBySubId(loginUser,
projectCode, 1);
Assertions.assertEquals(Status.SUB_WORKFLOW_INSTANCE_NOT_EXIST,
subProcessNullRes.get(Constants.STATUS));
// success
- putMsg(result, Status.SUCCESS, projectCode);
when(processService.findParentWorkflowInstance(1)).thenReturn(workflowInstance);
Map<String, Object> successRes =
workflowInstanceService.queryParentInstanceBySubId(loginUser, projectCode, 1);
Assertions.assertEquals(Status.SUCCESS,
successRes.get(Constants.STATUS));
@@ -726,13 +695,9 @@ public class WorkflowInstanceServiceTest {
long projectCode = 1L;
User loginUser = getAdminUser();
Project project = getProject(projectCode);
- Map<String, Object> result = new HashMap<>();
- putMsg(result, Status.PROJECT_NOT_FOUND, projectCode);
- // project auth fail
+ // workflow instance not exist
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
- when(projectService.checkProjectAndAuth(loginUser, project,
projectCode, INSTANCE_DELETE)).thenReturn(result);
-
assertThrows(ServiceException.class,
() ->
workflowInstanceService.deleteWorkflowInstanceById(loginUser, 1));
@@ -740,7 +705,6 @@ public class WorkflowInstanceServiceTest {
WorkflowInstance workflowInstance = getProcessInstance();
workflowInstance.setIsSubWorkflow(Flag.NO);
workflowInstance.setState(WorkflowExecutionStatus.RUNNING_EXECUTION);
- putMsg(result, Status.SUCCESS, projectCode);
when(processService.findWorkflowInstanceDetailById(1)).thenReturn(Optional.ofNullable(workflowInstance));
when(workflowDefinitionLogMapper.queryByDefinitionCodeAndVersion(Mockito.anyLong(),
Mockito.anyInt()))
.thenReturn(new WorkflowDefinitionLog());