CaseFile caseFile = CaseFile.builder().addUserAssignments(CASE_INSURED_ROLE, USER_YODA) .addUserAssignments(CASE_INS_REP_ROLE, USER_JOHN) .data(caseData) .build();
.addUserAssignments(CASE_INS_REP_ROLE, USER_JOHN) .addDataAccessRestrictions("car", CASE_INSURED_ROLE) .data(caseData) .build();
@Test public void testAddAndRemoveMultipleDataFromCaseFile() { Map<String, Object> caseData = new HashMap<>(); caseData.put("car", "ford"); caseData.put("location", "prague"); CaseFile caseFile = CaseFile.builder() .addUserAssignments(CASE_INSURED_ROLE, USER_YODA) .addUserAssignments(CASE_INS_REP_ROLE, USER_JOHN) .data(caseData) .build(); String caseId = caseClient.startCase(CONTAINER_ID, CLAIM_CASE_DEF_ID, caseFile); Assertions.assertThat(caseId).isNotNull(); Assertions.assertThat(caseId).startsWith(CLAIM_CASE_ID_PREFIX); caseData = caseClient.getCaseInstanceData(CONTAINER_ID, caseId); Assertions.assertThat(caseData).containsOnly(entry("car", "ford"), entry("location", "prague")); caseData = caseClient.getCaseInstanceData(CONTAINER_ID, caseId, Arrays.asList("car", "nonexisting")); Assertions.assertThat(caseData).containsOnly(entry("car", "ford")); caseData = new HashMap<>(); caseData.put("car", "fiat"); caseData.put("location", "brno"); caseData.put("conditions", "sunny"); caseClient.putCaseInstanceData(CONTAINER_ID, caseId, caseData); caseData = caseClient.getCaseInstanceData(CONTAINER_ID, caseId); Assertions.assertThat(caseData).containsOnly(entry("car", "fiat"), entry("location", "brno"), entry("conditions", "sunny")); caseClient.removeCaseInstanceData(CONTAINER_ID, caseId, "location", "conditions", "nonexisting"); caseData = caseClient.getCaseInstanceData(CONTAINER_ID, caseId); Assertions.assertThat(caseData).containsOnly(entry("car", "fiat")); }
private String startCarInsuranceClaimCase(String insured, String insuranceRep, String assessor) { Map<String, Object> data = new HashMap<>(); data.put("s", "first case started"); CaseFile caseFile = CaseFile.builder() .addUserAssignments(CASE_INSURED_ROLE, insured) .addUserAssignments(CASE_INS_REP_ROLE, insuranceRep) .addUserAssignments(CASE_ASSESSOR_ROLE, assessor) .data(data) .build(); String caseId = caseClient.startCase(CONTAINER_ID, CLAIM_CASE_DEF_ID, caseFile); assertNotNull(caseId); return caseId; } }
public String getCaseInstance(String containerId, String caseId, boolean withData, boolean withRoles, boolean withMilestones, boolean withStages, String marshallingType) { verifyContainerId(containerId, caseId); CaseInstance actualCaseInstance = caseService.getCaseInstance(caseId, withData, withRoles, withMilestones, withStages); org.kie.server.api.model.cases.CaseInstance caseInstance = ConvertUtils.transformCaseInstance(actualCaseInstance); if (actualCaseInstance.getStatus().equals(ProcessInstance.STATE_ACTIVE)) { if (withData) { caseInstance.setCaseFile(CaseFile.builder().data(actualCaseInstance.getCaseFile().getData()).build()); } if (withMilestones) { caseInstance.setMilestones(ConvertUtils.transformMilestones(actualCaseInstance.getCaseMilestones())); } if (withStages) { caseInstance.setStages(ConvertUtils.transformStages(actualCaseInstance.getCaseStages())); } if (withRoles) { caseInstance.setRoleAssignments(ConvertUtils.transformRoleAssignment(actualCaseInstance.getCaseRoles())); } } logger.debug("About to marshal case instance with id '{}' {}", caseId, caseInstance); return marshallerHelper.marshal(containerId, marshallingType, caseInstance, new ByCaseIdContainerLocator(caseId)); }
@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); }
@Test public void testAddDynamicProcessToCaseNotExistingProcessDefinition() { String invalidProcessId = "not-existing-process-id"; Map<String, Object> data = new HashMap<>(); data.put("s", "first case started"); CaseFile caseFile = CaseFile.builder() .data(data) .addUserAssignments(CASE_INSURED_ROLE, USER_YODA) .addUserAssignments(CASE_INS_REP_ROLE, USER_JOHN) .build(); String caseId = caseClient.startCase(CONTAINER_ID, CLAIM_CASE_DEF_ID, caseFile); assertNotNull(caseId); assertClientException(() -> caseClient.addDynamicSubProcess(CONTAINER_ID, caseId, invalidProcessId, null), 404, "Could not find process definition \"" + invalidProcessId + "\" in container \"" + CONTAINER_ID + "\"", "No process definition found with id: " + invalidProcessId); }
@Test public void testCaseRolesCardinality() { Map<String, Object> data = new HashMap<>(); data.put("s", "first case started"); CaseFile caseFile = CaseFile.builder() .data(data) .addUserAssignments(CASE_INSURED_ROLE, USER_YODA) .addUserAssignments(CASE_INS_REP_ROLE, USER_JOHN) .build(); String caseId = caseClient.startCase(CONTAINER_ID, CLAIM_CASE_DEF_ID, caseFile); assertNotNull(caseId); // Try to add second user to insured role with cardinality 1 assertClientException( () -> caseClient.assignUserToRole(CONTAINER_ID, caseId, CASE_INSURED_ROLE, USER_YODA), 400, "Cannot add more users for role " + CASE_INSURED_ROLE); }
private String startUserTaskCase(String owner, String contact) { Map<String, Object> data = new HashMap<>(); data.put("s", "first case started"); CaseFile caseFile = CaseFile.builder() .addUserAssignments(CASE_OWNER_ROLE, owner) .addUserAssignments(CASE_CONTACT_ROLE, contact) .data(data) .build(); String caseId = caseClient.startCase(CONTAINER_ID, CASE_HR_DEF_ID, caseFile); assertNotNull(caseId); return caseId; }
@Test public void testCustomCaseId() throws Exception { Assume.assumeFalse(TestConfig.isLocalServer()); Map<String, Object> data = new HashMap<>(); data.put("s", "first case started"); CaseFile caseFile = CaseFile.builder() .addUserAssignments(CASE_OWNER_ROLE, USER_YODA) .data(data) .build(); String caseId = caseClient.startCase(CONTAINER_ID, CASE_HR_DEF_ID, caseFile); assertNotNull(caseId); assertTrue("Created Case Id doesn't start with expected value, value is: " + caseId, caseId.startsWith("HR-01234")); } }
private String startUserTaskCase(String owner, String contact) { Map<String, Object> data = new HashMap<>(); data.put("s", "first case started"); CaseFile caseFile = CaseFile.builder() .addUserAssignments(CASE_OWNER_ROLE, owner) .addUserAssignments(CASE_CONTACT_ROLE, contact) .data(data) .build(); String caseId = caseClient.startCase(CONTAINER_ID, CASE_HR_DEF_ID, caseFile); assertNotNull(caseId); return caseId; } }
private String startCarInsuranceClaimCase(String insured, String insuranceRep, String assessor, Map<String, Object> data) { CaseFile caseFile = CaseFile.builder() .addUserAssignments(CASE_INSURED_ROLE, insured) .addUserAssignments(CASE_INS_REP_ROLE, insuranceRep) .addUserAssignments(CASE_ASSESSOR_ROLE, assessor) .data(data) .build(); String caseId = caseClient.startCase(CONTAINER_ID, CLAIM_CASE_DEF_ID, caseFile); assertNotNull(caseId); return caseId; }
private String startCarInsuranceClaimCase(String insured, String insuranceRep, String assessor) { Map<String, Object> data = new HashMap<>(); data.put("s", "first case started"); CaseFile caseFile = CaseFile.builder() .addUserAssignments(CASE_INSURED_ROLE, insured) .addUserAssignments(CASE_INS_REP_ROLE, insuranceRep) .addUserAssignments(CASE_ASSESSOR_ROLE, assessor) .data(data) .build(); String caseId = caseClient.startCase(CONTAINER_ID, CLAIM_CASE_DEF_ID, caseFile); assertNotNull(caseId); return caseId; }
private String startUserTaskCase(String owner, String contact) { Map<String, Object> data = new HashMap<>(); data.put("s", "first case started"); CaseFile caseFile = CaseFile.builder() .addUserAssignments(CASE_OWNER_ROLE, owner) .addUserAssignments(CASE_CONTACT_ROLE, contact) .data(data) .build(); String caseId = caseClient.startCase(CONTAINER_ID, CASE_HR_DEF_ID, caseFile); assertNotNull(caseId); return caseId; }