@Override public CaseInstanceSummary apply(final CaseInstance ci) { if (ci == null) { return null; } return CaseInstanceSummary.builder(). caseId(ci.getCaseId()). description(ci.getCaseDescription()). status(ci.getCaseStatus()). containerId(ci.getContainerId()). owner(ci.getCaseOwner()). startedAt(ci.getStartedAt()). completedAt(ci.getCompletedAt()). caseDefinitionId(ci.getCaseDefinitionId()). roleAssignments( ofNullable(ci.getRoleAssignments()).orElse(emptyList()) .stream() .map(new RoleAssignmentsMapper()) .collect(toList())). stages( ofNullable(ci.getStages()).orElse(emptyList()) .stream() .map(new CaseStageMapper()) .collect(toList())). build(); }
@Test public void getCaseInstance_whenClientReturnsInstance() { final CaseInstance ci = createTestInstance(caseId); when(clientMock.getCaseInstance(ci.getContainerId(), ci.getCaseId(), false, true, true, true)) .thenReturn(ci); final CaseInstanceSummary cis = testedService.getCaseInstance(ci.getContainerId(), ci.getCaseId()); assertCaseInstance(ci, cis); }
private void assertCaseInstance(String caseId) { CaseInstance cInstance = caseClient.getCaseInstance(CONTAINER_ID, caseId); assertNotNull(cInstance); assertEquals(caseId, cInstance.getCaseId()); assertEquals(CLAIM_CASE_DEF_ID, cInstance.getCaseDefinitionId()); assertEquals(CONTAINER_ID, cInstance.getContainerId()); }
stage2.setAdHocFragments(Arrays.asList(cAHF1_stage2, cAHF2_stage2)); ci.setStages(Arrays.asList(stage1, stage2)); when(clientMock.getCaseInstance(ci.getContainerId(), ci.getCaseId(), false, true,
@Test public void testGetCaseInstance() { String caseId = startUserTaskCase(USER_YODA, USER_JOHN); CaseInstance caseInstance = caseClient.getCaseInstance(CONTAINER_ID, caseId); assertHrCaseInstance(caseInstance, caseId, USER_YODA); assertNull(caseInstance.getCaseFile()); assertNull(caseInstance.getRoleAssignments()); assertNull(caseInstance.getMilestones()); assertNull(caseInstance.getStages()); }
@Test public void testCreateCloseAndReopenCaseWithEmptyCaseFile() { String caseId = startCarInsuranceClaimCase(USER_YODA, USER_JOHN, USER_YODA); Assertions.assertThat(caseId).isNotNull(); Assertions.assertThat(caseId).startsWith(CLAIM_CASE_ID_PREFIX); CaseInstance caseInstance = caseClient.getCaseInstance(CONTAINER_ID, caseId); assertCarInsuranceCaseInstance(caseInstance, caseId, USER_YODA); caseClient.closeCaseInstance(CONTAINER_ID, caseId, "work done at the moment"); CaseInstance closed = caseClient.getCaseInstance(CONTAINER_ID, caseId); Assertions.assertThat(closed.getCaseStatus()).isEqualTo(2); Assertions.assertThat(closed.getCompletionMessage()).isEqualTo("work done at the moment"); Map<String, Object> data = new HashMap<>(); data.put("additionalComment", "reopening the case"); caseClient.reopenCase(caseId, CONTAINER_ID, CLAIM_CASE_DEF_ID, data); caseInstance = caseClient.getCaseInstance(CONTAINER_ID, caseId); Assertions.assertThat(caseInstance).isNotNull(); Assertions.assertThat(caseInstance.getCaseId()).isEqualTo(caseId); Object additionalComment = caseClient.getCaseInstanceData(CONTAINER_ID, caseId, "additionalComment"); Assertions.assertThat(additionalComment).isNotNull(); Assertions.assertThat(additionalComment).isEqualTo("reopening the case"); }
private void assertCaseInstance(String caseId) { CaseInstance cInstance = caseClient.getCaseInstance(CONTAINER_ID, caseId); assertNotNull(cInstance); assertEquals(caseId, cInstance.getCaseId()); assertEquals(CLAIM_CASE_DEF_ID, cInstance.getCaseDefinitionId()); }
@Test public void testCreateCancelAndReopenCaseWithEmptyCaseFile() { String caseId = startCarInsuranceClaimCase(USER_YODA, USER_JOHN, USER_YODA); Assertions.assertThat(caseId).isNotNull(); Assertions.assertThat(caseId).startsWith(CLAIM_CASE_ID_PREFIX); CaseInstance caseInstance = caseClient.getCaseInstance(CONTAINER_ID, caseId); assertCarInsuranceCaseInstance(caseInstance, caseId, USER_YODA); caseClient.cancelCaseInstance(CONTAINER_ID, caseId); CaseInstance closed = caseClient.getCaseInstance(CONTAINER_ID, caseId); Assertions.assertThat(closed.getCaseStatus()).isEqualTo(3); Map<String, Object> data = new HashMap<>(); data.put("additionalComment", "reopening the case"); caseClient.reopenCase(caseId, CONTAINER_ID, CLAIM_CASE_DEF_ID, data); caseInstance = caseClient.getCaseInstance(CONTAINER_ID, caseId); Assertions.assertThat(caseInstance).isNotNull(); Assertions.assertThat(caseInstance.getCaseId()).isEqualTo(caseId); Object additionalComment = caseClient.getCaseInstanceData(CONTAINER_ID, caseId, "additionalComment"); Assertions.assertThat(additionalComment).isNotNull(); Assertions.assertThat(additionalComment).isEqualTo("reopening the case"); }
@Test public void testGetCaseInstancesByStatusSorting() { String hrCaseId = startUserTaskCase(USER_YODA, USER_JOHN); String claimCaseId = startCarInsuranceClaimCase(USER_YODA, USER_JOHN, USER_YODA); assertNotEquals(hrCaseId, claimCaseId); List<CaseInstance> caseInstances = caseClient.getCaseInstances(Arrays.asList(CaseStatus.OPEN.getName()), 0, 1, CaseServicesClient.SORT_BY_CASE_INSTANCE_ID, true); assertEquals(1, caseInstances.size()); assertEquals(claimCaseId, caseInstances.get(0).getCaseId()); caseInstances = caseClient.getCaseInstances(Arrays.asList(CaseStatus.OPEN.getName()), 1, 1, CaseServicesClient.SORT_BY_CASE_INSTANCE_ID, true); assertEquals(1, caseInstances.size()); assertEquals(hrCaseId, caseInstances.get(0).getCaseId()); caseInstances = caseClient.getCaseInstances(Arrays.asList(CaseStatus.OPEN.getName()), 0, 10, CaseServicesClient.SORT_BY_CASE_INSTANCE_ID, false); assertEquals(2, caseInstances.size()); assertEquals(hrCaseId, caseInstances.get(0).getCaseId()); assertEquals(claimCaseId, caseInstances.get(1).getCaseId()); }
@Test public void testCreateCaseWithEmptyCaseFileThenDestroyIt() { String caseId = startCarInsuranceClaimCase(USER_YODA, USER_JOHN, USER_YODA); Assertions.assertThat(caseId).isNotNull(); Assertions.assertThat(caseId).startsWith(CLAIM_CASE_ID_PREFIX); CaseInstance caseInstance = caseClient.getCaseInstance(CONTAINER_ID, caseId); assertCarInsuranceCaseInstance(caseInstance, caseId, USER_YODA); List<TaskSummary> tasks = taskClient.findTasksAssignedAsPotentialOwner(USER_YODA, 0, 10); assertEquals(1, tasks.size()); caseClient.destroyCaseInstance(CONTAINER_ID, caseId); CaseInstance closed = caseClient.getCaseInstance(CONTAINER_ID, caseId); Assertions.assertThat(closed.getCaseStatus()).isEqualTo(3); }
assertEquals(2, caseInstances.size()); List<String> caseDefs = caseInstances.stream().map(c -> c.getCaseDefinitionId()).collect(toList()); assertTrue(caseDefs.contains(CASE_HR_DEF_ID)); assertTrue(caseDefs.contains(CLAIM_CASE_DEF_ID));
stage2.setAdHocFragments(Arrays.asList(cAHF1_stage2, cAHF2_stage2)); ci.setStages(Arrays.asList(stage1, stage2)); when(clientMock.getCaseInstance(ci.getContainerId(), ci.getCaseId(), false, true,
private void assertMigratedCaseInstance(String caseId) { CaseInstance cInstance = caseClient.getCaseInstance(CONTAINER_ID_2, caseId); assertNotNull(cInstance); assertEquals(caseId, cInstance.getCaseId()); assertEquals(CLAIM_CASE_DEF_ID_2, cInstance.getCaseDefinitionId()); assertEquals(CONTAINER_ID_2, cInstance.getContainerId()); } }
KieServerAssert.assertNullOrEmpty("Milestones should be empty.", caseInstance.getMilestones()); assertNotNull(caseInstance.getCaseFile()); assertEquals("first case started", caseInstance.getCaseFile().getData().get("s")); assertNotNull(caseInstance.getRoleAssignments()); assertEquals(4, caseInstance.getRoleAssignments().size()); CaseRoleAssignment ownerRole = caseInstance.getRoleAssignments().get(0); assertEquals("owner", ownerRole.getName()); assertEquals(1, ownerRole.getUsers().size()); CaseRoleAssignment insuredRole = caseInstance.getRoleAssignments().get(1); assertEquals("insured", insuredRole.getName()); assertEquals(1, insuredRole.getUsers().size()); CaseRoleAssignment assessorRole = caseInstance.getRoleAssignments().get(2); assertEquals("assessor", assessorRole.getName()); assertEquals(USER_YODA, assessorRole.getUsers().get(0)); KieServerAssert.assertNullOrEmpty("Groups should be empty.", assessorRole.getGroups()); CaseRoleAssignment insuranceRepresentativeRole = caseInstance.getRoleAssignments().get(3); assertEquals("insuranceRepresentative", insuranceRepresentativeRole.getName()); assertEquals(1, insuranceRepresentativeRole.getUsers().size()); assertNotNull(caseInstance.getStages()); assertEquals(1, caseInstance.getStages().size()); CaseStage stage = caseInstance.getStages().get(0);
@Test public void getCaseInstance_whenClientReturnsInstance() { final CaseInstance ci = createTestInstance(caseId); when(clientMock.getCaseInstance(ci.getContainerId(), ci.getCaseId(), false, true, true, true)) .thenReturn(ci); final CaseInstanceSummary cis = testedService.getCaseInstance(serverTemplateId, ci.getContainerId(), ci.getCaseId()); assertCaseInstance(ci, cis); }
@Test public void testGetCaseInstancesSorting() { String hrCaseId = startUserTaskCase(USER_YODA, USER_JOHN); String claimCaseId = startCarInsuranceClaimCase(USER_YODA, USER_JOHN, USER_YODA); assertNotEquals(hrCaseId, claimCaseId); List<CaseInstance> caseInstances = caseClient.getCaseInstances(0, 1, CaseServicesClient.SORT_BY_CASE_INSTANCE_ID, true); assertEquals(1, caseInstances.size()); assertEquals(claimCaseId, caseInstances.get(0).getCaseId()); caseInstances = caseClient.getCaseInstances(1, 1, CaseServicesClient.SORT_BY_CASE_INSTANCE_ID, true); assertEquals(1, caseInstances.size()); assertEquals(hrCaseId, caseInstances.get(0).getCaseId()); caseInstances = caseClient.getCaseInstances(0, 10, CaseServicesClient.SORT_BY_CASE_INSTANCE_ID, false); assertEquals(2, caseInstances.size()); assertEquals(hrCaseId, caseInstances.get(0).getCaseId()); assertEquals(claimCaseId, caseInstances.get(1).getCaseId()); }
@Test public void testDestroyCaseInstance() { Map<String, Object> caseData = new HashMap<>(); caseData.put("car", "ford"); CaseFile caseFile = CaseFile.builder() .data(caseData) .addUserAssignments(CASE_INSURED_ROLE, USER_YODA) .addUserAssignments(CASE_INS_REP_ROLE, USER_JOHN) .addUserAssignments(CASE_ASSESSOR_ROLE, USER_YODA) .build(); String caseId = caseClient.startCase(CONTAINER_ID, CLAIM_CASE_DEF_ID, caseFile); Assertions.assertThat(caseId).isNotNull(); CaseInstance caseInstance = caseClient.getCaseInstance(CONTAINER_ID, caseId); assertCarInsuranceCaseInstance(caseInstance, caseId, USER_YODA); caseClient.destroyCaseInstance(CONTAINER_ID, caseId); CaseInstance closed = caseClient.getCaseInstance(CONTAINER_ID, caseId); Assertions.assertThat(closed.getCaseStatus()).isEqualTo(3); // Should throw exception because destroyed case cannot be reopen. assertClientException(() -> caseClient.reopenCase(caseId, CONTAINER_ID, CLAIM_CASE_DEF_ID), 404 , caseId); }
@Override public CaseInstanceSummary apply(final CaseInstance ci) { if (ci == null) { return null; } return CaseInstanceSummary.builder(). caseId(ci.getCaseId()). description(ci.getCaseDescription()). status(CaseStatus.fromId(ci.getCaseStatus())). containerId(ci.getContainerId()). owner(ci.getCaseOwner()). startedAt(ci.getStartedAt()). completedAt(ci.getCompletedAt()). caseDefinitionId(ci.getCaseDefinitionId()). roleAssignments( ofNullable(ci.getRoleAssignments()).orElse(emptyList()) .stream() .map(new RoleAssignmentsMapper()) .collect(toList())). stages( ofNullable(ci.getStages()).orElse(emptyList()) .stream() .map(new CaseStageMapper()) .collect(toList())). build(); } }
stage2.setAdHocFragments(Arrays.asList(cAHF1_stage2, cAHF2_stage2)); ci.setStages(Arrays.asList(stage1, stage2)); when(clientMock.getCaseInstance(ci.getContainerId(), ci.getCaseId(), false, true,
KieServerAssert.assertNullOrEmpty("Stages should be empty.", caseInstance.getStages()); assertNotNull(caseInstance.getCaseFile()); assertEquals("first case started", caseInstance.getCaseFile().getData().get("s")); assertNotNull(caseInstance.getRoleAssignments()); assertEquals(3, caseInstance.getRoleAssignments().size()); CaseRoleAssignment ownerRole = caseInstance.getRoleAssignments().get(0); assertEquals("owner", ownerRole.getName()); assertEquals(1, ownerRole.getUsers().size()); CaseRoleAssignment contactRole = caseInstance.getRoleAssignments().get(1); assertEquals("contact", contactRole.getName()); assertEquals(1, contactRole.getUsers().size()); CaseRoleAssignment participantRole = caseInstance.getRoleAssignments().get(2); assertEquals("participant", participantRole.getName()); KieServerAssert.assertNullOrEmpty("Users should be empty.", participantRole.getUsers()); assertNotNull(caseInstance.getMilestones()); assertEquals(2, caseInstance.getMilestones().size()); CaseMilestone milestone = caseInstance.getMilestones().get(0); assertEquals("2", milestone.getIdentifier()); assertEquals("Milestone1", milestone.getName()); milestone = caseInstance.getMilestones().get(1); assertNotNull(milestone.getIdentifier());