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 6be492e060..0fecefecb0 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 @@ -36,7 +36,6 @@ import org.apache.dolphinscheduler.common.enums.AuthorizationType; import org.apache.dolphinscheduler.common.enums.UserType; import org.apache.dolphinscheduler.dao.entity.ProcessDefinition; import org.apache.dolphinscheduler.dao.entity.Project; -import org.apache.dolphinscheduler.dao.entity.ProjectUser; import org.apache.dolphinscheduler.dao.entity.User; import org.apache.dolphinscheduler.dao.mapper.ProcessDefinitionMapper; import org.apache.dolphinscheduler.dao.mapper.ProjectMapper; @@ -46,7 +45,6 @@ import org.apache.dolphinscheduler.dao.mapper.UserMapper; import org.apache.commons.collections4.CollectionUtils; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -105,18 +103,18 @@ public class ProjectServiceTest { @Test public void testCreateProject() { - User loginUser = getLoginUser(); - loginUser.setId(1); Mockito.when(resourcePermissionCheckService.operationPermissionCheck(AuthorizationType.PROJECTS, 1, PROJECT_CREATE, baseServiceLogger)).thenReturn(true); Mockito.when(resourcePermissionCheckService.resourcePermissionCheck(AuthorizationType.PROJECTS, null, 1, baseServiceLogger)).thenReturn(true); + + // REQUEST_PARAMS_NOT_VALID_ERROR Result result = projectService.createProject(loginUser, projectName, getDesc()); logger.info(result.toString()); Assertions.assertEquals(Status.REQUEST_PARAMS_NOT_VALID_ERROR.getCode(), 10001); - // project name exist + // PROJECT_ALREADY_EXISTS Mockito.when(projectMapper.queryByName(projectName)).thenReturn(getProject()); result = projectService.createProject(loginUser, projectName, projectName); logger.info(result.toString()); @@ -132,17 +130,16 @@ public class ProjectServiceTest { @Test public void testCheckProjectAndAuth() { - long projectCode = 1L; User loginUser = getLoginUser(); + // PROJECT_NOT_EXIST Map result = projectService.checkProjectAndAuth(loginUser, null, projectCode, PROJECT); logger.info(result.toString()); - Status status = (Status) result.get(Constants.STATUS); Assertions.assertEquals(Status.PROJECT_NOT_EXIST, result.get(Constants.STATUS)); - Project project = getProject(); // USER_NO_OPERATION_PROJECT_PERM + Project project = getProject(); project.setUserId(2); result = projectService.checkProjectAndAuth(loginUser, project, projectCode, PROJECT); logger.info(result.toString()); @@ -159,31 +156,10 @@ public class ProjectServiceTest { result = projectService.checkProjectAndAuth(loginUser, project, projectCode, PROJECT); logger.info(result.toString()); Assertions.assertEquals(Status.SUCCESS, result.get(Constants.STATUS)); - - Map result2 = new HashMap<>(); - - result2 = projectService.checkProjectAndAuth(loginUser, null, projectCode, PROJECT); - Assertions.assertEquals(Status.PROJECT_NOT_EXIST, result2.get(Constants.STATUS)); - - Project project1 = getProject(); - // USER_NO_OPERATION_PROJECT_PERM - project1.setUserId(2); - loginUser.setUserType(UserType.GENERAL_USER); - Mockito.when(resourcePermissionCheckService.operationPermissionCheck(AuthorizationType.PROJECTS, - loginUser.getId(), PROJECT, baseServiceLogger)).thenReturn(true); - result2 = projectService.checkProjectAndAuth(loginUser, project1, projectCode, PROJECT); - Assertions.assertEquals(Status.USER_NO_OPERATION_PROJECT_PERM, result2.get(Constants.STATUS)); - - // success - project1.setUserId(1); - projectService.checkProjectAndAuth(loginUser, project1, projectCode, PROJECT); - } @Test public void testHasProjectAndPerm() { - - // Mockito.when(projectUserMapper.queryProjectRelation(1, 1)).thenReturn(getProjectUser()); User loginUser = getLoginUser(); Project project = getProject(); Map result = new HashMap<>(); @@ -200,12 +176,11 @@ public class ProjectServiceTest { // success result = new HashMap<>(); project.setUserId(1); - loginUser.setUserType(UserType.ADMIN_USER); Mockito.when(resourcePermissionCheckService.operationPermissionCheck(AuthorizationType.PROJECTS, loginUser.getId(), null, baseServiceLogger)).thenReturn(true); Mockito.when(resourcePermissionCheckService.resourcePermissionCheck(AuthorizationType.PROJECTS, new Object[]{project.getId()}, - 0, baseServiceLogger)).thenReturn(true); + loginUser.getId(), baseServiceLogger)).thenReturn(true); checkResult = projectService.hasProjectAndPerm(loginUser, project, result, null); logger.info(result.toString()); Assertions.assertTrue(checkResult); @@ -240,8 +215,6 @@ public class ProjectServiceTest { @Test public void testHasProjectAndWritePerm() { - - // Mockito.when(projectUserMapper.queryProjectRelation(1, 1)).thenReturn(getProjectUser()); User loginUser = getLoginUser(); Project project = getProject(); Map result = new HashMap<>(); @@ -263,7 +236,7 @@ public class ProjectServiceTest { loginUser.getId(), null, baseServiceLogger)).thenReturn(true); Mockito.when(resourcePermissionCheckService.resourcePermissionCheck(AuthorizationType.PROJECTS, new Object[]{project.getId()}, - 0, baseServiceLogger)).thenReturn(true); + loginUser.getId(), baseServiceLogger)).thenReturn(true); checkResult = projectService.hasProjectAndWritePerm(loginUser, project, result); logger.info(result.toString()); Assertions.assertTrue(checkResult); @@ -273,19 +246,14 @@ public class ProjectServiceTest { public void testDeleteProject() { User loginUser = getLoginUser(); Mockito.when(projectMapper.queryByCode(1L)).thenReturn(getProject()); - Mockito.when( - resourcePermissionCheckService.operationPermissionCheck(AuthorizationType.PROJECTS, loginUser.getId(), - PROJECT_DELETE, baseServiceLogger)) - .thenReturn(true); + // PROJECT_NOT_FOUND Result result = projectService.deleteProject(loginUser, 11L); logger.info(result.toString()); Assertions.assertTrue(Status.PROJECT_NOT_FOUND.getCode() == result.getCode()); loginUser.setId(2); + // USER_NO_OPERATION_PROJECT_PERM - Mockito.when(resourcePermissionCheckService.resourcePermissionCheck(AuthorizationType.PROJECTS, new Object[]{1}, - loginUser.getId(), - baseServiceLogger)).thenReturn(true); result = projectService.deleteProject(loginUser, 1L); logger.info(result.toString()); Assertions.assertTrue(Status.USER_NO_WRITE_PROJECT_PERM.getCode() == result.getCode()); @@ -298,6 +266,10 @@ public class ProjectServiceTest { resourcePermissionCheckService.resourcePermissionCheck(AuthorizationType.PROJECTS, new Object[]{1}, 0, baseServiceLogger)) .thenReturn(true); + Mockito.when( + resourcePermissionCheckService.operationPermissionCheck(AuthorizationType.PROJECTS, loginUser.getId(), + PROJECT_DELETE, baseServiceLogger)) + .thenReturn(true); result = projectService.deleteProject(loginUser, 1L); logger.info(result.toString()); Assertions.assertTrue(Status.DELETE_PROJECT_ERROR_DEFINES_NOT_NULL.getCode() == result.getCode()); @@ -317,25 +289,26 @@ public class ProjectServiceTest { loginUser.setId(1); Project project = getProject(); project.setCode(2L); - Mockito.when( - resourcePermissionCheckService.operationPermissionCheck(AuthorizationType.PROJECTS, loginUser.getId(), - PROJECT_UPDATE, baseServiceLogger)) - .thenReturn(true); - Mockito.when(resourcePermissionCheckService.resourcePermissionCheck(AuthorizationType.PROJECTS, new Object[]{1}, - loginUser.getId(), - baseServiceLogger)).thenReturn(true); Mockito.when(projectMapper.queryByName(projectName)).thenReturn(project); Mockito.when(projectMapper.queryByCode(2L)).thenReturn(getProject()); - // PROJECT_NOT_FOUNT + // PROJECT_NOT_FOUND Result result = projectService.update(loginUser, 1L, projectName, "desc", "testUser"); logger.info(result.toString()); Assertions.assertTrue(Status.PROJECT_NOT_FOUND.getCode() == result.getCode()); // PROJECT_ALREADY_EXISTS + Mockito.when( + resourcePermissionCheckService.operationPermissionCheck(AuthorizationType.PROJECTS, loginUser.getId(), + PROJECT_UPDATE, baseServiceLogger)) + .thenReturn(true); + Mockito.when(resourcePermissionCheckService.resourcePermissionCheck(AuthorizationType.PROJECTS, new Object[]{1}, + loginUser.getId(), + baseServiceLogger)).thenReturn(true); result = projectService.update(loginUser, 2L, projectName, "desc", userName); logger.info(result.toString()); Assertions.assertTrue(Status.PROJECT_ALREADY_EXISTS.getCode() == result.getCode()); + // USER_NOT_EXIST Mockito.when(userMapper.queryByUserNameAccurately(Mockito.any())).thenReturn(null); result = projectService.update(loginUser, 2L, "test", "desc", "testuser"); Assertions.assertTrue(Status.USER_NOT_EXIST.getCode() == result.getCode()); @@ -381,7 +354,6 @@ public class ProjectServiceTest { Assertions.assertTrue(Status.PROJECT_NOT_FOUND.getCode() == result.getCode()); // Failure 2: USER_NO_OPERATION_PROJECT_PERM - loginUser.setId(100); Mockito.when(this.projectMapper.queryByCode(Mockito.anyLong())).thenReturn(this.getProject()); result = this.projectService.queryAuthorizedUser(loginUser, 3682329499136L); logger.info("FAILURE 2: {}", result.toString()); @@ -403,10 +375,6 @@ public class ProjectServiceTest { loginUser.setId(1); loginUser.setUserType(UserType.GENERAL_USER); - Mockito.when( - resourcePermissionCheckService.operationPermissionCheck(AuthorizationType.PROJECTS, - loginUser.getId(), PROJECT, baseServiceLogger)) - .thenReturn(true); Mockito.when(resourcePermissionCheckService.resourcePermissionCheck(AuthorizationType.PROJECTS, new Object[]{1}, 1, baseServiceLogger)).thenReturn(true); result = this.projectService.queryAuthorizedUser(loginUser, 3682329499136L); @@ -433,13 +401,11 @@ public class ProjectServiceTest { @Test public void testQueryProjectCreatedAndAuthorizedByUser() { - Result result; User loginUser = getLoginUser(); Set set = new HashSet(); set.add(1); - List list = new ArrayList<>(1); - list.add(1); + // not admin user Mockito.when(resourcePermissionCheckService.userOwnedResourceIdsAcquisition(AuthorizationType.PROJECTS, loginUser.getId(), projectLogger)).thenReturn(set); @@ -577,13 +543,6 @@ public class ProjectServiceTest { return list; } - private List getSingleList() { - return Collections.singletonList(getProject(2)); - } - - /** - * create admin user - */ private User getLoginUser() { User loginUser = new User(); loginUser.setUserType(UserType.GENERAL_USER); @@ -616,16 +575,6 @@ public class ProjectServiceTest { return userList; } - /** - * get project user - */ - private ProjectUser getProjectUser() { - ProjectUser projectUser = new ProjectUser(); - projectUser.setProjectId(1); - projectUser.setUserId(1); - return projectUser; - } - private List getProcessDefinitions() { List list = new ArrayList<>(); ProcessDefinition processDefinition = new ProcessDefinition(); @@ -634,10 +583,6 @@ public class ProjectServiceTest { return list; } - private List getProjectIds() { - return Collections.singletonList(1); - } - private String getDesc() { return "projectUserMapper.deleteProjectRelation(projectId,userId)projectUserMappe" + ".deleteProjectRelation(projectId,userId)projectUserMappe"