This is an automated email from the ASF dual-hosted git repository.
chufenggao 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 ebcdaeb9ac [TEST] increase coverage of project preference service test
(#15939)
ebcdaeb9ac is described below
commit ebcdaeb9ac125a13b74ec3f057693816a6758426
Author: Evan Sun <[email protected]>
AuthorDate: Mon Apr 29 21:03:01 2024 +0800
[TEST] increase coverage of project preference service test (#15939)
---
.../api/service/ProjectPreferenceServiceTest.java | 60 ++++++++++++++++++++--
1 file changed, 56 insertions(+), 4 deletions(-)
diff --git
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ProjectPreferenceServiceTest.java
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ProjectPreferenceServiceTest.java
index 530c15d48e..7a74a7c265 100644
---
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ProjectPreferenceServiceTest.java
+++
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ProjectPreferenceServiceTest.java
@@ -60,28 +60,65 @@ public class ProjectPreferenceServiceTest {
public void testUpdateProjectPreference() {
User loginUser = getGeneralUser();
+ // no permission
+ Mockito.when(projectService.hasProjectAndWritePerm(Mockito.any(),
Mockito.any(), Mockito.any(Result.class)))
+ .thenReturn(false);
+ Result result =
projectPreferenceService.updateProjectPreference(loginUser, projectCode,
"value");
+ Assertions.assertNull(result.getCode());
+ Assertions.assertNull(result.getData());
+ Assertions.assertNull(result.getMsg());
+
+ // when preference exists in project
+
Mockito.when(projectPreferenceMapper.selectOne(Mockito.any())).thenReturn(null);
Mockito.when(projectMapper.queryByCode(projectCode)).thenReturn(getProject(projectCode));
+
+ // success
Mockito.when(projectService.hasProjectAndWritePerm(Mockito.any(),
Mockito.any(), Mockito.any(Result.class)))
.thenReturn(true);
-
Mockito.when(projectPreferenceMapper.selectOne(Mockito.any())).thenReturn(null);
Mockito.when(projectPreferenceMapper.insert(Mockito.any())).thenReturn(1);
- Result result =
projectPreferenceService.updateProjectPreference(loginUser, projectCode,
"value");
+ result = projectPreferenceService.updateProjectPreference(loginUser,
projectCode, "value");
+ Assertions.assertEquals(Status.SUCCESS.getCode(), result.getCode());
+
+ // database operatation fail
+
Mockito.when(projectPreferenceMapper.insert(Mockito.any())).thenReturn(-1);
+ result = projectPreferenceService.updateProjectPreference(loginUser,
projectCode, "value");
+
Assertions.assertEquals(Status.CREATE_PROJECT_PREFERENCE_ERROR.getCode(),
result.getCode());
+
+ // when preference exists in project
+
Mockito.when(projectPreferenceMapper.selectOne(Mockito.any())).thenReturn(getProjectPreference());
+
+ // success
+
Mockito.when(projectPreferenceMapper.updateById(Mockito.any())).thenReturn(1);
+ result = projectPreferenceService.updateProjectPreference(loginUser,
projectCode, "value");
Assertions.assertEquals(Status.SUCCESS.getCode(), result.getCode());
+
+ // database operation fail
+
Mockito.when(projectPreferenceMapper.updateById(Mockito.any())).thenReturn(-1);
+ result = projectPreferenceService.updateProjectPreference(loginUser,
projectCode, "value");
+
Assertions.assertEquals(Status.UPDATE_PROJECT_PREFERENCE_ERROR.getCode(),
result.getCode());
}
@Test
public void testQueryProjectPreferenceByProjectCode() {
User loginUser = getGeneralUser();
+ // no permission
+ Mockito.when(projectService.hasProjectAndWritePerm(Mockito.any(),
Mockito.any(), Mockito.any(Result.class)))
+ .thenReturn(false);
+ Result result =
projectPreferenceService.queryProjectPreferenceByProjectCode(loginUser,
projectCode);
+ Assertions.assertNull(result.getCode());
+ Assertions.assertNull(result.getData());
+ Assertions.assertNull(result.getMsg());
+
// PROJECT_PARAMETER_NOT_EXISTS
Mockito.when(projectMapper.queryByCode(projectCode)).thenReturn(getProject(projectCode));
Mockito.when(projectService.hasProjectAndPerm(Mockito.any(),
Mockito.any(), Mockito.any(Result.class),
Mockito.any())).thenReturn(true);
Mockito.when(projectPreferenceMapper.selectOne(Mockito.any())).thenReturn(null);
- Result result =
projectPreferenceService.queryProjectPreferenceByProjectCode(loginUser,
projectCode);
+ result =
projectPreferenceService.queryProjectPreferenceByProjectCode(loginUser,
projectCode);
Assertions.assertEquals(Status.SUCCESS.getCode(), result.getCode());
// SUCCESS
@@ -94,14 +131,29 @@ public class ProjectPreferenceServiceTest {
public void testEnableProjectPreference() {
User loginUser = getGeneralUser();
+ // no permission
+ Mockito.when(projectService.hasProjectAndWritePerm(Mockito.any(),
Mockito.any(), Mockito.any(Result.class)))
+ .thenReturn(false);
+ Result result =
projectPreferenceService.enableProjectPreference(loginUser, projectCode, 1);
+ Assertions.assertNull(result.getCode());
+ Assertions.assertNull(result.getData());
+ Assertions.assertNull(result.getMsg());
+
Mockito.when(projectMapper.queryByCode(projectCode)).thenReturn(getProject(projectCode));
Mockito.when(projectService.hasProjectAndWritePerm(Mockito.any(),
Mockito.any(), Mockito.any(Result.class)))
.thenReturn(true);
+ // success
Mockito.when(projectPreferenceMapper.selectOne(Mockito.any())).thenReturn(getProjectPreference());
- Result result =
projectPreferenceService.enableProjectPreference(loginUser, projectCode, 1);
+
Mockito.when(projectPreferenceMapper.updateById(Mockito.any())).thenReturn(1);
+ result = projectPreferenceService.enableProjectPreference(loginUser,
projectCode, 2);
Assertions.assertEquals(Status.SUCCESS.getCode(), result.getCode());
+ // db operation fail
+
Mockito.when(projectPreferenceMapper.selectOne(Mockito.any())).thenReturn(getProjectPreference());
+
Mockito.when(projectPreferenceMapper.updateById(Mockito.any())).thenReturn(-1);
+ result = projectPreferenceService.enableProjectPreference(loginUser,
projectCode, 2);
+
Assertions.assertEquals(Status.UPDATE_PROJECT_PREFERENCE_STATE_ERROR.getCode(),
result.getCode());
}
private User getGeneralUser() {