刘光辉
14 小时以前 34981c30a78e8bbd7791131059a9210f9928b62c
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
package jnpf.dmsService;
 
import jnpf.dmsEntity.permission.vo.DmsPermissionResourceVO;
import jnpf.dmsMapper.DmsDocumentMapper;
import jnpf.dmsMapper.DmsFileVersionMapper;
import jnpf.dmsMapper.DmsFolderMapper;
import jnpf.dmsMapper.DmsPermissionResourceMapper;
import jnpf.dmsPermission.DmsCurrentIdentity;
import jnpf.dmsPermission.DmsCursorCodec;
import jnpf.dmsPermission.DmsPermissionProperties;
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.assertSame;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
 
class DmsResourceQueryServiceTest {
 
    @Test
    void usesAdministratorResourceTreeQuery() {
        Fixture fixture = new Fixture();
        List<DmsPermissionResourceVO> expected = Collections.singletonList(new DmsPermissionResourceVO());
        when(fixture.resourceMapper.selectChildren("tenant-1", fixture.folderId, 100)).thenReturn(expected);
 
        List<DmsPermissionResourceVO> result = fixture.service.children(fixture.folderId, 100);
 
        assertSame(expected, result);
        verify(fixture.currentIdentity).requirePermissionAdministrator();
        verify(fixture.resourceMapper).selectChildren("tenant-1", fixture.folderId, 100);
    }
 
    private static class Fixture {
        private final UUID folderId = UUID.fromString("018f0000-0000-7000-8000-000000000501");
        private final DmsCurrentIdentity currentIdentity = mock(DmsCurrentIdentity.class);
        private final DmsPermissionProperties properties = mock(DmsPermissionProperties.class);
        private final DmsCursorCodec cursorCodec = mock(DmsCursorCodec.class);
        private final DmsPermissionResourceMapper resourceMapper = mock(DmsPermissionResourceMapper.class);
        private final DmsFolderMapper folderMapper = mock(DmsFolderMapper.class);
        private final DmsDocumentMapper documentMapper = mock(DmsDocumentMapper.class);
        private final DmsFileVersionMapper fileVersionMapper = mock(DmsFileVersionMapper.class);
        private final DmsResourceQueryService service = new DmsResourceQueryService(
                currentIdentity, properties, cursorCodec, resourceMapper,
                folderMapper, documentMapper, fileVersionMapper);
 
        private Fixture() {
            when(currentIdentity.tenantId()).thenReturn("tenant-1");
            when(properties.getDefaultPageSize()).thenReturn(50);
            when(properties.getMaxPageSize()).thenReturn(100);
        }
    }
}