private void assertThatTasksHaveAllImportantInformation(UserOperationLogEntry userOperationLogEntry) { assertThat(userOperationLogEntry, notNullValue()); assertThat(userOperationLogEntry.getId(), notNullValue()); assertThat(userOperationLogEntry.getOperationType(), is(OPERATION_TYPE_CLAIM)); assertThat(userOperationLogEntry.getOrgValue(), nullValue()); assertThat(userOperationLogEntry.getNewValue(), is(userId)); assertThat(userOperationLogEntry.getTimestamp(), notNullValue()); assertThat(userOperationLogEntry.getProcessDefinitionKey(), is("process")); assertThat(userOperationLogEntry.getProcessDefinitionId(), notNullValue()); assertThat(userOperationLogEntry.getUserId(), is(userId)); assertThat(userOperationLogEntry.getTaskId(), is(taskService.createTaskQuery().singleResult().getId())); }
public void testSetDateProperty() { // given: a single task task = taskService.newTask(); Date now = ClockUtil.getCurrentTime(); task.setDueDate(now); taskService.saveTask(task); UserOperationLogEntry logEntry = historyService.createUserOperationLogQuery().singleResult(); assertEquals(String.valueOf(now.getTime()), logEntry.getNewValue()); }
@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()); }
@Deployment(resources = {"org/camunda/bpm/engine/test/history/oneTaskProcess.bpmn20.xml"}) public void testDelegateTask() { startTestProcess(); // then: delegate the assigned task taskService.claim(task.getId(), "icke"); taskService.delegateTask(task.getId(), "er"); // expect: three entries for the delegation UserOperationLogQuery query = queryOperationDetails(OPERATION_TYPE_DELEGATE); assertEquals(3, query.count()); // assert: details assertEquals("icke", queryOperationDetails(OPERATION_TYPE_DELEGATE, OWNER).singleResult().getNewValue()); assertEquals("er", queryOperationDetails(OPERATION_TYPE_DELEGATE, ASSIGNEE).singleResult().getNewValue()); assertEquals(DelegationState.PENDING.toString(), queryOperationDetails(OPERATION_TYPE_DELEGATE, DELEGATION).singleResult().getNewValue()); completeTestProcess(); }
public void testDeleteTask() { // given: a single task task = taskService.newTask(); taskService.saveTask(task); // then: delete the task taskService.deleteTask(task.getId(), "duplicated"); // expect: one entry for the deletion UserOperationLogQuery query = queryOperationDetails(OPERATION_TYPE_DELETE); assertEquals(1, query.count()); // assert: details UserOperationLogEntry delete = query.singleResult(); assertEquals(DELETE, delete.getProperty()); assertFalse(Boolean.parseBoolean(delete.getOrgValue())); assertTrue(Boolean.parseBoolean(delete.getNewValue())); }
@Deployment(resources = {"org/camunda/bpm/engine/test/history/oneTaskProcess.bpmn20.xml"}) public void testCreateAndCompleteTask() { startTestProcess(); // expect: no entry for the task creation by process engine UserOperationLogQuery query = historyService.createUserOperationLogQuery(); assertEquals(0, query.count()); completeTestProcess(); // expect: one entry for the task completion query = queryOperationDetails(OPERATION_TYPE_COMPLETE); assertEquals(1, query.count()); UserOperationLogEntry complete = query.singleResult(); assertEquals(DELETE, complete.getProperty()); assertTrue(Boolean.parseBoolean(complete.getNewValue())); }
public void testMultipleValueChange() { // given: a single task task = taskService.newTask(); taskService.saveTask(task); // then: change a property twice task.setName("a task"); task.setName("to do"); taskService.saveTask(task); UserOperationLogEntry update = queryOperationDetails(OPERATION_TYPE_UPDATE).singleResult(); assertNull(update.getOrgValue()); assertEquals("to do", update.getNewValue()); }
@Deployment(resources = {"org/camunda/bpm/engine/test/history/oneTaskProcess.bpmn20.xml"}) public void testResolveTask() { startTestProcess(); // then: resolve the task taskService.resolveTask(task.getId()); // expect: one entry for the resolving UserOperationLogQuery query = queryOperationDetails(OPERATION_TYPE_RESOLVE); assertEquals(1, query.count()); // assert: details assertEquals(DelegationState.RESOLVED.toString(), query.singleResult().getNewValue()); completeTestProcess(); }
@Deployment(resources = {"org/camunda/bpm/engine/test/history/asyncTaskProcess.bpmn20.xml"}) public void testOverwriteOverridingPriority() { // given a job definition JobDefinition jobDefinition = managementService.createJobDefinitionQuery().singleResult(); // with an overriding priority ClockUtil.setCurrentTime(new Date(System.currentTimeMillis())); managementService.setOverridingJobPriorityForJobDefinition(jobDefinition.getId(), 42); // when I overwrite that priority ClockUtil.setCurrentTime(new Date(System.currentTimeMillis() + 10000)); managementService.setOverridingJobPriorityForJobDefinition(jobDefinition.getId(), 43); // then this is accessible via the op log UserOperationLogEntry userOperationLogEntry = historyService.createUserOperationLogQuery() .orderByTimestamp().desc().listPage(0, 1).get(0); assertNotNull(userOperationLogEntry); assertEquals(EntityTypes.JOB_DEFINITION, userOperationLogEntry.getEntityType()); assertEquals(jobDefinition.getId(), userOperationLogEntry.getJobDefinitionId()); assertEquals(UserOperationLogEntry.OPERATION_TYPE_SET_PRIORITY, userOperationLogEntry.getOperationType()); assertEquals("overridingPriority", userOperationLogEntry.getProperty()); assertEquals("43", userOperationLogEntry.getNewValue()); assertEquals("42", userOperationLogEntry.getOrgValue()); }
public void testCompositeBeanInteraction() { // given: a manually created task task = taskService.newTask(); // then: save the task without any property change taskService.saveTask(task); // expect: no entry UserOperationLogQuery query = queryOperationDetails(OPERATION_TYPE_CREATE); UserOperationLogEntry create = query.singleResult(); assertNotNull(create); assertEquals(ENTITY_TYPE_TASK, create.getEntityType()); assertNull(create.getOrgValue()); assertNull(create.getNewValue()); assertNull(create.getProperty()); task.setAssignee("icke"); task.setName("to do"); // then: save the task again taskService.saveTask(task); // expect: two update entries with the same operation id List<UserOperationLogEntry> entries = queryOperationDetails(OPERATION_TYPE_UPDATE).list(); assertEquals(2, entries.size()); assertEquals(entries.get(0).getOperationId(), entries.get(1).getOperationId()); }
public void testResetChange() { // given: a single task task = taskService.newTask(); taskService.saveTask(task); // then: change the name String name = "a task"; task.setName(name); taskService.saveTask(task); UserOperationLogEntry update = queryOperationDetails(OPERATION_TYPE_UPDATE).singleResult(); assertNull(update.getOrgValue()); assertEquals(name, update.getNewValue()); // then: change the name some times and set it back to the original value task.setName("to do 1"); task.setName("to do 2"); task.setName(name); taskService.saveTask(task); // expect: there is no additional change tracked update = queryOperationDetails(OPERATION_TYPE_UPDATE).singleResult(); assertNull(update.getOrgValue()); assertEquals(name, update.getNewValue()); }
@Deployment(resources = {"org/camunda/bpm/engine/test/history/oneTaskProcess.bpmn20.xml"}) public void testSubmitTaskForm_Resolve() { startTestProcess(); taskService.delegateTask(task.getId(), "demo"); formService.submitTaskForm(task.getId(), new HashMap<String, Object>()); // expect: two entries for the resolving (delegation and assignee changed) UserOperationLogQuery query = queryOperationDetails(OPERATION_TYPE_RESOLVE); assertEquals(2, query.count()); // assert: delegation assertEquals(DelegationState.PENDING.toString(), query.property("delegation").singleResult().getOrgValue()); assertEquals(DelegationState.RESOLVED.toString(), query.property("delegation").singleResult().getNewValue()); // assert: assignee assertEquals("demo", query.property("assignee").singleResult().getOrgValue()); assertEquals(null, query.property("assignee").singleResult().getNewValue()); completeTestProcess(); }
@Deployment(resources = {"org/camunda/bpm/engine/test/history/oneTaskProcess.bpmn20.xml"}) public void testClaimTask() { startTestProcess(); // then: claim a new the task taskService.claim(task.getId(), "icke"); // expect: one entry for the claim UserOperationLogQuery query = queryOperationDetails(OPERATION_TYPE_CLAIM); assertEquals(1, query.count()); // assert: details UserOperationLogEntry claim = query.singleResult(); assertEquals(ASSIGNEE, claim.getProperty()); assertEquals("icke", claim.getNewValue()); completeTestProcess(); }
@Deployment(resources = {"org/camunda/bpm/engine/test/history/oneTaskProcess.bpmn20.xml"}) public void testAssignTask() { startTestProcess(); // then: assign the task taskService.setAssignee(task.getId(), "icke"); // expect: one entry for the task assignment UserOperationLogQuery query = queryOperationDetails(OPERATION_TYPE_ASSIGN); assertEquals(1, query.count()); // assert: details UserOperationLogEntry assign = query.singleResult(); assertEquals(ASSIGNEE, assign.getProperty()); assertEquals("icke", assign.getNewValue()); completeTestProcess(); }
@Deployment(resources = {"org/camunda/bpm/engine/test/history/oneTaskProcess.bpmn20.xml"}) public void testChangeTaskOwner() { startTestProcess(); // then: change the task owner taskService.setOwner(task.getId(), "icke"); // expect: one entry for the owner change UserOperationLogQuery query = queryOperationDetails(OPERATION_TYPE_SET_OWNER); assertEquals(1, query.count()); // assert: details UserOperationLogEntry change = query.singleResult(); assertEquals(OWNER, change.getProperty()); assertEquals("icke", change.getNewValue()); completeTestProcess(); }
@Test public void testLogCreationForOneExternalTaskId() { // given rule.getIdentityService().setAuthenticatedUserId("userId"); // when ExternalTask externalTask = externalTaskService.createExternalTaskQuery().processInstanceId(processInstanceIds.get(0)).singleResult(); externalTaskService.setRetries(externalTask.getId(), 5); rule.getIdentityService().clearAuthentication(); // then List<UserOperationLogEntry> opLogEntries = rule.getHistoryService().createUserOperationLogQuery().list(); Assert.assertEquals(1, opLogEntries.size()); Map<String, UserOperationLogEntry> entries = asMap(opLogEntries); UserOperationLogEntry retriesEntry = entries.get("retries"); Assert.assertNotNull(retriesEntry); Assert.assertEquals("ProcessInstance", retriesEntry.getEntityType()); Assert.assertEquals("SetExternalTaskRetries", retriesEntry.getOperationType()); Assert.assertEquals(externalTask.getProcessInstanceId(), retriesEntry.getProcessInstanceId()); Assert.assertEquals(externalTask.getProcessDefinitionId(), retriesEntry.getProcessDefinitionId()); Assert.assertEquals(externalTask.getProcessDefinitionKey(), retriesEntry.getProcessDefinitionKey()); Assert.assertNull(retriesEntry.getOrgValue()); Assert.assertEquals("5", retriesEntry.getNewValue()); }
@Test @RequiredHistoryLevel(ProcessEngineConfiguration.HISTORY_FULL) public void shouldCreateUserOperationLogForBatchSuspension() { // given Batch batch = helper.migrateProcessInstancesAsync(1); // when identityService.setAuthenticatedUserId(USER_ID); managementService.suspendBatchById(batch.getId()); identityService.clearAuthentication(); // then UserOperationLogEntry entry = historyService.createUserOperationLogQuery() .singleResult(); assertNotNull(entry); assertEquals(batch.getId(), entry.getBatchId()); assertEquals(AbstractSetBatchStateCmd.SUSPENSION_STATE_PROPERTY, entry.getProperty()); assertNull(entry.getOrgValue()); assertEquals(SuspensionState.SUSPENDED.getName(), entry.getNewValue()); }
@Test @RequiredHistoryLevel(ProcessEngineConfiguration.HISTORY_FULL) public void shouldCreateUserOperationLogForBatchActivation() { // given Batch batch = helper.migrateProcessInstancesAsync(1); managementService.suspendBatchById(batch.getId()); // when identityService.setAuthenticatedUserId(USER_ID); managementService.activateBatchById(batch.getId()); identityService.clearAuthentication(); // then UserOperationLogEntry entry = historyService.createUserOperationLogQuery() .singleResult(); assertNotNull(entry); assertEquals(batch.getId(), entry.getBatchId()); assertEquals(AbstractSetBatchStateCmd.SUSPENSION_STATE_PROPERTY, entry.getProperty()); assertNull(entry.getOrgValue()); assertEquals(SuspensionState.ACTIVE.getName(), entry.getNewValue()); }
public void testCreateDeployment() { // when Deployment deployment = repositoryService .createDeployment() .name(DEPLOYMENT_NAME) .addModelInstance(RESOURCE_NAME, createProcessWithServiceTask(PROCESS_KEY)) .deploy(); // then UserOperationLogEntry userOperationLogEntry = historyService.createUserOperationLogQuery().singleResult(); assertNotNull(userOperationLogEntry); assertEquals(EntityTypes.DEPLOYMENT, userOperationLogEntry.getEntityType()); assertEquals(deployment.getId(), userOperationLogEntry.getDeploymentId()); assertEquals(UserOperationLogEntry.OPERATION_TYPE_CREATE, userOperationLogEntry.getOperationType()); assertEquals("duplicateFilterEnabled", userOperationLogEntry.getProperty()); assertNull(userOperationLogEntry.getOrgValue()); assertFalse(Boolean.valueOf(userOperationLogEntry.getNewValue())); assertEquals(USER_ID, userOperationLogEntry.getUserId()); assertNull(userOperationLogEntry.getJobDefinitionId()); assertNull(userOperationLogEntry.getProcessInstanceId()); assertNull(userOperationLogEntry.getProcessDefinitionId()); assertNull(userOperationLogEntry.getProcessDefinitionKey()); assertNull(userOperationLogEntry.getCaseInstanceId()); assertNull(userOperationLogEntry.getCaseDefinitionId()); }
@Deployment(resources = {"org/camunda/bpm/engine/test/history/asyncTaskProcess.bpmn20.xml"}) public void testSetOverridingPriority() { // given a job definition JobDefinition jobDefinition = managementService.createJobDefinitionQuery().singleResult(); // when I set a job priority managementService.setOverridingJobPriorityForJobDefinition(jobDefinition.getId(), 42); // then an op log entry is written UserOperationLogEntry userOperationLogEntry = historyService.createUserOperationLogQuery().singleResult(); assertNotNull(userOperationLogEntry); assertEquals(EntityTypes.JOB_DEFINITION, userOperationLogEntry.getEntityType()); assertEquals(jobDefinition.getId(), userOperationLogEntry.getJobDefinitionId()); assertEquals(UserOperationLogEntry.OPERATION_TYPE_SET_PRIORITY, userOperationLogEntry.getOperationType()); assertEquals("overridingPriority", userOperationLogEntry.getProperty()); assertEquals("42", userOperationLogEntry.getNewValue()); assertEquals(null, userOperationLogEntry.getOrgValue()); assertEquals(USER_ID, userOperationLogEntry.getUserId()); assertEquals(jobDefinition.getProcessDefinitionId(), userOperationLogEntry.getProcessDefinitionId()); assertEquals(jobDefinition.getProcessDefinitionKey(), userOperationLogEntry.getProcessDefinitionKey()); assertEquals(deploymentId, userOperationLogEntry.getDeploymentId()); }