Browse Source

[Improvement-12697][UT] Improve the ProjectServiceTest (#12698)

Rick Cheng 2 years ago
parent
commit
7c97febefb

+ 23 - 78
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<String, Object> 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<String, Object> 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<String, Object> 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<String, Object> 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<Integer> set = new HashSet();
         set.add(1);
-        List<Integer> 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<Project> 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<ProcessDefinition> getProcessDefinitions() {
         List<ProcessDefinition> list = new ArrayList<>();
         ProcessDefinition processDefinition = new ProcessDefinition();
@@ -634,10 +583,6 @@ public class ProjectServiceTest {
         return list;
     }
 
-    private List<Integer> getProjectIds() {
-        return Collections.singletonList(1);
-    }
-
     private String getDesc() {
         return "projectUserMapper.deleteProjectRelation(projectId,userId)projectUserMappe"
                 + ".deleteProjectRelation(projectId,userId)projectUserMappe"