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 expected = Collections.singletonList(new DmsPermissionResourceVO()); when(fixture.resourceMapper.selectChildren("tenant-1", fixture.folderId, 100)).thenReturn(expected); List 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); } } }