protected void refreshDetails() { processInstanceEvent.fire(new ProcessInstanceSelectionEvent(processInstance.getProcessInstanceKey(), forLog)); }
public void loadVariableHistory(final ParameterizedCommand<List<ProcessVariableSummary>> callback, final String variableName) { variablesServices.call(new RemoteCallback<List<ProcessVariableSummary>>() { @Override public void callback(final List<ProcessVariableSummary> processVariableSummaries) { callback.execute(processVariableSummaries); } }, new HasBusyIndicatorDefaultErrorCallback(view)).getVariableHistory(processInstance.getProcessInstanceKey(), variableName); }
@Override public void selectSummaryItem(final ProcessInstanceSummary summary) { setupDetailBreadcrumb(constants.ProcessInstanceBreadcrumb(summary.getProcessInstanceId())); placeManager.goTo(PROCESS_INSTANCE_DETAILS_SCREEN); processInstanceSelectionEvent.fire(new ProcessInstanceSelectionEvent(summary.getProcessInstanceKey(), false)); }
public void onTimerInstanceReschedule(final TimerInstanceSummary summary) { processService.call((Void) -> { notification.fire(new NotificationEvent(constants.TimerInstanceRescheduled(summary.getLabel()), NotificationEvent.NotificationType.SUCCESS)); refreshDetails(); }).rescheduleTimerInstance(processInstance.getProcessInstanceKey(), summary); }
public void onNodeInstanceCancel(final NodeInstanceSummary node) { processService.call((Void) -> { notification.fire(new NotificationEvent(constants.NodeInstanceCancelled(node.getLabel()), NotificationEvent.NotificationType.SUCCESS)); refreshDetails(); }).cancelProcessInstanceNode(processInstance.getProcessInstanceKey(), node.getId()); }
public void onNodeInstanceReTrigger(final NodeInstanceSummary node) { processService.call((Void) -> { notification.fire(new NotificationEvent(constants.NodeInstanceReTriggered(node.getLabel()), NotificationEvent.NotificationType.SUCCESS)); refreshDetails(); }).reTriggerProcessInstanceNode(processInstance.getProcessInstanceKey(), node.getId()); }
public void onProcessNodeTrigger(final ProcessNodeSummary node) { processService.call((Void) -> { notification.fire(new NotificationEvent(constants.NodeTriggered(node.getLabel()), NotificationEvent.NotificationType.SUCCESS)); view.setValue(new ProcessNodeSummary()); refreshDetails(); }).triggerProcessInstanceNode(processInstance.getProcessInstanceKey(), node.getId()); }
@Before public void setUp() { presenter.setProcessRuntimeDataService(new CallerMock<>(processRuntimeDataServiceMock)); nodeInstanceSummary = getNodeInstanceSummary(); processInstanceSummary = getProcessInstanceSummary(); when(processRuntimeDataServiceMock.getProcessInstanceActiveNodes(processInstanceSummary.getProcessInstanceKey())).thenReturn(singletonList(nodeInstanceSummary)); }
view.hideNodeActions(); }).getProcessInstanceDiagramSummary(processInstance.getProcessInstanceKey());
@Test public void abortActiveInstanceFromDetailsHidesActionsTest() { final ProcessInstanceSummary summary = ProcessInstanceSummary.builder().withServerTemplateId(SERVER_TEMPLATE_ID).withDeploymentId(PI_DEPLOYMENT_ID).withProcessInstanceId(PI_ID).withState(1).build(); when(processRuntimeDataService.getProcessInstance(any())).thenReturn(summary); doAnswer(invocation -> null).when(processService).abortProcessInstance(summary.getProcessInstanceKey()); presenter.onProcessSelectionEvent(new ProcessInstanceSelectionEvent(summary.getProcessInstanceKey(), false)); verifySignalAbortActionsVisibility(false, true); verifyNoMoreInteractionsWithSignalAbortActions(); reset(signalProcessInstanceAction); reset(abortProcessInstanceAction); presenter.abortProcessInstance(); verifySignalAbortActionsVisibility(false); verifyNoMoreInteractionsWithSignalAbortActions(); }
private void verifyActionsVisibility(int status, boolean isForLog, boolean visibilityExpected) { final ProcessInstanceSummary summary = ProcessInstanceSummary.builder().withServerTemplateId(SERVER_TEMPLATE_ID).withDeploymentId(PI_DEPLOYMENT_ID).withProcessInstanceId(PI_ID).withState(status).build(); when(processRuntimeDataService.getProcessInstance(any())).thenReturn(summary); presenter.onProcessSelectionEvent(new ProcessInstanceSelectionEvent(summary.getProcessInstanceKey(), isForLog)); verifySignalAbortActionsVisibility(false, visibilityExpected); verifyNoMoreInteractionsWithSignalAbortActions(); }
@Test public void testLoadVariableHistory() { final ParameterizedCommand callback = mock(ParameterizedCommand.class); final String variableName = "variable"; final String deploymentId = "deploymentId"; final long processInstanceId = 1l; final ProcessInstanceSummary processInstance = ProcessInstanceSummary.builder() .withServerTemplateId("serverTemplateIdTest") .withDeploymentId(deploymentId) .withProcessInstanceId(processInstanceId) .build(); final ProcessVariableSummary summary = new ProcessVariableSummary(variableName, "variableInstanceId", processInstanceId, "oldValue", "newValue", System.currentTimeMillis(), "type"); final List<ProcessVariableSummary> summaries = Arrays.asList(summary); when(processVariablesService.getVariableHistory(eq(processInstance.getProcessInstanceKey()), eq(variableName))).thenReturn(summaries); when(view.getListGrid()).thenReturn(extendedPagedTable); presenter.setProcessInstance(processInstance); presenter.loadVariableHistory(callback, variableName); verify(callback).execute(summaries); } }
@Test public void confirmPopupTest() { final ProcessInstanceSummary summary = ProcessInstanceSummary.builder().withServerTemplateId(SERVER_TEMPLATE_ID).withDeploymentId(PI_DEPLOYMENT_ID).withProcessInstanceId(PI_ID).withState(1).build(); when(processRuntimeDataService.getProcessInstance(any())).thenReturn(summary); presenter.onProcessSelectionEvent(new ProcessInstanceSelectionEvent(summary.getProcessInstanceKey(), true)); presenter.openAbortProcessInstancePopup(); ArgumentCaptor<Command> captureCommand = ArgumentCaptor.forClass(Command.class); verify(confirmPopup).show(any(), any(), any(), captureCommand.capture()); remoteProcessServiceCaller = new CallerMock<>(processService); presenter.setProcessService(remoteProcessServiceCaller); captureCommand.getValue().execute(); final ArgumentCaptor<NotificationEvent> captor = ArgumentCaptor.forClass(NotificationEvent.class); verify(notificationEvent).fire(captor.capture()); assertEquals(1, captor.getAllValues().size()); assertEquals(NotificationEvent.NotificationType.DEFAULT, captor.getValue().getType()); assertEquals(Constants.INSTANCE.Aborting_Process_Instance(PI_ID), captor.getValue().getNotification()); verify(processService).abortProcessInstance(new ProcessInstanceKey(SERVER_TEMPLATE_ID, PI_DEPLOYMENT_ID, PI_ID)); }
@Test public void testOnNodeTriggered() { ProcessInstanceSummary processInstance = ProcessInstanceSummary.builder().withServerTemplateId("serverTemplateId").withDeploymentId("containerId").withProcessInstanceId(1l).withState(ProcessInstance.STATE_ACTIVE).build(); final ProcessNodeSummary humanTask = new ProcessNodeSummary(1l, "name-1", "HumanTask", "_1"); final List<ProcessNodeSummary> nodes = Arrays.asList(new ProcessNodeSummary(0l, " ", "Start", "_0"), humanTask, new ProcessNodeSummary(2l, " ", "Split", "_2")); ProcessInstanceDiagramSummary summary = new ProcessInstanceDiagramSummary(); summary.setProcessDefinition(ProcessSummary.builder().nodes(nodes).timers(emptyList()).build()); summary.setNodeInstances(emptyList()); summary.setTimerInstances(emptyList()); when(processService.getProcessInstanceDiagramSummary(processInstance.getProcessInstanceKey())).thenReturn(summary); presenter.setProcessInstance(processInstance); presenter.onProcessNodeTrigger(humanTask); verify(processService).triggerProcessInstanceNode(processInstance.getProcessInstanceKey(), humanTask.getId()); verify(notificationEvent).fire(any()); verify(view, times(2)).setValue(new ProcessNodeSummary()); }
@Test public void testOnTimerInstanceReschedule() { ProcessInstanceSummary processInstance = ProcessInstanceSummary.builder().withServerTemplateId("serverTemplateId").withDeploymentId("containerId").withProcessInstanceId(1l).withState(ProcessInstance.STATE_ACTIVE).build(); final TimerInstanceSummary timer = TimerInstanceSummary.builder().withId(1l).withName("t1").build(); List<TimerInstanceSummary> timerInstance = Arrays.asList( timer, TimerInstanceSummary.builder().withId(2l).withName("t2").build()); ProcessInstanceDiagramSummary summary = new ProcessInstanceDiagramSummary(); summary.setProcessDefinition(ProcessSummary.builder().nodes(emptyList()).timers(emptyList()).build()); summary.setNodeInstances(emptyList()); summary.setTimerInstances(timerInstance); when(processService.getProcessInstanceDiagramSummary(processInstance.getProcessInstanceKey())).thenReturn(summary); presenter.setProcessInstance(processInstance); presenter.onTimerInstanceReschedule(timer); verify(processService).rescheduleTimerInstance(processInstance.getProcessInstanceKey(), timer); verify(notificationEvent).fire(any()); }
@Test public void isForLogRemainsEnabledAfterRefresh() { final ProcessInstanceSummary summary = ProcessInstanceSummary.builder().withServerTemplateId(SERVER_TEMPLATE_ID).withDeploymentId(PI_DEPLOYMENT_ID).withProcessInstanceId(PI_ID).withState(1).build(); when(processRuntimeDataService.getProcessInstance(any())).thenReturn(summary); //When task selected with logOnly boolean isLogOnly = true; presenter.onProcessSelectionEvent(new ProcessInstanceSelectionEvent(summary.getProcessInstanceKey(), isLogOnly)); //Then only tab log is displayed verify(view).displayOnlyLogTab(); assertTrue(presenter.isForLog()); verify(view).resetTabs(isLogOnly); presenter.onRefresh(); assertTrue(presenter.isForLog()); }
@Test public void isForLogRemainsDisabledAfterRefresh() { final ProcessInstanceSummary summary = ProcessInstanceSummary.builder().withServerTemplateId(SERVER_TEMPLATE_ID).withDeploymentId(PI_DEPLOYMENT_ID).withProcessInstanceId(PI_ID).withState(1).build(); when(processRuntimeDataService.getProcessInstance(any())).thenReturn(summary); //When task selected without logOnly boolean isLogOnly = false; presenter.onProcessSelectionEvent(new ProcessInstanceSelectionEvent(summary.getProcessInstanceKey(), isLogOnly)); //Then alltabs are displayed verify(view).displayAllTabs(); verify(view).resetTabs(isLogOnly); assertFalse(presenter.isForLog()); presenter.onRefresh(); assertFalse(presenter.isForLog()); }
@Test public void testTimerInstanceForNode() { ProcessInstanceSummary processInstance = ProcessInstanceSummary.builder().withServerTemplateId("serverTemplateId").withDeploymentId("containerId").withProcessInstanceId(1l).withState(ProcessInstance.STATE_ACTIVE).build(); List<TimerSummary> timers = Arrays.asList( TimerSummary.builder().id(0l).nodeId(1l).uniqueId("_1").build(), TimerSummary.builder().id(1l).nodeId(2l).uniqueId("_2").build() ); TimerInstanceSummary t1 = TimerInstanceSummary.builder().withId(1l).withTimerId(0l).withName("t1").build(); TimerInstanceSummary t2 = TimerInstanceSummary.builder().withId(2l).withTimerId(1l).withName("t2").build(); ProcessInstanceDiagramSummary summary = new ProcessInstanceDiagramSummary(); summary.setProcessDefinition(ProcessSummary.builder().nodes(emptyList()).timers(timers).build()); summary.setNodeInstances(emptyList()); summary.setTimerInstances(Arrays.asList(t1, t2)); when(processService.getProcessInstanceDiagramSummary(processInstance.getProcessInstanceKey())).thenReturn(summary); presenter.setProcessInstance(processInstance); assertThat(presenter.getTimerInstanceForNode("_1")).containsExactly(t1); assertThat(presenter.getTimerInstanceForNode("_2")).containsExactly(t2); assertThat(presenter.getTimerInstanceForNode("_3")).isEmpty(); assertThat(presenter.getTimerInstanceForNode(null)).isEmpty(); }
@Test public void testOnNodeInstanceCancelled() { ProcessInstanceSummary processInstance = ProcessInstanceSummary.builder().withServerTemplateId("serverTemplateId").withDeploymentId("containerId").withProcessInstanceId(1l).withState(ProcessInstance.STATE_ACTIVE).build(); NodeInstanceSummary humanTask = NodeInstanceSummary.builder().withId(1l).withName("name-1").withType("HumanTask").withCompleted(false).build(); List<NodeInstanceSummary> nodeInstances = Arrays.asList( humanTask, NodeInstanceSummary.builder().withId(2l).withName(" ").withType("Split").withCompleted(false).build(), NodeInstanceSummary.builder().withId(3l).withName("name-3").withType("HumanTask").withCompleted(true).build(), NodeInstanceSummary.builder().withId(4l).withName(" ").withType("End").withCompleted(true).build() ); ProcessInstanceDiagramSummary summary = new ProcessInstanceDiagramSummary(); summary.setProcessDefinition(ProcessSummary.builder().nodes(emptyList()).timers(emptyList()).build()); summary.setNodeInstances(nodeInstances); summary.setTimerInstances(emptyList()); when(processService.getProcessInstanceDiagramSummary(processInstance.getProcessInstanceKey())).thenReturn(summary); presenter.setProcessInstance(processInstance); presenter.onNodeInstanceCancel(humanTask); verify(processService).cancelProcessInstanceNode(processInstance.getProcessInstanceKey(), humanTask.getId()); verify(notificationEvent).fire(any()); }
@Test public void testOnNodeInstanceReTriggered() { ProcessInstanceSummary processInstance = ProcessInstanceSummary.builder().withServerTemplateId("serverTemplateId").withDeploymentId("containerId").withProcessInstanceId(1l).withState(ProcessInstance.STATE_ACTIVE).build(); NodeInstanceSummary humanTask = NodeInstanceSummary.builder().withId(1l).withName("name-1").withType("HumanTask").withCompleted(false).build(); List<NodeInstanceSummary> nodeInstances = Arrays.asList( humanTask, NodeInstanceSummary.builder().withId(2l).withName(" ").withType("Split").withCompleted(false).build(), NodeInstanceSummary.builder().withId(3l).withName("name-3").withType("HumanTask").withCompleted(true).build(), NodeInstanceSummary.builder().withId(4l).withName(" ").withType("End").withCompleted(true).build() ); ProcessInstanceDiagramSummary summary = new ProcessInstanceDiagramSummary(); summary.setProcessDefinition(ProcessSummary.builder().nodes(emptyList()).timers(emptyList()).build()); summary.setNodeInstances(nodeInstances); summary.setTimerInstances(emptyList()); when(processService.getProcessInstanceDiagramSummary(processInstance.getProcessInstanceKey())).thenReturn(summary); presenter.setProcessInstance(processInstance); presenter.onNodeInstanceReTrigger(humanTask); verify(processService).reTriggerProcessInstanceNode(processInstance.getProcessInstanceKey(), humanTask.getId()); verify(notificationEvent).fire(any()); }