@Override public CountResultDto getHistoricIdentityLinksCount(UriInfo uriInfo) { HistoricIdentityLinkLogQueryDto queryDto = new HistoricIdentityLinkLogQueryDto(objectMapper, uriInfo.getQueryParameters()); HistoricIdentityLinkLogQuery query = queryDto.toQuery(processEngine); long count = query.count(); CountResultDto result = new CountResultDto(); result.setCount(count); return result; } private List<HistoricIdentityLinkLog> executePaginatedQuery(HistoricIdentityLinkLogQuery query, Integer firstResult, Integer maxResults) {
@Override public CountResultDto getHistoricIdentityLinksCount(UriInfo uriInfo) { HistoricIdentityLinkLogQueryDto queryDto = new HistoricIdentityLinkLogQueryDto(objectMapper, uriInfo.getQueryParameters()); HistoricIdentityLinkLogQuery query = queryDto.toQuery(processEngine); long count = query.count(); CountResultDto result = new CountResultDto(); result.setCount(count); return result; } private List<HistoricIdentityLinkLog> executePaginatedQuery(HistoricIdentityLinkLogQuery query, Integer firstResult, Integer maxResults) {
private HistoricIdentityLinkLogQuery setUpMockHistoricIdentityLinkQuery(List<HistoricIdentityLinkLog> mockedHistoricIdentityLinks) { HistoricIdentityLinkLogQuery mockedHistoricIdentityLinkQuery = mock(HistoricIdentityLinkLogQuery.class); when(mockedHistoricIdentityLinkQuery.list()).thenReturn(mockedHistoricIdentityLinks); when(mockedHistoricIdentityLinkQuery.count()).thenReturn((long) mockedHistoricIdentityLinks.size()); when(processEngine.getHistoryService().createHistoricIdentityLinkLogQuery()).thenReturn(mockedHistoricIdentityLinkQuery); return mockedHistoricIdentityLinkQuery; }
@Test public void testQueryCount() { expect().statusCode(Status.OK.getStatusCode()).body("count", equalTo(1)).when().get(HISTORY_IDENTITY_LINK_COUNT_QUERY_URL); verify(mockedQuery).count(); }
@Test public void singleQueryForMultipleTenant() { startProcessInstanceForTenant(TENANT_1); startProcessInstanceForTenant(TENANT_2); startProcessInstanceForTenant(TENANT_3); HistoricIdentityLinkLogQuery query = historyService.createHistoricIdentityLinkLogQuery(); assertEquals(query.tenantIdIn(TENANT_1, TENANT_2).count(), 2); query = historyService.createHistoricIdentityLinkLogQuery(); assertEquals(query.tenantIdIn(TENANT_2, TENANT_3).count(), 2); query = historyService.createHistoricIdentityLinkLogQuery(); assertEquals(query.tenantIdIn(TENANT_1, TENANT_2, TENANT_3).count(), 3); }
@Deployment(resources = { "org/camunda/bpm/engine/test/api/runtime/oneTaskProcess.bpmn20.xml" }) public void testInvalidGroupQueryTaskCandidateForAddAndDeleteIdentityLink() { List<HistoricIdentityLinkLog> historicIdentityLinks = historyService.createHistoricIdentityLinkLogQuery().list(); assertEquals(historicIdentityLinks.size(), 0); // given startProcessInstance(PROCESS_DEFINITION_KEY); String taskId = taskService.createTaskQuery().singleResult().getId(); // if identityService.setAuthenticatedUserId(A_ASSIGNER_ID); taskService.addCandidateUser(taskId, A_USER_ID); taskService.deleteCandidateUser(taskId, A_USER_ID); // Invalid Individual Query test HistoricIdentityLinkLogQuery query = historyService.createHistoricIdentityLinkLogQuery(); assertEquals(query.taskId(INVALID_TASK_ID).count(), 0); assertEquals(query.type(INVALID_IDENTITY_LINK_TYPE).count(), 0); assertEquals(query.userId(INVALID_USER_ID).count(), 0); assertEquals(query.groupId(INVALID_GROUP_ID).count(), 0); assertEquals(query.assignerId(INVALID_ASSIGNER_ID).count(), 0); assertEquals(query.operationType(INVALID_HISTORY_EVENT_TYPE).count(), 0); assertEquals(query.processDefinitionId(INVALID_PROCESS_DEFINITION_ID).count(), 0); assertEquals(query.processDefinitionKey(INVALID_PROCESS_DEFINITION_KEY).count(), 0); }
@Deployment(resources = { "org/camunda/bpm/engine/test/api/runtime/oneTaskProcess.bpmn20.xml" }) public void testValidGroupQueryTaskCandidateForAddAndDeleteIdentityLink() { List<HistoricIdentityLinkLog> historicIdentityLinks = historyService.createHistoricIdentityLinkLogQuery().list(); assertEquals(historicIdentityLinks.size(), 0); // given ProcessInstance processInstance = startProcessInstance(PROCESS_DEFINITION_KEY); String taskId = taskService.createTaskQuery().singleResult().getId(); // if identityService.setAuthenticatedUserId(A_ASSIGNER_ID); taskService.addCandidateUser(taskId, A_USER_ID); taskService.deleteCandidateUser(taskId, A_USER_ID); // Valid group query test HistoricIdentityLinkLogQuery query = historyService.createHistoricIdentityLinkLogQuery(); assertEquals(query.taskId(taskId).count(), 2); assertEquals(query.type(IdentityLinkType.CANDIDATE).count(), 2); assertEquals(query.userId(A_USER_ID).count(), 2); assertEquals(query.assignerId(A_ASSIGNER_ID).count(), 2); assertEquals(query.processDefinitionId(processInstance.getProcessDefinitionId()).count(), 2); assertEquals(query.processDefinitionKey(PROCESS_DEFINITION_KEY).count(), 2); assertEquals(query.operationType(IDENTITY_LINK_DELETE).count(), 1); assertEquals(query.operationType(IDENTITY_LINK_ADD).count(), 1); }
@Deployment(resources = { "org/camunda/bpm/engine/test/api/runtime/OneTaskProcessWithCandidateUser.bpmn20.xml" }) public void testShouldAddTaskCandidateforAddIdentityLinkUsingXml() { // Pre test List<HistoricIdentityLinkLog> historicIdentityLinks = historyService.createHistoricIdentityLinkLogQuery().list(); assertEquals(historicIdentityLinks.size(), 0); // given startProcessInstance(PROCESS_DEFINITION_KEY_CANDIDATE_USER); historicIdentityLinks = historyService.createHistoricIdentityLinkLogQuery().list(); assertEquals(historicIdentityLinks.size(), 1); // query Test HistoricIdentityLinkLogQuery query = historyService.createHistoricIdentityLinkLogQuery(); assertEquals(query.userId(XML_USER).count(), 1); }
@Deployment(resources = { "org/camunda/bpm/engine/test/api/runtime/OneTaskProcessWithTaskAssignee.bpmn20.xml" }) public void testShouldAddTaskAssigneeforAddIdentityLinkUsingXml() { // Pre test List<HistoricIdentityLinkLog> historicIdentityLinks = historyService.createHistoricIdentityLinkLogQuery().list(); assertEquals(historicIdentityLinks.size(), 0); // given startProcessInstance(PROCESS_DEFINITION_KEY_ASSIGNEE); historicIdentityLinks = historyService.createHistoricIdentityLinkLogQuery().list(); assertEquals(historicIdentityLinks.size(), 1); // query Test HistoricIdentityLinkLogQuery query = historyService.createHistoricIdentityLinkLogQuery(); assertEquals(query.userId(XML_ASSIGNEE).count(), 1); }
@Deployment(resources = { "org/camunda/bpm/engine/test/api/runtime/OneTaskProcessWithCandidateGroups.bpmn20.xml" }) public void testShouldAddTaskCandidateGroupforAddIdentityLinkUsingXml() { // Pre test List<HistoricIdentityLinkLog> historicIdentityLinks = historyService.createHistoricIdentityLinkLogQuery().list(); assertEquals(historicIdentityLinks.size(), 0); // given startProcessInstance(PROCESS_DEFINITION_KEY_CANDIDATE_GROUP); historicIdentityLinks = historyService.createHistoricIdentityLinkLogQuery().list(); assertEquals(historicIdentityLinks.size(), 1); // query Test HistoricIdentityLinkLogQuery query = historyService.createHistoricIdentityLinkLogQuery(); assertEquals(query.groupId(XML_GROUP).count(), 1); }
@Deployment(resources = { "org/camunda/bpm/engine/test/api/runtime/oneTaskProcess.bpmn20.xml" }) public void testInvalidIndividualQueryTaskCandidateForAddAndDeleteIdentityLink() { List<HistoricIdentityLinkLog> historicIdentityLinks = historyService.createHistoricIdentityLinkLogQuery().list(); assertEquals(historicIdentityLinks.size(), 0); // given startProcessInstance(PROCESS_DEFINITION_KEY); String taskId = taskService.createTaskQuery().singleResult().getId(); // if identityService.setAuthenticatedUserId(A_ASSIGNER_ID); taskService.addCandidateUser(taskId, A_USER_ID); taskService.deleteCandidateUser(taskId, A_USER_ID); // Invalid Individual Query test HistoricIdentityLinkLogQuery query = historyService.createHistoricIdentityLinkLogQuery(); assertEquals(query.taskId(INVALID_TASK_ID).count(), 0); query = historyService.createHistoricIdentityLinkLogQuery(); assertEquals(query.type(INVALID_IDENTITY_LINK_TYPE).count(), 0); query = historyService.createHistoricIdentityLinkLogQuery(); assertEquals(query.userId(INVALID_USER_ID).count(), 0); query = historyService.createHistoricIdentityLinkLogQuery(); assertEquals(query.groupId(INVALID_GROUP_ID).count(), 0); query = historyService.createHistoricIdentityLinkLogQuery(); assertEquals(query.assignerId(INVALID_ASSIGNER_ID).count(), 0); query = historyService.createHistoricIdentityLinkLogQuery(); assertEquals(query.operationType(INVALID_HISTORY_EVENT_TYPE).count(), 0); }
@Deployment(resources = { "org/camunda/bpm/engine/test/api/runtime/oneTaskProcess.bpmn20.xml" }) public void testShouldAddClaimTaskCandidateforAddIdentityLink() { // Pre test List<HistoricIdentityLinkLog> historicIdentityLinks = historyService.createHistoricIdentityLinkLogQuery().list(); assertEquals(historicIdentityLinks.size(), 0); // given startProcessInstance(PROCESS_DEFINITION_KEY); String taskId = taskService.createTaskQuery().singleResult().getId(); taskService.claim(taskId, A_USER_ID); historicIdentityLinks = historyService.createHistoricIdentityLinkLogQuery().list(); assertEquals(historicIdentityLinks.size(), 1); //Query test HistoricIdentityLinkLogQuery query = historyService.createHistoricIdentityLinkLogQuery(); assertEquals(query.userId(A_USER_ID).count(), 1); query = historyService.createHistoricIdentityLinkLogQuery(); assertEquals(query.operationType(IDENTITY_LINK_ADD).count(), 1); query = historyService.createHistoricIdentityLinkLogQuery(); assertEquals(query.operationType(IDENTITY_LINK_DELETE).count(), 0); query = historyService.createHistoricIdentityLinkLogQuery(); assertEquals(query.type(IdentityLinkType.ASSIGNEE).count(), 1); }
@Deployment(resources = { "org/camunda/bpm/engine/test/api/runtime/OneTaskProcessWithCandidateStarterUsers.bpmn20.xml" }) public void testShouldAddProcessCandidateStarterUserforAddIdentityLinkUsingXml() { // Pre test - Historical identity link is added as part of deployment List<HistoricIdentityLinkLog> historicIdentityLinks = historyService.createHistoricIdentityLinkLogQuery().list(); assertEquals(historicIdentityLinks.size(), 1); // given ProcessDefinition latestProcessDef = repositoryService.createProcessDefinitionQuery().processDefinitionKey(PROCESS_DEFINITION_KEY_CANDIDATE_STARTER_USER) .singleResult(); assertNotNull(latestProcessDef); List<IdentityLink> links = repositoryService.getIdentityLinksForProcessDefinition(latestProcessDef.getId()); assertEquals(1, links.size()); historicIdentityLinks = historyService.createHistoricIdentityLinkLogQuery().list(); assertEquals(historicIdentityLinks.size(), 1); // query Test HistoricIdentityLinkLogQuery query = historyService.createHistoricIdentityLinkLogQuery(); assertEquals(query.userId(XML_USER).count(), 1); } @Deployment(resources = { "org/camunda/bpm/engine/test/api/runtime/OneTaskProcessWithCandidateStarterGroups.bpmn20.xml" })
@Test public void historicIdentityLinkForMultipleTenant() { startProcessInstanceForTenant(TENANT_1); // Query test HistoricIdentityLinkLog historicIdentityLink = historyService .createHistoricIdentityLinkLogQuery() .singleResult(); assertEquals(historicIdentityLink.getTenantId(), TENANT_1); // start process instance for another tenant startProcessInstanceForTenant(TENANT_2); // Query test List<HistoricIdentityLinkLog> historicIdentityLinks = historyService .createHistoricIdentityLinkLogQuery() .list(); assertEquals(historicIdentityLinks.size(), 2); HistoricIdentityLinkLogQuery query = historyService.createHistoricIdentityLinkLogQuery(); assertEquals(query.tenantIdIn(TENANT_1).count(), 1); query = historyService.createHistoricIdentityLinkLogQuery(); assertEquals(query.tenantIdIn(TENANT_2).count(), 1); }
@Deployment(resources = { "org/camunda/bpm/engine/test/api/runtime/OneTaskProcessWithCandidateStarterGroups.bpmn20.xml" }) public void testShouldAddProcessCandidateStarterGroupforAddIdentityLinkUsingXml() { // Pre test - Historical identity link is added as part of deployment List<HistoricIdentityLinkLog> historicIdentityLinks = historyService.createHistoricIdentityLinkLogQuery().list(); assertEquals(historicIdentityLinks.size(), 1); // given ProcessDefinition latestProcessDef = repositoryService.createProcessDefinitionQuery().processDefinitionKey(PROCESS_DEFINITION_KEY_CANDIDATE_STARTER_GROUP) .singleResult(); assertNotNull(latestProcessDef); List<IdentityLink> links = repositoryService.getIdentityLinksForProcessDefinition(latestProcessDef.getId()); assertEquals(1, links.size()); historicIdentityLinks = historyService.createHistoricIdentityLinkLogQuery().list(); assertEquals(historicIdentityLinks.size(), 1); // query Test HistoricIdentityLinkLogQuery query = historyService.createHistoricIdentityLinkLogQuery(); assertEquals(query.groupId(XML_GROUP).count(), 1); }
@Test public void addandDeleteHistoricIdentityLinkForSingleTenant() { startProcessInstanceForTenant(TENANT_1); HistoricIdentityLinkLog historicIdentityLink = historyService .createHistoricIdentityLinkLogQuery() .singleResult(); taskService.deleteCandidateUser(historicIdentityLink.getTaskId(), A_USER_ID); HistoricIdentityLinkLogQuery query = historyService.createHistoricIdentityLinkLogQuery(); assertEquals(query.tenantIdIn(TENANT_1).count(), 2); }
@Deployment(resources = { "org/camunda/bpm/engine/test/api/runtime/oneTaskProcess.bpmn20.xml" }) public void testShouldAddTaskOwnerForAddandDeleteIdentityLink() { // Pre test List<HistoricIdentityLinkLog> historicIdentityLinks = historyService.createHistoricIdentityLinkLogQuery().list(); assertEquals(historicIdentityLinks.size(), 0); // given startProcessInstance(PROCESS_DEFINITION_KEY); String taskId = taskService.createTaskQuery().singleResult().getId(); // if addAndDeleteUserWithAssigner(taskId, IdentityLinkType.OWNER); // then historicIdentityLinks = historyService.createHistoricIdentityLinkLogQuery().list(); assertEquals(historicIdentityLinks.size(), 2); // Basic Query test HistoricIdentityLinkLogQuery query = historyService.createHistoricIdentityLinkLogQuery(); assertEquals(query.type(IdentityLinkType.OWNER).count(), 2); }
@Deployment(resources = { "org/camunda/bpm/engine/test/api/runtime/oneTaskProcess.bpmn20.xml" }) public void testShouldAddTaskAssigneeForAddandDeleteIdentityLink() { // Pre test List<HistoricIdentityLinkLog> historicIdentityLinks = historyService.createHistoricIdentityLinkLogQuery().list(); assertEquals(historicIdentityLinks.size(), 0); // given startProcessInstance(PROCESS_DEFINITION_KEY); String taskId = taskService.createTaskQuery().singleResult().getId(); // if addAndDeleteUserWithAssigner(taskId, IdentityLinkType.ASSIGNEE); // then historicIdentityLinks = historyService.createHistoricIdentityLinkLogQuery().list(); assertEquals(historicIdentityLinks.size(), 2); // Basic Query test HistoricIdentityLinkLogQuery query = historyService.createHistoricIdentityLinkLogQuery(); assertEquals(query.type(IdentityLinkType.ASSIGNEE).count(), 2); }
@Deployment(resources = { "org/camunda/bpm/engine/test/api/runtime/oneTaskProcess.bpmn20.xml" }) public void testShouldAddGroupCandidateForAddAndDeleteIdentityLink() { List<HistoricIdentityLinkLog> historicIdentityLinks = historyService.createHistoricIdentityLinkLogQuery().list(); assertEquals(historicIdentityLinks.size(), 0); // given startProcessInstance(PROCESS_DEFINITION_KEY); String taskId = taskService.createTaskQuery().singleResult().getId(); // if identityService.setAuthenticatedUserId(A_ASSIGNER_ID); taskService.addCandidateGroup(taskId, A_GROUP_ID); taskService.deleteCandidateGroup(taskId, A_GROUP_ID); // then historicIdentityLinks = historyService.createHistoricIdentityLinkLogQuery().list(); assertEquals(historicIdentityLinks.size(), 2); // Basic Query test HistoricIdentityLinkLogQuery query = historyService.createHistoricIdentityLinkLogQuery(); assertEquals(query.groupId(A_GROUP_ID).count(), 2); }
@Test @Deployment(resources = { "org/camunda/bpm/engine/test/api/oneTaskProcess.bpmn20.xml" }) public void testCleanupHistoryTaskIdentityLink() { //given final List<String> ids = prepareHistoricProcesses(); List<Task> taskList = taskService.createTaskQuery().list(); taskService.addUserIdentityLink(taskList.get(0).getId(), "someUser", IdentityLinkType.ASSIGNEE); runtimeService.deleteProcessInstances(ids, null, true, true); //when historyService.deleteHistoricProcessInstancesBulk(ids); //then assertEquals(0, historyService.createHistoricProcessInstanceQuery().processDefinitionKey(ONE_TASK_PROCESS).count()); assertEquals(0, historyService.createHistoricIdentityLinkLogQuery().count()); }