刘光辉
4 小时以前 06f314545ac3514d7ce28939920866ae8188d31c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
package jnpf.dmsController.permission;
 
import com.fasterxml.jackson.databind.ObjectMapper;
import jnpf.dmsController.DmsControllerTestSupport;
import jnpf.dmsEntity.permission.form.PermissionGrantBatchForm;
import jnpf.dmsEntity.permission.form.PermissionRevokeForm;
import jnpf.dmsEntity.permission.form.UserFolderPermissionTreeForm;
import jnpf.dmsEntity.permission.vo.DmsCursorPageVO;
import jnpf.dmsEntity.permission.vo.DmsPermissionGrantVO;
import jnpf.dmsEntity.permission.vo.DmsPrincipalOptionVO;
import jnpf.dmsEntity.permission.vo.DmsPermissionUsageVO;
import jnpf.dmsEntity.permission.vo.DmsUserFolderPermissionTreeNodeVO;
import jnpf.dmsService.DmsPermissionAdminQueryService;
import jnpf.dmsService.DmsPermissionGrantService;
import jnpf.dmsService.DmsUserFolderPermissionTreeService;
import org.junit.jupiter.api.Test;
 
import java.util.Collections;
import java.util.List;
import java.util.UUID;
 
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertSame;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
 
class PermissionGrantControllerTest extends DmsControllerTestSupport {
    private final DmsPermissionGrantService grantService = mock(DmsPermissionGrantService.class);
    private final DmsPermissionAdminQueryService queryService = mock(DmsPermissionAdminQueryService.class);
    private final DmsUserFolderPermissionTreeService userFolderPermissionTreeService =
            mock(DmsUserFolderPermissionTreeService.class);
    private final PermissionGrantController controller = new PermissionGrantController(
            grantService, queryService, userFolderPermissionTreeService);
 
    @Test
    void delegatesEveryGrantManagementApiWithUnchangedArguments() {
        UUID resourceId = UUID.randomUUID();
        UUID permissionId = UUID.randomUUID();
        PermissionGrantBatchForm grantForm = mock(PermissionGrantBatchForm.class);
        PermissionRevokeForm revokeForm = mock(PermissionRevokeForm.class);
        UserFolderPermissionTreeForm treeForm = mock(UserFolderPermissionTreeForm.class);
        List<DmsPermissionGrantVO> grants = Collections.singletonList(mock(DmsPermissionGrantVO.class));
        DmsCursorPageVO<DmsPermissionGrantVO> page = new DmsCursorPageVO<>();
        DmsCursorPageVO<DmsUserFolderPermissionTreeNodeVO> treePage = new DmsCursorPageVO<>();
        DmsPermissionGrantVO grant = mock(DmsPermissionGrantVO.class);
        List<DmsPermissionUsageVO> usages = Collections.singletonList(mock(DmsPermissionUsageVO.class));
        List<DmsPrincipalOptionVO> groups = Collections.singletonList(mock(DmsPrincipalOptionVO.class));
        when(grantService.grant(grantForm)).thenReturn(grants);
        when(queryService.grants(resourceId, "USER", "user-1", "cursor-1", 25)).thenReturn(page);
        when(queryService.grant(permissionId)).thenReturn(grant);
        when(grantService.revoke(revokeForm)).thenReturn(grants);
        when(queryService.grants(null, "GROUP", "group-1", "cursor-2", 20)).thenReturn(page);
        when(queryService.usages(permissionId, 15)).thenReturn(usages);
        when(queryService.permissionGroups("quality", 10)).thenReturn(groups);
        when(userFolderPermissionTreeService.tree(treeForm)).thenReturn(treePage);
 
        assertSame(grants, controller.grant(grantForm).getData());
        assertSame(page, controller.grants(resourceId, "USER", "user-1", "cursor-1", 25).getData());
        assertSame(grant, controller.grant(permissionId).getData());
        assertSame(grants, controller.revoke(revokeForm).getData());
        assertSame(page, controller.principalGrants("GROUP", "group-1", "cursor-2", 20).getData());
        assertSame(usages, controller.usages(permissionId, 15).getData());
        assertSame(groups, controller.permissionGroups("quality", 10).getData());
        assertSame(treePage, controller.userFolderPermissionTree(treeForm).getData());
 
        verify(grantService).grant(grantForm);
        verify(queryService).grants(resourceId, "USER", "user-1", "cursor-1", 25);
        verify(queryService).grant(permissionId);
        verify(grantService).revoke(revokeForm);
        verify(queryService).grants(null, "GROUP", "group-1", "cursor-2", 20);
        verify(queryService).usages(permissionId, 15);
        verify(queryService).permissionGroups("quality", 10);
        verify(userFolderPermissionTreeService).tree(treeForm);
    }
 
    @Test
    void bindsBizSignFromGrantRequestBody() throws Exception {
        PermissionGrantBatchForm form = new ObjectMapper().readValue(
                "{\"biz_sign\":\"sign-1\"}", PermissionGrantBatchForm.class);
 
        assertEquals("sign-1", form.getBizSign());
    }
 
    @Test
    void bindsBizSignFromRevokeRequestBody() throws Exception {
        PermissionRevokeForm form = new ObjectMapper().readValue(
                "{\"biz_sign\":\"sign-1\"}", PermissionRevokeForm.class);
 
        assertEquals("sign-1", form.getBizSign());
    }
}