private Builder() { summary = new ProcessInstanceDiagramSummary(); }
public Builder withNodeInstances(List<NodeInstanceSummary> nodeInstances) { summary.setNodeInstances(nodeInstances); return this; }
public Builder withProcessDefinition(ProcessSummary processDefinition) { summary.setProcessDefinition(processDefinition); return this; }
@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()); }
@Override public ProcessInstanceDiagramSummary getProcessInstanceDiagramSummary(ProcessInstanceKey processInstanceKey) { if (processInstanceKey == null || processInstanceKey.isValid() == false) { return null; } final ProcessInstanceSummary processInstance = getProcessInstance(processInstanceKey); ProcessInstanceDiagramSummary summary = new ProcessInstanceDiagramSummary(); summary.setId(processInstance.getId()); summary.setName(processInstance.getName()); summary.setSvgContent(processImageService.getProcessInstanceDiagram(processInstanceKey.getServerTemplateId(), processInstanceKey.getDeploymentId(), processInstanceKey.getProcessInstanceId())); summary.setProcessDefinition(getProcess(new ProcessDefinitionKey(processInstance.getServerTemplateId(), processInstance.getDeploymentId(), processInstance.getProcessId()))); if (processInstance.getState() == org.kie.api.runtime.process.ProcessInstance.STATE_ACTIVE) { List<NodeInstanceSummary> nodeInstances = getProcessInstanceActiveNodes(processInstanceKey); nodeInstances.addAll(getProcessInstanceCompletedNodes(processInstanceKey)); summary.setNodeInstances(nodeInstances); summary.setTimerInstances(getProcessInstanceTimerInstances(processInstanceKey)); } else { summary.setNodeInstances(emptyList()); summary.setTimerInstances(emptyList()); } return summary; }
@Test public void testGetProcessInstanceDiagramSummaryCompletedStatus() { ProcessInstanceKey instanceKey = new ProcessInstanceKey(serverTemplateId, containerId, processInstanceId); String svgContent = "<svg></svg>"; Integer state = org.kie.api.runtime.process.ProcessInstance.STATE_COMPLETED; String processName = "process"; when(queryServicesClient.findProcessInstanceById(processInstanceId)).thenReturn(ProcessInstance.builder().id(processInstanceId).processId(processId).containerId(containerId).state(state).processName(processName).build()); when(processImageService.getProcessInstanceDiagram(serverTemplateId, containerId, processInstanceId)).thenReturn(svgContent); when(processServicesClient.getProcessDefinition(containerId, processId)).thenReturn(new ProcessDefinition()); ProcessInstanceDiagramSummary summary = service.getProcessInstanceDiagramSummary(instanceKey); assertEquals(processInstanceId, summary.getId()); assertEquals(processName, summary.getName()); assertEquals(svgContent, summary.getSvgContent()); assertNotNull(summary.getProcessDefinition()); assertThat(summary.getProcessDefinition().getNodes()).isEmpty(); assertThat(summary.getProcessDefinition().getTimers()).isEmpty(); assertThat(summary.getNodeInstances()).isEmpty(); assertThat(summary.getTimerInstances()).isEmpty(); verify(queryServicesClient, never()).findActiveNodeInstances(any(), any(), any()); verify(queryServicesClient, never()).findCompletedNodeInstances(any(), any(), any()); verify(processAdminServicesClient, never()).getTimerInstances(any(), any()); }
protected void loadProcessInstanceDetails() { processService.call((ProcessInstanceDiagramSummary summary) -> { displayImage(summary.getSvgContent(), processInstance.getDeploymentId()); processNodes = summary.getProcessDefinition().getNodes().stream().sorted(comparing(ProcessNodeSummary::getName, String.CASE_INSENSITIVE_ORDER).thenComparingLong(ProcessNodeSummary::getId)).collect(toList()); nodeInstances = summary.getNodeInstances().stream().sorted(comparing(NodeInstanceSummary::getName, String.CASE_INSENSITIVE_ORDER).thenComparingLong(NodeInstanceSummary::getId)).collect(toList()); timerInstances = summary.getTimerInstances().stream().sorted(comparing(TimerInstanceSummary::getName, String.CASE_INSENSITIVE_ORDER).thenComparingLong(TimerInstanceSummary::getId)).collect(toList()); timers = summary.getProcessDefinition().getTimers().stream().collect(toList());
public Builder withSvgContent(String svgContent) { summary.setSvgContent(svgContent); return this; }
public Builder withTimerInstances(List<TimerInstanceSummary> timerInstances) { summary.setTimerInstances(timerInstances); return this; }
public Builder withId(Long id) { summary.setId(id); return this; }
@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(); }
@Override public ProcessInstanceDiagramSummary getProcessInstanceDiagramSummary(ProcessInstanceKey processInstanceKey) { if (processInstanceKey == null || processInstanceKey.isValid() == false) { return null; } final ProcessInstanceSummary processInstance = getProcessInstance(processInstanceKey); ProcessInstanceDiagramSummary summary = new ProcessInstanceDiagramSummary(); summary.setId(processInstance.getId()); summary.setName(processInstance.getName()); summary.setSvgContent(processImageService.getProcessInstanceDiagram(processInstanceKey.getServerTemplateId(), processInstanceKey.getDeploymentId(), processInstanceKey.getProcessInstanceId())); summary.setProcessDefinition(getProcess(new ProcessDefinitionKey(processInstance.getServerTemplateId(), processInstance.getDeploymentId(), processInstance.getProcessId()))); if (processInstance.getState() == org.kie.api.runtime.process.ProcessInstance.STATE_ACTIVE) { List<NodeInstanceSummary> nodeInstances = getProcessInstanceActiveNodes(processInstanceKey); nodeInstances.addAll(getProcessInstanceCompletedNodes(processInstanceKey)); summary.setNodeInstances(nodeInstances); summary.setTimerInstances(getProcessInstanceTimerInstances(processInstanceKey)); } else { summary.setNodeInstances(emptyList()); summary.setTimerInstances(emptyList()); } return summary; }
@Test public void testGetProcessInstanceDiagramSummaryCompletedStatus() { ProcessInstanceKey instanceKey = new ProcessInstanceKey(serverTemplateId, containerId, processInstanceId); String svgContent = "<svg></svg>"; Integer state = org.kie.api.runtime.process.ProcessInstance.STATE_COMPLETED; String processName = "process"; when(queryServicesClient.findProcessInstanceById(processInstanceId)).thenReturn(ProcessInstance.builder().id(processInstanceId).processId(processId).containerId(containerId).state(state).processName(processName).build()); when(processImageService.getProcessInstanceDiagram(serverTemplateId, containerId, processInstanceId)).thenReturn(svgContent); when(processServicesClient.getProcessDefinition(containerId, processId)).thenReturn(new ProcessDefinition()); ProcessInstanceDiagramSummary summary = service.getProcessInstanceDiagramSummary(instanceKey); assertEquals(processInstanceId, summary.getId()); assertEquals(processName, summary.getName()); assertEquals(svgContent, summary.getSvgContent()); assertNotNull(summary.getProcessDefinition()); assertThat(summary.getProcessDefinition().getNodes()).isEmpty(); assertThat(summary.getProcessDefinition().getTimers()).isEmpty(); assertThat(summary.getNodeInstances()).isEmpty(); assertThat(summary.getTimerInstances()).isEmpty(); verify(queryServicesClient, never()).findActiveNodeInstances(any(), any(), any()); verify(queryServicesClient, never()).findCompletedNodeInstances(any(), any(), any()); verify(processAdminServicesClient, never()).getTimerInstances(any(), any()); }
public Builder withSvgContent(String svgContent) { summary.setSvgContent(svgContent); return this; }
public Builder withTimerInstances(List<TimerInstanceSummary> timerInstances) { summary.setTimerInstances(timerInstances); return this; }
public Builder withId(Long id) { summary.setId(id); return this; }
@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()); }
assertEquals(processInstanceId, summary.getId()); assertEquals(processName, summary.getName()); assertEquals(svgContent, summary.getSvgContent()); assertNotNull(summary.getProcessDefinition()); assertThat(summary.getProcessDefinition().getNodes()).hasSize(2).containsExactly(new ProcessNodeSummary(1l, "name-1", "HumanTask", "_2")); assertThat(summary.getProcessDefinition().getTimers()).hasSize(2).containsExactly(new TimerSummary(1l, 2l, "name-1", "_2")); assertThat(summary.getNodeInstances()).hasSize(4).containsExactly(NodeInstanceSummary.builder().withId(1l).withName("name-1").withType("HumanTask").build(), NodeInstanceSummary.builder().withId(2l).withName(" ").withType("Split").build(), NodeInstanceSummary.builder().withId(3l).withName("name-3").withType("HumanTask").withCompleted(true).build(), NodeInstanceSummary.builder().withId(4l).withName(" ").withType("End").withCompleted(true).build()); assertThat(summary.getTimerInstances()).hasSize(2).containsExactly(TimerInstanceSummary.builder().withId(1l).withTimerId(1l).withName("timer1").withProcessInstanceId(processInstanceId).withRepeatLimit(1).withPeriod(2l).withDelay(1l).build(), TimerInstanceSummary.builder().withId(2l).withTimerId(2l).withName("time2").withProcessInstanceId(processInstanceId).withRepeatLimit(1).withPeriod(1l).withDelay(2l).build());
public Builder withProcessDefinition(ProcessSummary processDefinition) { summary.setProcessDefinition(processDefinition); return this; }
private Builder() { summary = new ProcessInstanceDiagramSummary(); }