@Test public void testEmptyQuery() { expect().statusCode(Status.OK.getStatusCode()) .when().get(USER_OPERATION_LOG_RESOURCE_URL); verify(queryMock, never()).deploymentId(anyString()); verify(queryMock, never()).processDefinitionId(anyString()); verify(queryMock, never()).processDefinitionKey(anyString()); verify(queryMock, never()).processInstanceId(anyString()); verify(queryMock, never()).executionId(anyString()); verify(queryMock, never()).caseDefinitionId(anyString()); verify(queryMock, never()).caseInstanceId(anyString()); verify(queryMock, never()).caseExecutionId(anyString()); verify(queryMock, never()).taskId(anyString()); verify(queryMock, never()).jobId(anyString()); verify(queryMock, never()).jobDefinitionId(anyString()); verify(queryMock, never()).batchId(anyString()); verify(queryMock, never()).userId(anyString()); verify(queryMock, never()).operationId(anyString()); verify(queryMock, never()).operationType(anyString()); verify(queryMock, never()).entityType(anyString()); verify(queryMock, never()).property(anyString()); verify(queryMock, never()).afterTimestamp(any(Date.class)); verify(queryMock, never()).beforeTimestamp(any(Date.class)); verify(queryMock, never()).orderByTimestamp(); verify(queryMock, never()).asc(); verify(queryMock, never()).desc(); verify(queryMock).list(); }
assertEquals(17, query().count()); assertEquals(11, query().entityType(EntityTypes.TASK).count()); assertEquals(4, query().entityType(EntityTypes.IDENTITY_LINK).count()); assertEquals(2, query().entityType(EntityTypes.ATTACHMENT).count()); assertEquals(0, query().entityType("unknown entity type").count()); assertEquals(1, query().operationType(OPERATION_TYPE_CREATE).count()); assertEquals(1, query().operationType(OPERATION_TYPE_SET_PRIORITY).count()); assertEquals(4, query().operationType(OPERATION_TYPE_UPDATE).count()); assertEquals(1, query().operationType(OPERATION_TYPE_ADD_USER_LINK).count()); assertEquals(1, query().operationType(OPERATION_TYPE_DELETE_USER_LINK).count()); assertEquals(1, query().operationType(OPERATION_TYPE_ADD_GROUP_LINK).count()); assertEquals(1, query().operationType(OPERATION_TYPE_DELETE_GROUP_LINK).count()); assertEquals(1, query().operationType(OPERATION_TYPE_ADD_ATTACHMENT).count()); assertEquals(1, query().operationType(OPERATION_TYPE_DELETE_ATTACHMENT).count()); assertEquals(11, query().processDefinitionId(process.getProcessDefinitionId()).count()); assertEquals(11, query().processInstanceId(process.getId()).count()); assertEquals(11, query().executionId(execution.getId()).count()); assertEquals(11, query().taskId(processTaskId).count()); assertEquals(6, query().taskId(userTask.getId()).count()); assertEquals(11, query().userId("icke").count()); // not includes the create operation called by the process assertEquals(6, query().userId("er").count()); UserOperationLogQuery updates = query().operationType(OPERATION_TYPE_UPDATE); String updateOperationId = updates.list().get(0).getOperationId();
@Override protected void applyFilters(UserOperationLogQuery query) { if (deploymentId != null) { query.deploymentId(deploymentId); query.processDefinitionId(processDefinitionId); query.processDefinitionKey(processDefinitionKey); query.processInstanceId(processInstanceId); query.executionId(executionId); query.caseDefinitionId(caseDefinitionId); query.caseInstanceId(caseInstanceId); query.caseExecutionId(caseExecutionId); query.taskId(taskId); query.jobId(jobId); query.jobDefinitionId(jobDefinitionId); query.batchId(batchId); query.userId(userId); query.operationId(operationId);
@Override public List<UserOperationLogEntryDto> queryUserOperationEntries(UriInfo uriInfo, Integer firstResult, Integer maxResults) { UserOperationLogQueryDto queryDto = new UserOperationLogQueryDto(objectMapper, uriInfo.getQueryParameters()); UserOperationLogQuery query = queryDto.toQuery(processEngine); if (firstResult == null && maxResults == null) { return UserOperationLogEntryDto.map(query.list()); } else { if (firstResult == null) { firstResult = 0; } if (maxResults == null) { maxResults = Integer.MAX_VALUE; } return UserOperationLogEntryDto.map(query.listPage(firstResult, maxResults)); } } }
protected void verifyVariableOperationAsserts(String operationType) { UserOperationLogQuery logQuery = query().entityType(EntityTypes.VARIABLE).operationType(operationType); assertEquals(0, logQuery.count()); }
@Test @Deployment(resources = { ONE_TASK_PROCESS }) public void testUserOperationLogDeletion() { // given process = runtimeService.startProcessInstanceByKey("oneTaskProcess"); runtimeService.setVariable(process.getId(), "testVariable1", "THIS IS TESTVARIABLE!!!"); // assume verifyVariableOperationAsserts(1, UserOperationLogEntry.OPERATION_TYPE_SET_VARIABLE); // when UserOperationLogEntry log = query().entityType(EntityTypes.VARIABLE).operationType(UserOperationLogEntry.OPERATION_TYPE_SET_VARIABLE).singleResult(); assertNotNull(log); historyService.deleteUserOperationLogEntry(log.getId()); // then List<UserOperationLogEntry> list = query().entityType(EntityTypes.VARIABLE).operationType(UserOperationLogEntry.OPERATION_TYPE_SET_VARIABLE).list(); assertEquals(0, list.size()); }
public void assertUserOperationLogs() { List<ProcessDefinition> processDefinitions = repositoryService.createProcessDefinitionQuery().list(); UserOperationLogQuery userOperationLogQuery = historyService .createUserOperationLogQuery() .operationType(UserOperationLogEntry.OPERATION_TYPE_DELETE); List<UserOperationLogEntry> userOperationLogs = userOperationLogQuery.list(); assertEquals(3, userOperationLogs.size()); for (ProcessDefinition processDefinition: processDefinitions) { UserOperationLogEntry userOperationLogEntry = userOperationLogQuery .deploymentId(processDefinition.getDeploymentId()).singleResult(); assertEquals(EntityTypes.PROCESS_DEFINITION, userOperationLogEntry.getEntityType()); assertEquals(processDefinition.getId(), userOperationLogEntry.getProcessDefinitionId()); assertEquals(processDefinition.getKey(), userOperationLogEntry.getProcessDefinitionKey()); assertEquals(processDefinition.getDeploymentId(), userOperationLogEntry.getDeploymentId()); assertEquals(UserOperationLogEntry.OPERATION_TYPE_DELETE, userOperationLogEntry.getOperationType()); assertEquals("cascade", userOperationLogEntry.getProperty()); assertFalse(Boolean.valueOf(userOperationLogEntry.getOrgValue())); assertTrue(Boolean.valueOf(userOperationLogEntry.getNewValue())); assertEquals(USER_ID, userOperationLogEntry.getUserId()); assertNull(userOperationLogEntry.getJobDefinitionId()); assertNull(userOperationLogEntry.getProcessInstanceId()); assertNull(userOperationLogEntry.getCaseInstanceId()); assertNull(userOperationLogEntry.getCaseDefinitionId()); } assertEquals(6, historyService.createUserOperationLogQuery().count()); }
@Test @Deployment(resources={"org/camunda/bpm/engine/test/api/oneTaskProcess.bpmn20.xml"}) public void testResolveTaskOperationId() { // given identityService.setAuthenticatedUserId("demo"); runtimeService.startProcessInstanceByKey(PROCESS_KEY); String taskId = taskService.createTaskQuery().singleResult().getId(); // when taskService.resolveTask(taskId, getVariables()); //then List<UserOperationLogEntry> userOperationLogEntries = historyService.createUserOperationLogQuery() .operationType(UserOperationLogEntry.OPERATION_TYPE_RESOLVE) .taskId(taskId) .list(); List<HistoricDetail> historicDetails = historyService.createHistoricDetailQuery().list(); verifySameOperationId(userOperationLogEntries, historicDetails); }
@Deployment(resources = {"org/camunda/bpm/engine/test/history/oneTaskProcess.bpmn20.xml"}) public void testSetPriority() { startTestProcess(); // then: set the priority of the task to 10 taskService.setPriority(task.getId(), 10); // expect: one entry for the priority update UserOperationLogQuery query = queryOperationDetails(OPERATION_TYPE_SET_PRIORITY); assertEquals(1, query.count()); // assert: correct priority set UserOperationLogEntry userOperationLogEntry = query.singleResult(); assertEquals(PRIORITY, userOperationLogEntry.getProperty()); // note: 50 is the default task priority assertEquals(50, Integer.parseInt(userOperationLogEntry.getOrgValue())); assertEquals(10, Integer.parseInt(userOperationLogEntry.getNewValue())); // move clock by 5 minutes Date date = DateTimeUtil.now().plusMinutes(5).toDate(); ClockUtil.setCurrentTime(date); // then: set priority again taskService.setPriority(task.getId(), 75); // expect: one entry for the priority update query = queryOperationDetails(OPERATION_TYPE_SET_PRIORITY); assertEquals(2, query.count()); // assert: correct priority set userOperationLogEntry = query.orderByTimestamp().asc().list().get(1); assertEquals(PRIORITY, userOperationLogEntry.getProperty()); assertEquals(10, Integer.parseInt(userOperationLogEntry.getOrgValue())); assertEquals(75, Integer.parseInt(userOperationLogEntry.getNewValue())); }
@Test @RequiredHistoryLevel(ProcessEngineConfiguration.HISTORY_FULL) public void testUserOperationLogQueryByBatchId() { // given Batch batch1 = helper.migrateProcessInstancesAsync(1); Batch batch2 = helper.migrateProcessInstancesAsync(1); // when identityService.setAuthenticatedUserId(USER_ID); managementService.suspendBatchById(batch1.getId()); managementService.suspendBatchById(batch2.getId()); managementService.activateBatchById(batch1.getId()); identityService.clearAuthentication(); // then UserOperationLogQuery query = historyService.createUserOperationLogQuery().batchId(batch1.getId()); assertEquals(2, query.count()); assertEquals(2, query.list().size()); query = historyService.createUserOperationLogQuery().batchId(batch2.getId()); assertEquals(1, query.count()); assertEquals(1, query.list().size()); }
@Before public void setUpMock() { List<UserOperationLogEntry> entries = MockProvider.createUserOperationLogEntries(); queryMock = mock(UserOperationLogQuery.class); when(queryMock.list()).thenReturn(entries); when(queryMock.listPage(anyInt(), anyInt())).thenReturn(entries); when(queryMock.count()).thenReturn((long) entries.size()); when(processEngine.getHistoryService().createUserOperationLogQuery()).thenReturn(queryMock); }
protected void verifyQueryResults(UserOperationLogQuery query, int countExpected) { assertEquals(countExpected, query.list().size()); assertEquals(countExpected, query.count()); if (countExpected == 1) { assertNotNull(query.singleResult()); } else if (countExpected > 1){ verifySingleResultFails(query); } else if (countExpected == 0) { assertNull(query.singleResult()); } }
public static void clearUserOperationLog(ProcessEngineConfigurationImpl processEngineConfiguration) { if (processEngineConfiguration.getHistoryLevel().equals(HistoryLevel.HISTORY_LEVEL_FULL)) { HistoryService historyService = processEngineConfiguration.getHistoryService(); List<UserOperationLogEntry> logs = historyService.createUserOperationLogQuery().list(); for (UserOperationLogEntry log : logs) { historyService.deleteUserOperationLogEntry(log.getId()); } } }
@Test @RequiredHistoryLevel(ProcessEngineConfiguration.HISTORY_FULL) public void testUserOperationLogQueryByBatchEntityType() { // given Batch batch1 = helper.migrateProcessInstancesAsync(1); Batch batch2 = helper.migrateProcessInstancesAsync(1); // when identityService.setAuthenticatedUserId(USER_ID); managementService.suspendBatchById(batch1.getId()); managementService.suspendBatchById(batch2.getId()); managementService.activateBatchById(batch1.getId()); identityService.clearAuthentication(); // then UserOperationLogQuery query = historyService.createUserOperationLogQuery().entityType(BATCH); assertEquals(3, query.count()); assertEquals(3, query.list().size()); }
@Deployment(resources = {ONE_TASK_PROCESS}) public void testQueryWithBackwardCompatibility() { createLogEntries(); // expect: all entries can be fetched assertEquals(17, query().count()); // entity type assertEquals(11, query().entityType(ENTITY_TYPE_TASK).count()); assertEquals(4, query().entityType(ENTITY_TYPE_IDENTITY_LINK).count()); assertEquals(2, query().entityType(ENTITY_TYPE_ATTACHMENT).count()); assertEquals(0, query().entityType("unknown entity type").count()); }
@Override public CountResultDto queryUserOperationCount(UriInfo uriInfo) { UserOperationLogQueryDto queryDto = new UserOperationLogQueryDto(objectMapper, uriInfo.getQueryParameters()); UserOperationLogQuery query = queryDto.toQuery(processEngine); return new CountResultDto(query.count()); }
List<UserOperationLogEntry> opLogEntries = rule.getHistoryService().createUserOperationLogQuery().operationType("RestartProcessInstance").list(); Assert.assertEquals(2, opLogEntries.size());
@Deployment(resources = {"org/camunda/bpm/engine/test/history/oneTaskProcess.bpmn20.xml"}) public void testSubmitTaskForm_Complete() { startTestProcess(); formService.submitTaskForm(task.getId(), new HashMap<String, Object>()); // expect: two entries for the resolving (delegation and assignee changed) UserOperationLogQuery query = queryOperationDetails(OPERATION_TYPE_COMPLETE); assertEquals(1, query.count()); // assert: delete assertFalse(Boolean.parseBoolean(query.property("delete").singleResult().getOrgValue())); assertTrue(Boolean.parseBoolean(query.property("delete").singleResult().getNewValue())); assertProcessEnded(process.getId()); }
@Test public void testQueryByDeploymentId() { // given String deploymentId = repositoryService .createDeployment() .addClasspathResource(ONE_TASK_PROCESS) .deploy() .getId(); // when UserOperationLogQuery query = historyService .createUserOperationLogQuery() .deploymentId(deploymentId); // then assertEquals(0, query.count()); repositoryService.deleteDeployment(deploymentId, true); }
@Deployment(resources={"org/camunda/bpm/engine/test/api/cmmn/oneTaskCase.cmmn"}) public void testDeleteCaseInstanceKeepUserOperationLog() { // given String caseInstanceId = caseService .withCaseDefinitionByKey("oneTaskCase") .create() .getId(); String caseExecutionId = caseService .createCaseExecutionQuery() .activityId("PI_HumanTask_1") .singleResult() .getId(); String taskId = taskService.createTaskQuery().singleResult().getId(); taskService.complete(taskId); caseService.closeCaseInstance(caseInstanceId); UserOperationLogQuery query = historyService .createUserOperationLogQuery() .caseInstanceId(caseInstanceId); assertEquals(1, query.count()); // when historyService.deleteHistoricCaseInstance(caseInstanceId); // then assertEquals(1, query.count()); }