package jnpf.fileStorage.dms;
|
|
import jnpf.base.ActionResult;
|
import jnpf.base.ActionResultCode;
|
import jnpf.dms.DmsResourceApi;
|
import jnpf.dmsEntity.print.form.DmsWorkflowPrintAuthorizeForm;
|
import jnpf.dmsEntity.print.vo.DmsWorkflowPrintAuthorizationVO;
|
import jnpf.exception.DataException;
|
import jnpf.flowable.WorkFlowApi;
|
import jnpf.flowable.entity.TaskEntity;
|
import jnpf.flowable.enums.TaskStatusEnum;
|
import org.junit.Test;
|
|
import static org.junit.Assert.assertSame;
|
import static org.junit.Assert.assertThrows;
|
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.never;
|
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.when;
|
|
public class DmsWorkflowPrintAuthorizeServiceTest {
|
private final WorkFlowApi workFlowApi = mock(WorkFlowApi.class);
|
private final DmsResourceApi dmsResourceApi = mock(DmsResourceApi.class);
|
private final DmsWorkflowPrintAuthorizeService service =
|
new DmsWorkflowPrintAuthorizeService(workFlowApi, dmsResourceApi);
|
|
@Test
|
public void delegatesApprovedRequestToDms() {
|
DmsWorkflowPrintAuthorizeForm form = form();
|
when(workFlowApi.getInfoSubmit("task-1")).thenReturn(task(TaskStatusEnum.PASSED.getCode()));
|
DmsWorkflowPrintAuthorizationVO authorization = new DmsWorkflowPrintAuthorizationVO();
|
authorization.setCompleted(Boolean.TRUE);
|
ActionResult<DmsWorkflowPrintAuthorizationVO> response = new ActionResult<>();
|
response.setCode(ActionResultCode.SUCCESS.getCode());
|
response.setData(authorization);
|
when(dmsResourceApi.authorizeWorkflowPrint("jnpf-file", "audit-1", form))
|
.thenReturn(response);
|
|
assertSame(authorization, service.authorize(form, "audit-1"));
|
}
|
|
@Test
|
public void rejectsUnapprovedTaskBeforeCallingDms() {
|
DmsWorkflowPrintAuthorizeForm form = form();
|
when(workFlowApi.getInfoSubmit("task-1")).thenReturn(task(TaskStatusEnum.RUNNING.getCode()));
|
|
assertThrows(DataException.class, () -> service.authorize(form, null));
|
|
verify(dmsResourceApi, never()).authorizeWorkflowPrint(
|
org.mockito.ArgumentMatchers.any(), org.mockito.ArgumentMatchers.any(),
|
org.mockito.ArgumentMatchers.any());
|
}
|
|
private DmsWorkflowPrintAuthorizeForm form() {
|
DmsWorkflowPrintAuthorizeForm form = new DmsWorkflowPrintAuthorizeForm();
|
form.setSourceId("flow-1");
|
form.setTaskId("task-1");
|
return form;
|
}
|
|
private TaskEntity task(Integer status) {
|
TaskEntity task = new TaskEntity();
|
task.setId("task-1");
|
task.setFlowId("flow-1");
|
task.setStatus(status);
|
return task;
|
}
|
}
|