public static HistoricCaseInstanceDto fromHistoricCaseInstance(HistoricCaseInstance historicCaseInstance) { HistoricCaseInstanceDto dto = new HistoricCaseInstanceDto(); dto.id = historicCaseInstance.getId(); dto.businessKey = historicCaseInstance.getBusinessKey(); dto.caseDefinitionId = historicCaseInstance.getCaseDefinitionId(); dto.caseDefinitionKey = historicCaseInstance.getCaseDefinitionKey(); dto.caseDefinitionName = historicCaseInstance.getCaseDefinitionName(); dto.createTime = historicCaseInstance.getCreateTime(); dto.closeTime = historicCaseInstance.getCloseTime(); dto.durationInMillis = historicCaseInstance.getDurationInMillis(); dto.createUserId = historicCaseInstance.getCreateUserId(); dto.superCaseInstanceId = historicCaseInstance.getSuperCaseInstanceId(); dto.superProcessInstanceId = historicCaseInstance.getSuperProcessInstanceId(); dto.tenantId = historicCaseInstance.getTenantId(); dto.active = historicCaseInstance.isActive(); dto.completed = historicCaseInstance.isCompleted(); dto.terminated = historicCaseInstance.isTerminated(); dto.closed = historicCaseInstance.isClosed(); return dto; }
@Override public void checkDeleteHistoricCaseInstance(HistoricCaseInstance instance) { if (instance != null && !getTenantManager().isAuthenticatedTenant(instance.getTenantId())) { throw LOG.exceptionCommandWithUnauthorizedTenant("delete the historic case instance '"+ instance.getId() + "'"); } }
public static HistoricCaseInstance createMockHistoricCaseInstanceNotClosed() { HistoricCaseInstance mock = createMockHistoricCaseInstance(); when(mock.getCloseTime()).thenReturn(null); when(mock.getDurationInMillis()).thenReturn(null); when(mock.isActive()).thenReturn(true); when(mock.isCompleted()).thenReturn(false); when(mock.isTerminated()).thenReturn(false); when(mock.isClosed()).thenReturn(false); return mock; }
List<? extends Comparable> sortedList = Arrays.asList(oneCaseInstance.getId(), twoCaseInstance.getId()); Collections.sort(sortedList); sortedList = Arrays.asList(oneCaseInstance.getCaseDefinitionId(), twoCaseInstance.getCaseDefinitionId()); Collections.sort(sortedList); sortedList = Arrays.asList(oneCaseInstance.getBusinessKey(), twoCaseInstance.getBusinessKey()); Collections.sort(sortedList); sortedList = Arrays.asList(oneCaseInstance.getCreateTime(), twoCaseInstance.getCreateTime()); Collections.sort(sortedList); sortedList = Arrays.asList(oneCaseInstance.getCloseTime(), twoCaseInstance.getCloseTime()); Collections.sort(sortedList); sortedList = Arrays.asList(oneCaseInstance.getDurationInMillis(), twoCaseInstance.getDurationInMillis()); Collections.sort(sortedList);
@Deployment(resources = { "org/camunda/bpm/engine/test/api/cmmn/oneProcessTaskCase.cmmn", "org/camunda/bpm/engine/test/api/runtime/oneTaskProcess.bpmn20.xml"}) public void testQueryBySubProcessInstanceId() { String superCaseInstanceId = caseService.createCaseInstanceByKey("oneProcessTaskCase").getId(); String subProcessInstanceId = runtimeService .createProcessInstanceQuery() .superCaseInstanceId(superCaseInstanceId) .singleResult() .getId(); HistoricCaseInstanceQuery query = historyService .createHistoricCaseInstanceQuery() .subProcessInstanceId(subProcessInstanceId); assertEquals(1, query.list().size()); assertEquals(1, query.count()); HistoricCaseInstance caseInstance = query.singleResult(); assertEquals(superCaseInstanceId, caseInstance.getId()); assertNull(caseInstance.getSuperCaseInstanceId()); assertNull(caseInstance.getSuperProcessInstanceId()); }
@Deployment(resources={"org/camunda/bpm/engine/test/api/cmmn/emptyStageCase.cmmn"}) public void testCaseInstanceProperties() { CaseInstance caseInstance = createCaseInstance(); HistoricCaseInstance historicInstance = queryHistoricCaseInstance(caseInstance.getId()); // assert case instance properties are set correctly assertEquals(caseInstance.getId(), historicInstance.getId()); assertEquals(caseInstance.getBusinessKey(), historicInstance.getBusinessKey()); assertEquals(caseInstance.getCaseDefinitionId(), historicInstance.getCaseDefinitionId()); }
Date createTime = historicCaseInstance.getCreateTime(); Date closeTime = historicCaseInstance.getCloseTime(); Long durationInMillis = historicCaseInstance.getDurationInMillis();
@After public void cleanUp() { List<HistoricCaseInstance> instanceList = historyService.createHistoricCaseInstanceQuery().active().list(); if (!instanceList.isEmpty()) { for (HistoricCaseInstance instance : instanceList) { caseService.terminateCaseExecution(instance.getId()); caseService.closeCaseInstance(instance.getId()); } } List<HistoricCaseInstance> historicCaseInstances = historyService.createHistoricCaseInstanceQuery().list(); for (HistoricCaseInstance historicCaseInstance : historicCaseInstances) { historyService.deleteHistoricCaseInstance(historicCaseInstance.getId()); } }
@Deployment(resources = { "org/camunda/bpm/engine/test/api/cmmn/oneCaseTaskCase.cmmn", "org/camunda/bpm/engine/test/api/cmmn/oneTaskCase.cmmn" }) public void testSuperCaseInstance() { String caseInstanceId = createCaseInstanceByKey("oneCaseTaskCase").getId(); queryCaseExecutionByActivityId("PI_CaseTask_1").getId(); HistoricCaseInstance historicCaseInstance = historicQuery() .superCaseInstanceId(caseInstanceId) .singleResult(); assertNotNull(historicCaseInstance); assertEquals(caseInstanceId, historicCaseInstance.getSuperCaseInstanceId()); String superCaseInstanceId = historicQuery() .subCaseInstanceId(historicCaseInstance.getId()) .singleResult() .getId(); assertEquals(caseInstanceId, superCaseInstanceId); }
public Object execute(CommandContext commandContext) { ensureNotNull("caseInstanceId", caseInstanceId); // Check if case instance is still running HistoricCaseInstance instance = commandContext .getHistoricCaseInstanceManager() .findHistoricCaseInstance(caseInstanceId); ensureNotNull("No historic case instance found with id: " + caseInstanceId, "instance", instance); for(CommandChecker checker : commandContext.getProcessEngineConfiguration().getCommandCheckers()) { checker.checkDeleteHistoricCaseInstance(instance); } ensureNotNull("Case instance is still running, cannot delete historic case instance: " + caseInstanceId, "instance.getCloseTime()", instance.getCloseTime()); commandContext .getHistoricCaseInstanceManager() .deleteHistoricCaseInstancesByIds(Arrays.asList(caseInstanceId)); return null; }
public void testQuerySortingDesc() { // exclude historic case instances without tenant id because of database-specific ordering List<HistoricCaseInstance> historicCaseInstances = historyService.createHistoricCaseInstanceQuery() .tenantIdIn(TENANT_ONE, TENANT_TWO) .orderByTenantId() .desc() .list(); assertThat(historicCaseInstances.size(), is(2)); assertThat(historicCaseInstances.get(0).getTenantId(), is(TENANT_TWO)); assertThat(historicCaseInstances.get(1).getTenantId(), is(TENANT_ONE)); }
@Deployment(resources = "org/camunda/bpm/engine/test/api/cmmn/oneTaskCase.cmmn") public void testRetrieveCaseDefinitionName() { // given String id = createCaseInstance("oneTaskCase").getId(); // when HistoricCaseInstance caseInstance = historyService.createHistoricCaseInstanceQuery() .caseInstanceId(id) .singleResult(); // then assertEquals("One Task Case", caseInstance.getCaseDefinitionName()); }
@Deployment(resources = "org/camunda/bpm/engine/test/api/cmmn/oneTaskCase.cmmn") public void testRetrieveCaseDefinitionKey() { // given String id = createCaseInstance("oneTaskCase").getId(); // when HistoricCaseInstance caseInstance = historyService.createHistoricCaseInstanceQuery() .caseInstanceId(id) .singleResult(); // then assertEquals("oneTaskCase", caseInstance.getCaseDefinitionKey()); }
@Deployment(resources={"org/camunda/bpm/engine/test/api/cmmn/emptyStageCase.cmmn"}) public void testCreateUser() { String userId = "test"; identityService.setAuthenticatedUserId(userId); String caseInstanceId = createCaseInstance().getId(); HistoricCaseInstance historicCaseInstance = queryHistoricCaseInstance(caseInstanceId); assertEquals(userId, historicCaseInstance.getCreateUserId()); assertCount(1, historicQuery().createdBy(userId)); identityService.setAuthenticatedUserId(null); }
List<? extends Comparable> sortedList = Arrays.asList(oneCaseInstance.getId(), twoCaseInstance.getId()); Collections.sort(sortedList); sortedList = Arrays.asList(oneCaseInstance.getCaseDefinitionId(), twoCaseInstance.getCaseDefinitionId()); Collections.sort(sortedList); sortedList = Arrays.asList(oneCaseInstance.getBusinessKey(), twoCaseInstance.getBusinessKey()); Collections.sort(sortedList); sortedList = Arrays.asList(oneCaseInstance.getCreateTime(), twoCaseInstance.getCreateTime()); Collections.sort(sortedList); sortedList = Arrays.asList(oneCaseInstance.getCloseTime(), twoCaseInstance.getCloseTime()); Collections.sort(sortedList); sortedList = Arrays.asList(oneCaseInstance.getDurationInMillis(), twoCaseInstance.getDurationInMillis()); Collections.sort(sortedList);
@Deployment(resources = { "org/camunda/bpm/engine/test/api/cmmn/oneCaseTaskCase.cmmn", "org/camunda/bpm/engine/test/api/cmmn/oneTaskCase.cmmn" }) public void testQueryBySubCaseInstanceId() { String superCaseInstanceId = caseService.createCaseInstanceByKey("oneCaseTaskCase").getId(); String subCaseInstanceId = caseService .createCaseInstanceQuery() .superCaseInstanceId(superCaseInstanceId) .singleResult() .getId(); HistoricCaseInstanceQuery query = historyService .createHistoricCaseInstanceQuery() .subCaseInstanceId(subCaseInstanceId); assertEquals(1, query.list().size()); assertEquals(1, query.count()); HistoricCaseInstance caseInstance = query.singleResult(); assertEquals(superCaseInstanceId, caseInstance.getId()); assertNull(caseInstance.getSuperProcessInstanceId()); assertNull(caseInstance.getSuperCaseInstanceId()); }
@Override public void checkDeleteHistoricCaseInstance(HistoricCaseInstance instance) { if (instance != null && !getTenantManager().isAuthenticatedTenant(instance.getTenantId())) { throw LOG.exceptionCommandWithUnauthorizedTenant("delete the historic case instance '"+ instance.getId() + "'"); } }
@Deployment(resources={"org/camunda/bpm/engine/test/api/cmmn/emptyStageCase.cmmn"}) public void testCaseInstanceProperties() { CaseInstance caseInstance = createCaseInstance(); HistoricCaseInstance historicInstance = queryHistoricCaseInstance(caseInstance.getId()); // assert case instance properties are set correctly assertEquals(caseInstance.getId(), historicInstance.getId()); assertEquals(caseInstance.getBusinessKey(), historicInstance.getBusinessKey()); assertEquals(caseInstance.getCaseDefinitionId(), historicInstance.getCaseDefinitionId()); }
Date createTime = historicCaseInstance.getCreateTime(); Date closeTime = historicCaseInstance.getCloseTime(); Long durationInMillis = historicCaseInstance.getDurationInMillis();
@Deployment(resources={"org/camunda/bpm/engine/test/api/cmmn/emptyStageWithManualActivationCase.cmmn"}) public void testDeleteHistoricCaseInstance() { CaseInstance caseInstance = createCaseInstance(); HistoricCaseInstance historicInstance = queryHistoricCaseInstance(caseInstance.getId()); assertNotNull(historicInstance); try { // should not be able to delete historic case instance cause the case instance is still running historyService.deleteHistoricCaseInstance(historicInstance.getId()); fail("Exception expected"); } catch (NullValueException e) { // expected } terminate(caseInstance.getId()); close(caseInstance.getId()); historyService.deleteHistoricCaseInstance(historicInstance.getId()); assertCount(0, historicQuery()); }