package jnpf.dmsController;
|
|
import jnpf.dmsEntity.wenjianbianhao.DmsFlowEventType;
|
import jnpf.dmsEntity.wenjianbianhao.form.DmsFlowEventForm;
|
import jnpf.dmsService.DmsWenjianBanbenService;
|
import jnpf.exception.DataException;
|
import jnpf.flowable.WorkFlowApi;
|
import jnpf.flowable.entity.TaskEntity;
|
import org.junit.jupiter.api.Test;
|
|
import static org.junit.jupiter.api.Assertions.assertThrows;
|
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.when;
|
|
class DmsWenjianBanbenControllerTest {
|
|
private final DmsWenjianBanbenService service = mock(DmsWenjianBanbenService.class);
|
private final WorkFlowApi workFlowApi = mock(WorkFlowApi.class);
|
private final DmsWenjianBanbenController controller =
|
new DmsWenjianBanbenController(service, workFlowApi);
|
|
@Test
|
void revisionEventUsesServerSideWorkflowState() throws DataException {
|
DmsFlowEventForm form = form(DmsFlowEventType.END);
|
TaskEntity task = new TaskEntity();
|
task.setId("task-1");
|
task.setStatus(2);
|
when(workFlowApi.getInfoSubmit("task-1")).thenReturn(task);
|
|
controller.syncRevisionAuditFlowEvent(form);
|
|
verify(service).syncRevisionAuditFlow(
|
"flow-1", "task-1", 2, DmsFlowEventType.END);
|
}
|
|
@Test
|
void newAuditRejectsMismatchedTask() {
|
DmsFlowEventForm form = form(DmsFlowEventType.START);
|
TaskEntity task = new TaskEntity();
|
task.setId("another-task");
|
task.setStatus(1);
|
when(workFlowApi.getInfoSubmit("task-1")).thenReturn(task);
|
|
assertThrows(DataException.class, () -> controller.syncNewAuditFlowEvent(form));
|
}
|
|
private DmsFlowEventForm form(DmsFlowEventType eventType) {
|
DmsFlowEventForm form = new DmsFlowEventForm();
|
form.setFlowId("flow-1");
|
form.setTaskId("task-1");
|
form.setEventType(eventType);
|
return form;
|
}
|
}
|