package jnpf.dmsController.permission;
|
|
import cn.dev33.satoken.same.SaSameUtil;
|
import jnpf.dmsController.DmsControllerTestSupport;
|
import jnpf.dmsPermission.DmsTrustedServiceGuard;
|
import jnpf.dmsService.expiry.DmsFileExpiryJob;
|
import org.junit.jupiter.api.Test;
|
import org.mockito.InOrder;
|
import org.mockito.MockedStatic;
|
import static org.junit.jupiter.api.Assertions.*;
|
import static org.mockito.Mockito.*;
|
|
class DmsInternalExpiryControllerTest extends DmsControllerTestSupport {
|
@Test void verifiesServiceTokenAndAllowlistBeforeRunning() {
|
DmsTrustedServiceGuard guard = mock(DmsTrustedServiceGuard.class);
|
DmsFileExpiryJob job = mock(DmsFileExpiryJob.class);
|
DmsFileExpiryJob.Result result = new DmsFileExpiryJob.Result(0, 0, 0, 0, 0);
|
when(job.run()).thenReturn(result);
|
try (MockedStatic<SaSameUtil> same = mockStatic(SaSameUtil.class)) {
|
assertSame(result, new DmsInternalExpiryController(guard, job).run("jnpf-flowable").getData());
|
same.verify(SaSameUtil::checkCurrentRequestToken);
|
InOrder order = inOrder(guard, job);
|
order.verify(guard).requireAllowed("jnpf-flowable");
|
order.verify(job).run();
|
}
|
}
|
|
@Test void deniedCallerCannotStartRecovery() {
|
DmsTrustedServiceGuard guard = mock(DmsTrustedServiceGuard.class);
|
DmsFileExpiryJob job = mock(DmsFileExpiryJob.class);
|
when(guard.requireAllowed("unknown")).thenThrow(new IllegalArgumentException("denied"));
|
try (MockedStatic<SaSameUtil> same = mockStatic(SaSameUtil.class)) {
|
assertThrows(IllegalArgumentException.class,
|
() -> new DmsInternalExpiryController(guard, job).run("unknown"));
|
verifyNoInteractions(job);
|
}
|
}
|
}
|