This is an automated email from the ASF dual-hosted git repository.

xincheng 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 ae1fe84e85 [TEST] fill up alert group service test (#15777)
ae1fe84e85 is described below

commit ae1fe84e85bc140f92d30da001f548d229be66be
Author: Evan Sun <[email protected]>
AuthorDate: Fri Mar 29 13:28:55 2024 +0800

    [TEST] fill up alert group service test (#15777)
    
    Co-authored-by: abzymeinsjtu <[email protected]>
    Co-authored-by: Eric Gao <[email protected]>
---
 .../api/service/AlertGroupServiceTest.java         | 83 +++++++++++++++++++++-
 1 file changed, 81 insertions(+), 2 deletions(-)

diff --git 
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/AlertGroupServiceTest.java
 
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/AlertGroupServiceTest.java
index 85cbcbc833..6571d8b0f8 100644
--- 
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/AlertGroupServiceTest.java
+++ 
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/AlertGroupServiceTest.java
@@ -22,6 +22,7 @@ import static 
org.apache.dolphinscheduler.api.AssertionsHelper.assertThrowsServi
 import static 
org.apache.dolphinscheduler.api.constants.ApiFuncIdentificationConstant.ALERT_GROUP_CREATE;
 import static 
org.apache.dolphinscheduler.api.constants.ApiFuncIdentificationConstant.ALERT_GROUP_DELETE;
 import static 
org.apache.dolphinscheduler.api.constants.ApiFuncIdentificationConstant.ALERT_GROUP_UPDATE;
+import static 
org.apache.dolphinscheduler.api.constants.ApiFuncIdentificationConstant.ALERT_GROUP_VIEW;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.eq;
@@ -41,6 +42,7 @@ import 
org.apache.dolphinscheduler.dao.mapper.AlertGroupMapper;
 import org.apache.commons.collections4.CollectionUtils;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 
 import org.junit.jupiter.api.Assertions;
@@ -67,6 +69,12 @@ public class AlertGroupServiceTest {
     private static final Logger baseServiceLogger = 
LoggerFactory.getLogger(BaseServiceImpl.class);
     private static final Logger logger = 
LoggerFactory.getLogger(AlertGroupServiceTest.class);
     private static final Logger alertGroupServiceLogger = 
LoggerFactory.getLogger(AlertGroupServiceImpl.class);
+    private String tooLongDescription =
+            "this is a 
toooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo"
+                    +
+                    
"ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo"
+                    +
+                    
"ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
 long description";
 
     @InjectMocks
     private AlertGroupServiceImpl alertGroupService;
@@ -81,10 +89,25 @@ public class AlertGroupServiceTest {
 
     @Test
     public void testQueryAlertGroup() {
+        User user = getLoginUser();
 
         when(alertGroupMapper.queryAllGroupList()).thenReturn(getList());
-        List<AlertGroup> alertGroups = 
alertGroupService.queryAllAlertGroup(getLoginUser());
+        List<AlertGroup> alertGroups = 
alertGroupService.queryAllAlertGroup(user);
         Assertions.assertEquals(2, alertGroups.size());
+
+        user.setUserType(UserType.GENERAL_USER);
+        user.setId(2);
+
+        
when(resourcePermissionCheckService.userOwnedResourceIdsAcquisition(AuthorizationType.ALERT_GROUP,
 2,
+                alertGroupServiceLogger))
+                        .thenReturn(Collections.emptySet());
+        
Assertions.assertEquals(alertGroupService.queryAllAlertGroup(user).size(), 0);
+
+        user.setId(3);
+        
when(resourcePermissionCheckService.userOwnedResourceIdsAcquisition(AuthorizationType.ALERT_GROUP,
 3,
+                alertGroupServiceLogger))
+                        .thenReturn(Collections.singleton(1));
+        assertDoesNotThrow(() -> alertGroupService.queryAllAlertGroup(user));
     }
 
     @Test
@@ -95,6 +118,35 @@ public class AlertGroupServiceTest {
         Assertions.assertEquals(1, alertGroups.size());
     }
 
+    @Test
+    public void testQueryAlertGroupById() {
+        User user = getLoginUser();
+        user.setId(2);
+        user.setUserType(UserType.GENERAL_USER);
+
+        
when(resourcePermissionCheckService.operationPermissionCheck(AuthorizationType.ALERT_GROUP,
 2, ALERT_GROUP_VIEW,
+                baseServiceLogger))
+                        .thenReturn(false);
+
+        assertThrowsServiceException(Status.USER_NO_OPERATION_PERM,
+                () -> alertGroupService.queryAlertGroupById(user, 1));
+
+        user.setId(1);
+        
when(resourcePermissionCheckService.operationPermissionCheck(AuthorizationType.ALERT_GROUP,
 1, ALERT_GROUP_VIEW,
+                baseServiceLogger))
+                        .thenReturn(true);
+        
when(resourcePermissionCheckService.resourcePermissionCheck(AuthorizationType.ALERT_GROUP,
 new Object[]{999}, 1,
+                baseServiceLogger))
+                        .thenReturn(true);
+        when(alertGroupMapper.selectById(999)).thenReturn(null);
+
+        assertThrowsServiceException(Status.ALERT_GROUP_NOT_EXIST,
+                () -> alertGroupService.queryAlertGroupById(user, 999));
+
+        when(alertGroupMapper.selectById(999)).thenReturn(getEntity());
+        assertDoesNotThrow(() -> alertGroupService.queryAlertGroupById(user, 
999));
+    }
+
     @Test
     public void testListPaging() {
         IPage<AlertGroup> page = new Page<>(1, 10);
@@ -114,6 +166,18 @@ public class AlertGroupServiceTest {
         alertGroupPageInfo = alertGroupService.listPaging(user, groupName, 1, 
10);
         
Assertions.assertTrue(CollectionUtils.isNotEmpty(alertGroupPageInfo.getTotalList()));
 
+        user.setUserType(UserType.GENERAL_USER);
+        user.setId(99);
+        page.setTotal(1);
+        page.setRecords(Collections.singletonList(getEntity()));
+
+        
when(resourcePermissionCheckService.userOwnedResourceIdsAcquisition(AuthorizationType.ALERT_GROUP,
 user.getId(),
+                alertGroupServiceLogger))
+                        .thenReturn(Collections.singleton(1));
+        when(alertGroupMapper.queryAlertGroupPageByIds(any(Page.class), 
any(List.class), eq(groupName)))
+                .thenReturn(page);
+
+        alertGroupService.listPaging(user, groupName, 1, 10).getTotal();
     }
 
     @Test
@@ -134,8 +198,19 @@ public class AlertGroupServiceTest {
                 ALERT_GROUP_CREATE, baseServiceLogger)).thenReturn(true);
         
when(resourcePermissionCheckService.resourcePermissionCheck(AuthorizationType.ALERT_GROUP,
 null, user.getId(),
                 baseServiceLogger)).thenReturn(true);
+
+        assertThrowsServiceException(Status.DESCRIPTION_TOO_LONG_ERROR,
+                () -> alertGroupService.createAlertGroup(user, groupName, 
tooLongDescription, null));
         AlertGroup alertGroup = alertGroupService.createAlertGroup(user, 
groupName, groupName, null);
         assertNotNull(alertGroup);
+
+        when(alertGroupMapper.insert(any(AlertGroup.class))).thenReturn(-1);
+        assertThrowsServiceException(Status.CREATE_ALERT_GROUP_ERROR,
+                () -> alertGroupService.createAlertGroup(user, groupName, 
groupName, null));
+
+        
when(alertGroupMapper.insert(any(AlertGroup.class))).thenThrow(DuplicateKeyException.class);
+        assertThrowsServiceException(Status.ALERT_GROUP_EXIST,
+                () -> alertGroupService.createAlertGroup(user, groupName, 
groupName, null));
     }
 
     @Test
@@ -162,7 +237,7 @@ public class AlertGroupServiceTest {
         user.setUserType(UserType.GENERAL_USER);
         assertThrowsServiceException(Status.USER_NO_OPERATION_PERM,
                 () -> alertGroupService.updateAlertGroupById(user, 1, 
groupName, groupName, null));
-        user.setUserType(UserType.ADMIN_USER);
+
         // not exist
         user.setUserType(UserType.ADMIN_USER);
         
when(resourcePermissionCheckService.operationPermissionCheck(AuthorizationType.ALERT_GROUP,
 user.getId(),
@@ -171,6 +246,10 @@ public class AlertGroupServiceTest {
                 baseServiceLogger)).thenReturn(true);
         assertThrowsServiceException(Status.ALERT_GROUP_NOT_EXIST,
                 () -> alertGroupService.updateAlertGroupById(user, 1, 
groupName, groupName, null));
+
+        assertThrowsServiceException(Status.DESCRIPTION_TOO_LONG_ERROR,
+                () -> alertGroupService.updateAlertGroupById(user, 1, 
groupName, tooLongDescription, null));
+
         // success
         
when(resourcePermissionCheckService.resourcePermissionCheck(AuthorizationType.ALERT_GROUP,
 new Object[]{3},
                 user.getId(), baseServiceLogger)).thenReturn(true);

Reply via email to