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());
|
}
|
}
|