use of org.kie.server.api.model.cases.CaseInstance in project droolsjbpm-integration by kiegroup.
the class CaseRuntimeDataServiceIntegrationTest method testGetCaseInstanceCarInsuranceClaimCaseWithData.
@Test
public void testGetCaseInstanceCarInsuranceClaimCaseWithData() {
String caseId = startCarInsuranceClaimCase(USER_YODA, USER_JOHN, USER_YODA);
CaseInstance caseInstance = caseClient.getCaseInstance(CONTAINER_ID, caseId, true, true, true, true);
assertCarInsuranceCaseInstance(caseInstance, caseId, USER_YODA);
KieServerAssert.assertNullOrEmpty("Milestones should be empty.", caseInstance.getMilestones());
// Assert case file
assertNotNull(caseInstance.getCaseFile());
assertEquals("first case started", caseInstance.getCaseFile().getData().get("s"));
// Assert role assignments
assertNotNull(caseInstance.getRoleAssignments());
assertEquals(4, caseInstance.getRoleAssignments().size());
CaseRoleAssignment ownerRole = caseInstance.getRoleAssignments().get(0);
assertEquals("owner", ownerRole.getName());
assertEquals(1, ownerRole.getUsers().size());
assertEquals(USER_YODA, ownerRole.getUsers().get(0));
KieServerAssert.assertNullOrEmpty("Groups should be empty.", ownerRole.getGroups());
CaseRoleAssignment insuredRole = caseInstance.getRoleAssignments().get(1);
assertEquals("insured", insuredRole.getName());
assertEquals(1, insuredRole.getUsers().size());
assertEquals(USER_YODA, insuredRole.getUsers().get(0));
KieServerAssert.assertNullOrEmpty("Groups should be empty.", insuredRole.getGroups());
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());
assertEquals(USER_JOHN, insuranceRepresentativeRole.getUsers().get(0));
KieServerAssert.assertNullOrEmpty("Groups should be empty.", insuranceRepresentativeRole.getGroups());
// Assert stages
assertNotNull(caseInstance.getStages());
assertEquals(1, caseInstance.getStages().size());
CaseStage stage = caseInstance.getStages().get(0);
assertNotNull(stage.getIdentifier());
assertEquals("Build claim report", stage.getName());
assertEquals("Active", stage.getStatus());
List<NodeInstance> activeNodes = stage.getActiveNodes();
assertEquals(1, activeNodes.size());
assertEquals("Provide accident information", activeNodes.get(0).getName());
assertEquals("HumanTaskNode", activeNodes.get(0).getNodeType());
assertEquals(2, stage.getAdHocFragments().size());
}
use of org.kie.server.api.model.cases.CaseInstance in project droolsjbpm-integration by kiegroup.
the class CaseRuntimeDataServiceIntegrationTest method testGetCaseInstancesWithData.
@Test
public void testGetCaseInstancesWithData() {
String caseId = startUserTaskCase(USER_YODA, USER_JOHN);
List<String> statuses = Collections.singletonList(CaseStatus.OPEN.getName());
List<CaseInstance> caseInstances = caseClient.getCaseInstances(statuses, 0, 1, "", false, false);
assertEquals(1, caseInstances.size());
CaseInstance instance = caseInstances.get(0);
assertEquals(caseId, instance.getCaseId());
assertNull(instance.getCaseFile());
caseInstances = caseClient.getCaseInstances(statuses, 0, 1, "", false, true);
instance = caseInstances.get(0);
assertEquals(caseId, instance.getCaseId());
assertNotNull(instance.getCaseFile());
assertEquals("first case started", instance.getCaseFile().getData().get("s"));
}
use of org.kie.server.api.model.cases.CaseInstance in project droolsjbpm-integration by kiegroup.
the class CaseRuntimeDataServiceIntegrationTest method testCreateCaseWithCaseFileAndTriggerMilestones.
@Test
public void testCreateCaseWithCaseFileAndTriggerMilestones() {
String caseId = startUserTaskCase(USER_YODA, USER_JOHN);
assertNotNull(caseId);
assertTrue(caseId.startsWith(CASE_HR_ID_PREFIX));
CaseInstance caseInstance = caseClient.getCaseInstance(CONTAINER_ID, caseId);
assertHrCaseInstance(caseInstance, caseId, USER_YODA);
List<CaseInstance> caseInstances = caseClient.getCaseInstancesOwnedBy(USER_YODA, null, 0, 10);
assertEquals(1, caseInstances.size());
List<CaseMilestone> milestones = caseClient.getMilestones(CONTAINER_ID, caseId, true, 0, 10);
assertNotNull(milestones);
assertEquals(0, milestones.size());
caseClient.triggerAdHocFragment(CONTAINER_ID, caseId, "Milestone1", null);
milestones = caseClient.getMilestones(CONTAINER_ID, caseId, true, 0, 10);
assertNotNull(milestones);
assertEquals(1, milestones.size());
CaseMilestone milestone = milestones.get(0);
assertNotNull(milestone);
assertEquals("Milestone1", milestone.getName());
assertEquals(true, milestone.isAchieved());
assertEquals("2", milestone.getIdentifier());
assertNotNull(milestone.getAchievedAt());
caseClient.triggerAdHocFragment(CONTAINER_ID, caseId, "Milestone2", null);
milestones = caseClient.getMilestones(CONTAINER_ID, caseId, true, 0, 10);
assertNotNull(milestones);
assertEquals(1, milestones.size());
milestones = caseClient.getMilestones(CONTAINER_ID, caseId, false, 0, 10);
assertNotNull(milestones);
assertEquals(2, milestones.size());
Map<String, CaseMilestone> mappedMilestones = milestones.stream().collect(Collectors.toMap(CaseMilestone::getName, d -> d));
assertTrue(mappedMilestones.containsKey("Milestone1"));
assertTrue(mappedMilestones.containsKey("Milestone2"));
assertTrue(mappedMilestones.get("Milestone1").isAchieved());
assertFalse(mappedMilestones.get("Milestone2").isAchieved());
caseInstances = caseClient.getCaseInstances(0, 10);
assertEquals(1, caseInstances.size());
assertHrCaseInstance(caseInstances.get(0), caseId, USER_YODA);
// now auto complete milestone by inserting data
caseClient.putCaseInstanceData(CONTAINER_ID, caseId, "dataComplete", true);
milestones = caseClient.getMilestones(CONTAINER_ID, caseId, true, 0, 10);
assertNotNull(milestones);
assertEquals(2, milestones.size());
}
use of org.kie.server.api.model.cases.CaseInstance in project droolsjbpm-integration by kiegroup.
the class CaseRuntimeDataServiceIntegrationTest method testCreateDifferentTypesCases.
@Test
public void testCreateDifferentTypesCases() {
String caseId = startUserTaskCase(USER_YODA, USER_JOHN);
String caseClaimId = startCarInsuranceClaimCase(USER_JOHN, USER_YODA, USER_YODA);
assertNotNull(caseId);
assertTrue(caseId.startsWith(CASE_HR_ID_PREFIX));
assertNotNull(caseClaimId);
assertTrue(caseClaimId.startsWith(CLAIM_CASE_ID_PREFIX));
List<CaseInstance> caseInstances = caseClient.getCaseInstancesByContainer(CONTAINER_ID, Arrays.asList(CaseStatus.OPEN.getName()), 0, 10);
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));
caseInstances = caseClient.getCaseInstancesByDefinition(CONTAINER_ID, CLAIM_CASE_DEF_ID, Arrays.asList(CaseStatus.OPEN.getName()), 0, 10);
assertEquals(1, caseInstances.size());
List<CaseStage> stages = caseClient.getStages(CONTAINER_ID, caseClaimId, true, 0, 10);
assertEquals(1, stages.size());
CaseStage caseStage = stages.get(0);
assertEquals("Build claim report", caseStage.getName());
assertEquals(2, caseStage.getAdHocFragments().size());
List<CaseRoleAssignment> roles = caseClient.getRoleAssignments(CONTAINER_ID, caseClaimId);
assertEquals(4, roles.size());
Map<String, CaseRoleAssignment> mappedRoles = roles.stream().collect(toMap(CaseRoleAssignment::getName, r -> r));
assertTrue(mappedRoles.containsKey(CASE_OWNER_ROLE));
assertTrue(mappedRoles.containsKey(CASE_INSURED_ROLE));
assertTrue(mappedRoles.containsKey(CASE_INS_REP_ROLE));
assertTrue(mappedRoles.containsKey(CASE_ASSESSOR_ROLE));
CaseRoleAssignment ownerRole = mappedRoles.get(CASE_OWNER_ROLE);
assertTrue(ownerRole.getUsers().contains(USER_YODA));
KieServerAssert.assertNullOrEmpty("Groups should be empty", ownerRole.getGroups());
CaseRoleAssignment insuredRole = mappedRoles.get(CASE_INSURED_ROLE);
assertTrue(insuredRole.getUsers().contains(USER_JOHN));
KieServerAssert.assertNullOrEmpty("Groups should be empty", insuredRole.getGroups());
CaseRoleAssignment insRepRole = mappedRoles.get(CASE_INS_REP_ROLE);
assertTrue(insRepRole.getUsers().contains(USER_YODA));
KieServerAssert.assertNullOrEmpty("Groups should be empty", insRepRole.getGroups());
CaseRoleAssignment assessorRole = mappedRoles.get(CASE_ASSESSOR_ROLE);
assertTrue(assessorRole.getUsers().contains(USER_YODA));
KieServerAssert.assertNullOrEmpty("Groups should be empty", assessorRole.getGroups());
caseClient.assignUserToRole(CONTAINER_ID, caseClaimId, CASE_ASSESSOR_ROLE, USER_MARY);
caseClient.assignGroupToRole(CONTAINER_ID, caseClaimId, CASE_ASSESSOR_ROLE, "managers");
roles = caseClient.getRoleAssignments(CONTAINER_ID, caseClaimId);
assertEquals(4, roles.size());
mappedRoles = roles.stream().collect(toMap(CaseRoleAssignment::getName, r -> r));
assessorRole = mappedRoles.get(CASE_ASSESSOR_ROLE);
assertTrue(assessorRole.getUsers().contains(USER_MARY));
assertTrue(assessorRole.getGroups().contains("managers"));
caseClient.removeUserFromRole(CONTAINER_ID, caseClaimId, CASE_ASSESSOR_ROLE, USER_MARY);
caseClient.removeUserFromRole(CONTAINER_ID, caseClaimId, CASE_ASSESSOR_ROLE, USER_YODA);
caseClient.removeGroupFromRole(CONTAINER_ID, caseClaimId, CASE_ASSESSOR_ROLE, "managers");
roles = caseClient.getRoleAssignments(CONTAINER_ID, caseClaimId);
assertEquals(4, roles.size());
mappedRoles = roles.stream().collect(toMap(CaseRoleAssignment::getName, r -> r));
assessorRole = mappedRoles.get(CASE_ASSESSOR_ROLE);
KieServerAssert.assertNullOrEmpty("Users should be empty", assessorRole.getUsers());
KieServerAssert.assertNullOrEmpty("Groups should be empty", assessorRole.getGroups());
}
use of org.kie.server.api.model.cases.CaseInstance in project droolsjbpm-integration by kiegroup.
the class CaseRuntimeDataServiceIntegrationTest method testGetCaseOwnedWithData.
@Test
public void testGetCaseOwnedWithData() {
String caseId = startUserTaskCase(USER_YODA, USER_JOHN);
List<String> statuses = Collections.singletonList(CaseStatus.OPEN.getName());
List<CaseInstance> caseInstances = caseClient.getCaseInstancesOwnedBy(USER_YODA, statuses, 0, 1, "", false, false);
assertEquals(1, caseInstances.size());
CaseInstance instance = caseInstances.get(0);
assertEquals(caseId, instance.getCaseId());
assertNull(instance.getCaseFile());
caseInstances = caseClient.getCaseInstancesOwnedBy(USER_YODA, statuses, 0, 1, "", false, true);
instance = caseInstances.get(0);
assertEquals(caseId, instance.getCaseId());
assertNotNull(instance.getCaseFile());
assertEquals("first case started", instance.getCaseFile().getData().get("s"));
}
Aggregations