package jnpf.dmsController.permission;
|
|
import jnpf.base.ActionResult;
|
import jnpf.dmsController.DmsControllerTestSupport;
|
import jnpf.dmsEntity.permission.form.PermissionBatchDecisionForm;
|
import jnpf.dmsEntity.permission.form.PermissionDecisionForm;
|
import jnpf.dmsEntity.permission.vo.DmsAdminCapabilitiesVO;
|
import jnpf.dmsEntity.permission.vo.DmsPermissionDecisionVO;
|
import jnpf.dmsPermission.DmsCurrentIdentity;
|
import jnpf.dmsService.DmsPermissionDecisionService;
|
import org.junit.jupiter.api.Test;
|
|
import java.util.Collections;
|
import java.util.List;
|
|
import static org.junit.jupiter.api.Assertions.assertSame;
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.when;
|
|
class PermissionDecisionControllerTest extends DmsControllerTestSupport {
|
private final DmsPermissionDecisionService decisionService = mock(DmsPermissionDecisionService.class);
|
private final DmsCurrentIdentity currentIdentity = mock(DmsCurrentIdentity.class);
|
private final PermissionDecisionController controller =
|
new PermissionDecisionController(decisionService, currentIdentity);
|
|
@Test
|
void delegatesSingleAndBatchDecisionsWithoutChangingRequests() {
|
PermissionDecisionForm request = mock(PermissionDecisionForm.class);
|
DmsPermissionDecisionVO decision = mock(DmsPermissionDecisionVO.class);
|
when(decisionService.evaluate(request)).thenReturn(decision);
|
|
ActionResult<DmsPermissionDecisionVO> singleResult = controller.evaluate(request);
|
|
assertSame(decision, singleResult.getData());
|
verify(decisionService).evaluate(request);
|
|
List<PermissionDecisionForm> requests = Collections.singletonList(request);
|
List<DmsPermissionDecisionVO> decisions = Collections.singletonList(decision);
|
PermissionBatchDecisionForm batch = mock(PermissionBatchDecisionForm.class);
|
when(batch.getRequests()).thenReturn(requests);
|
when(decisionService.evaluate(requests)).thenReturn(decisions);
|
|
ActionResult<List<DmsPermissionDecisionVO>> batchResult = controller.batchEvaluate(batch);
|
|
assertSame(decisions, batchResult.getData());
|
verify(decisionService).evaluate(requests);
|
}
|
|
@Test
|
void exposesCurrentPermissionAdministratorCapability() {
|
when(currentIdentity.isPermissionAdministrator()).thenReturn(true);
|
|
ActionResult<DmsAdminCapabilitiesVO> result = controller.capabilities();
|
|
assertTrue(result.getData().isPermissionAdministrator());
|
verify(currentIdentity).isPermissionAdministrator();
|
}
|
}
|