@Override public CaseStageSummary apply(final CaseStage stage) { if (stage == null) { return null; } final CaseStageSummary stageSummary = CaseStageSummary.builder() .name(stage.getName()) .identifier(stage.getIdentifier()) .status(stage.getStatus()) .build(); stageSummary.setAdHocActions(ofNullable(stage.getAdHocFragments()).orElse(emptyList()) .stream() .map(new CaseActionAdHocMapper(stageSummary)) .collect(toList())); return stageSummary; } }
public Builder adHocFragments(List<CaseAdHocFragment> adHocFragments) { stage.setAdHocFragments(adHocFragments); return this; }
@Override public CaseStageSummary apply(CaseStage stage) { if (stage == null) { return null; } return CaseStageSummary.builder() .name(stage.getName()) .identifier(stage.getIdentifier()) .status(stage.getStatus()) .build(); }
@Test public void testAddDynamicSubProcessToInactiveStage() { String caseId = startCarInsuranceClaimCase(USER_YODA, USER_JOHN, USER_YODA); List<CaseStage> caseStages = caseClient.getStages(CONTAINER_ID, caseId, false, 0, 50); Assertions.assertThat(caseStages).isNotEmpty(); String inactiveStageId = caseStages.stream().filter(stage -> !STAGE_ACTIVE_STATE.equals(stage.getStatus())) .findFirst() .orElseThrow(() -> new IllegalStateException("No inactive stage found.")) .getIdentifier(); assertClientException( () -> caseClient.addDynamicSubProcessToStage( CONTAINER_ID, caseId, inactiveStageId, DATA_VERIFICATION_DEF_ID, Collections.emptyMap()), 404, "No stage found with id " + inactiveStageId ); }
assertEquals(1, stages.size()); CaseStage caseStage = stages.get(0); assertEquals("Build claim report", caseStage.getName()); assertEquals(2, caseStage.getAdHocFragments().size());
@Test public void testAddDynamicTaskToStageInvalidContainer() { String caseId = startCarInsuranceClaimCase(USER_YODA, USER_JOHN, USER_YODA); Assertions.assertThat(caseId).isNotNull(); List<CaseStage> caseStages = caseClient.getStages(CONTAINER_ID, caseId, false, 0, 100); Assertions.assertThat(caseStages).isNotNull(); Assertions.assertThat(caseStages).isNotEmpty(); CaseStage firstCaseStage = caseStages.iterator().next(); String firstStageId = firstCaseStage.getIdentifier(); assertClientException( () -> caseClient.addDynamicTaskToStage(BAD_CONTAINER_ID, caseId, firstStageId, "ContactCarProducer", "Contact car producer", null), 404, BAD_CONTAINER_ID); }
private void assertBuildClaimReportStage(String caseId) { List<CaseStage> activeStages = caseClient.getStages(CONTAINER_ID, caseId, true, 0, 10); assertEquals(1, activeStages.size()); CaseStage stage = activeStages.iterator().next(); assertEquals("Build claim report", stage.getName()); }
public static List<CaseStage> transformStages(Collection<CaseStageInstance> stageInstances) { List<CaseStage> stages = new ArrayList<>(); if (stageInstances != null) { stageInstances.forEach(s -> stages.add(CaseStage.builder() .id(s.getId()) .name(s.getName()) .status(s.getStatus().toString()) .activeNodes(transformNodeInstance(s.getActiveNodes())) .adHocFragments(s.getAdHocFragments().stream().map(adhoc -> CaseAdHocFragment.builder() .name(adhoc.getName()) .type(adhoc.getType()) .build()) .collect(toList())) .build()) ); } return stages; }
@Test public void testAddDynamicUserTaskToInactiveStage() { String caseId = startCarInsuranceClaimCase(USER_YODA, USER_JOHN, USER_YODA); List<CaseStage> caseStages = caseClient.getStages(CONTAINER_ID, caseId, false, 0, 50); Assertions.assertThat(caseStages).isNotEmpty(); String inactiveStageId = caseStages.stream().filter(stage -> !STAGE_ACTIVE_STATE.equals(stage.getStatus())) .findFirst() .orElseThrow(() -> new IllegalStateException("No inactive stage found.")) .getIdentifier(); assertClientException( () -> caseClient.addDynamicUserTaskToStage( CONTAINER_ID, caseId, inactiveStageId, "ContactCarProducer", "Contact car producer", USER_JOHN, "mygroup", Collections.emptyMap()), 404, "No stage found" ); }
int countOfTaskBefore = tasks.size(); assertNotNull(stage.getIdentifier()); caseClient.triggerAdHocFragmentInStage(CONTAINER_ID, caseClaimId, stage.getIdentifier(), SUBMIT_POLICE_REPORT_TASK, Collections.EMPTY_MAP); () -> caseClient.triggerAdHocFragmentInStage(CONTAINER_ID, caseClaimId, stage.getIdentifier(), SUBMIT_POLICE_REPORT_TASK, Collections.EMPTY_MAP), 404, "No stage found with id " + stage.getIdentifier() );
private void assertClaimAssesmentStage(String caseId) { List<CaseStage> activeStages = caseClient.getStages(CONTAINER_ID, caseId, true, 0, 10); assertEquals(1, activeStages.size()); CaseStage stage = activeStages.iterator().next(); assertEquals("Claim assesment", stage.getName()); }
private CaseStage createTestCaseStage(String stageId, String stageName, String stageStatus) { CaseStage stage = CaseStage.builder() .id(stageId) .name(stageName) .status(stageStatus) .build(); return stage; }
@Override public CaseStageSummary apply(final CaseStage stage) { if (stage == null) { return null; } final CaseStageSummary stageSummary = CaseStageSummary.builder() .name(stage.getName()) .identifier(stage.getIdentifier()) .status(stage.getStatus()) .build(); stageSummary.setAdHocActions(ofNullable(stage.getAdHocFragments()).orElse(emptyList()) .stream() .map(new CaseActionAdHocMapper(stageSummary)) .collect(toList())); return stageSummary; } }
@Test public void testAddDynamicSubProcessToStage() { String caseId = startCarInsuranceClaimCase(USER_YODA, USER_JOHN, USER_YODA); Assertions.assertThat(caseId).isNotNull(); List<CaseStage> caseStages = caseClient.getStages(CONTAINER_ID, caseId, false, 0, 50); String activeStageId = caseStages.stream().filter(stage -> STAGE_ACTIVE_STATE.equals(stage.getStatus())) .findFirst() .orElseThrow(() -> new IllegalStateException("No active stage found.")) .getIdentifier(); List<ProcessInstance> instances = caseClient.getProcessInstances(CONTAINER_ID, caseId, Arrays.asList(1, 2, 3), 0, 10); Assertions.assertThat(instances).hasSize(1); final long originalCaseProcessInstanceId = instances.get(0).getId(); caseClient.addDynamicSubProcessToStage( CONTAINER_ID, caseId, activeStageId, DATA_VERIFICATION_DEF_ID, Collections.emptyMap()); instances = caseClient.getProcessInstances(CONTAINER_ID, caseId, Arrays.asList(1, 2, 3), 0, 10); Assertions.assertThat(instances).hasSize(2); final ProcessInstance newlyCreatedProcessInstance = instances.stream().filter((pi) -> pi.getId() != originalCaseProcessInstanceId) .findFirst() .get(); Assertions.assertThat(newlyCreatedProcessInstance.getProcessId()).isEqualTo(DATA_VERIFICATION_DEF_ID); Assertions.assertThat(newlyCreatedProcessInstance.getState()).isEqualTo(STATE_COMPLETED); }
private CaseStage createTestCaseStage(String stageId, String stageName, String stageStatus) { CaseStage stage = CaseStage.builder() .id(stageId) .name(stageName) .status(stageStatus) .build(); return stage; }
"adHocFragment-type-2"); stage1.setAdHocFragments(Arrays.asList(cAHF1_stage1, cAHF2_stage1)); stage2.setAdHocFragments(Arrays.asList(cAHF1_stage2, cAHF2_stage2)); ci.setStages(Arrays.asList(stage1,
private void assertEscalateRejectedClaimCaseStage(CaseStage stage, String status) { assertEquals("Escalate rejected claim", stage.getName()); assertNotNull(stage.getIdentifier()); assertEquals(status, stage.getStatus()); KieServerAssert.assertNullOrEmpty("Active nodes should be null or empty.", stage.getActiveNodes()); List<CaseAdHocFragment> adHocFragments = stage.getAdHocFragments(); assertEquals(1, adHocFragments.size()); assertEquals("Negotiation meeting", adHocFragments.get(0).getName()); assertEquals("HumanTaskNode", adHocFragments.get(0).getType()); }
@Test public void testAddDynamicUserTaskToActiveStage() { String caseId = startCarInsuranceClaimCase(USER_YODA, USER_JOHN, USER_YODA); List<CaseStage> caseStages = caseClient.getStages(CONTAINER_ID, caseId, false, 0, 50); Assertions.assertThat(caseStages).isNotEmpty(); String activeStageId = caseStages.stream().filter(stage -> STAGE_ACTIVE_STATE.equals(stage.getStatus())) .findFirst() .orElseThrow(() -> new IllegalStateException("No active stage found.")) .getIdentifier(); final String taskName = "ContactCarProducer"; caseClient.addDynamicUserTaskToStage( CONTAINER_ID, caseId, activeStageId, taskName, "Contact car producer", USER_YODA, "NO GROUP", Collections.emptyMap()); List<TaskSummary> activeTasks = taskClient.findTasksAssignedAsPotentialOwner(USER_YODA,0, 50); Assertions.assertThat(activeTasks).isNotEmpty(); Optional<TaskSummary> addedTask = activeTasks .stream() .filter(task -> taskName.equals(task.getName())) .findFirst(); Assertions.assertThat(addedTask).isNotEmpty(); taskClient.completeAutoProgress(CONTAINER_ID, addedTask.get().getId(), USER_YODA, Collections.emptyMap()); }
@Test public void testCaseInstanceMapper_mapCaseInstance() { final CaseInstance ci = createCaseInstance(); final List<CaseStage> stagesList = new ArrayList(); final List<CaseAdHocFragment> stageAdHocFragments = new ArrayList(); stageAdHocFragments.add(CaseAdHocFragment.builder().name("ad_hoc_stage_f1_name").build()); stageAdHocFragments.add(CaseAdHocFragment.builder().name("ad_hoc_stage_f2_name").build()); stagesList.add(CaseStage.builder().name("stage1").status("Available").id("stage1").adHocFragments(stageAdHocFragments).build()); stagesList.add(CaseStage.builder().name("stage2").status("Completed").id("stage2").build()); ci.setStages(stagesList); final CaseInstanceSummary cis = new CaseInstanceMapper().apply(ci); assertCaseInstance(ci, cis); }
"adHocFragment-type-2"); stage1.setAdHocFragments(Arrays.asList(cAHF1_stage1, cAHF2_stage1)); stage2.setAdHocFragments(Arrays.asList(cAHF1_stage2, cAHF2_stage2)); ci.setStages(Arrays.asList(stage1,