@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); }
@Override protected void applyFilters(HistoricIdentityLinkLogQuery query) { if (dateBefore != null) { query.dateBefore(dateBefore); query.dateAfter(dateAfter); query.type(type); query.userId(userId); query.groupId(groupId); query.taskId(taskId); query.processDefinitionId(processDefinitionId); query.processDefinitionKey(processDefinitionKey); query.operationType(operationType); query.assignerId(assignerId); query.tenantIdIn(tenantIds.toArray(new String[tenantIds.size()]));
private List<HistoricIdentityLinkLog> executePaginatedQuery(HistoricIdentityLinkLogQuery query, Integer firstResult, Integer maxResults) { if (firstResult == null) { firstResult = 0; } if (maxResults == null) { maxResults = Integer.MAX_VALUE; } return query.listPage(firstResult, maxResults); }
@Override protected void applySortBy(HistoricIdentityLinkLogQuery query, String sortBy, Map<String, Object> parameters, ProcessEngine engine) { if (sortBy.equals(SORT_BY_TIME)) { query.orderByTime(); } else if (sortBy.equals(SORT_BY_TYPE)) { query.orderByType(); } else if (sortBy.equals(SORT_BY_USER_ID)) { query.orderByUserId(); } else if (sortBy.equals(SORT_BY_GROUP_ID)) { query.orderByGroupId(); } else if (sortBy.equals(SORT_BY_TASK_ID)) { query.orderByTaskId(); } else if (sortBy.equals(SORT_BY_OPERATION_TYPE)) { query.orderByOperationType(); } else if (sortBy.equals(SORT_BY_ASSIGNER_ID)) { query.orderByAssignerId(); } else if (sortBy.equals(SORT_BY_PROCESS_DEFINITION_ID)) { query.orderByProcessDefinitionId(); } else if (sortBy.equals(SORT_BY_PROCESS_DEFINITION_KEY)) { query.orderByProcessDefinitionKey(); } else if (sortBy.equals(SORT_BY_TENANT_ID)) { query.orderByTenantId(); } } }
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; }
List<HistoricIdentityLinkLog> historicIdentityLinks = historyService.createHistoricIdentityLinkLogQuery().list(); assertEquals(historicIdentityLinks.size(), 0); startProcessInstance(PROCESS_DEFINITION_KEY_MULTIPLE_CANDIDATE_USER); assertEquals(4, historyService.createHistoricIdentityLinkLogQuery().orderByAssignerId().asc().list().size()); assertEquals(4, historyService.createHistoricIdentityLinkLogQuery().orderByTime().asc().list().size()); assertEquals(4, historyService.createHistoricIdentityLinkLogQuery().orderByGroupId().asc().list().size()); assertEquals(4, historyService.createHistoricIdentityLinkLogQuery().orderByType().asc().list().size()); assertEquals(4, historyService.createHistoricIdentityLinkLogQuery().orderByOperationType().asc().list().size()); assertEquals(4, historyService.createHistoricIdentityLinkLogQuery().orderByProcessDefinitionId().asc().list().size()); assertEquals(4, historyService.createHistoricIdentityLinkLogQuery().orderByProcessDefinitionKey().asc().list().size()); assertEquals(4, historyService.createHistoricIdentityLinkLogQuery().orderByTaskId().asc().list().size()); assertEquals(4, historyService.createHistoricIdentityLinkLogQuery().orderByUserId().asc().list().size()); assertEquals(4, historyService.createHistoricIdentityLinkLogQuery().orderByTenantId().asc().list().size()); assertEquals("aUser", historyService.createHistoricIdentityLinkLogQuery().orderByUserId().asc().list().get(0).getUserId()); assertEquals("dUser", historyService.createHistoricIdentityLinkLogQuery().orderByUserId().asc().list().get(3).getUserId()); assertEquals(4, historyService.createHistoricIdentityLinkLogQuery().orderByAssignerId().desc().list().size()); assertEquals(4, historyService.createHistoricIdentityLinkLogQuery().orderByTime().desc().list().size()); assertEquals(4, historyService.createHistoricIdentityLinkLogQuery().orderByGroupId().desc().list().size()); assertEquals(4, historyService.createHistoricIdentityLinkLogQuery().orderByType().desc().list().size()); assertEquals(4, historyService.createHistoricIdentityLinkLogQuery().orderByOperationType().desc().list().size()); assertEquals(4, historyService.createHistoricIdentityLinkLogQuery().orderByProcessDefinitionId().desc().list().size()); assertEquals(4, historyService.createHistoricIdentityLinkLogQuery().orderByProcessDefinitionKey().desc().list().size()); assertEquals(4, historyService.createHistoricIdentityLinkLogQuery().orderByTaskId().desc().list().size()); assertEquals(4, historyService.createHistoricIdentityLinkLogQuery().orderByUserId().desc().list().size()); assertEquals(4, historyService.createHistoricIdentityLinkLogQuery().orderByTenantId().desc().list().size()); assertEquals("dUser", historyService.createHistoricIdentityLinkLogQuery().orderByUserId().desc().list().get(0).getUserId()); assertEquals("aUser", historyService.createHistoricIdentityLinkLogQuery().orderByUserId().desc().list().get(3).getUserId());
@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); }
List<HistoricIdentityLinkLog> historicIdentityLinks = historyService.createHistoricIdentityLinkLogQuery().list(); assertEquals(historicIdentityLinks.size(), 1); assertEquals(query.processDefinitionId(latestProcessDef.getId()).count(), 1); assertEquals(query.operationType(IDENTITY_LINK_ADD).count(), 1); assertEquals(query.groupId(GROUP_1).count(), 1); assertEquals(query.processDefinitionId(latestProcessDef.getId()).count(), 2); assertEquals(query.processDefinitionKey(latestProcessDef.getKey()).count(), 2); assertEquals(query.operationType(IDENTITY_LINK_ADD).count(), 2); assertEquals(query.userId(USER_1).count(), 1); assertEquals(query.processDefinitionId(latestProcessDef.getId()).count(), 3); assertEquals(query.processDefinitionKey(latestProcessDef.getKey()).count(), 3); assertEquals(query.groupId(GROUP_1).count(), 2); assertEquals(query.operationType(IDENTITY_LINK_DELETE).count(), 1); assertEquals(query.processDefinitionId(latestProcessDef.getId()).count(), 4); assertEquals(query.processDefinitionKey(latestProcessDef.getKey()).count(), 4); assertEquals(query.userId(USER_1).count(), 2); query = historyService.createHistoricIdentityLinkLogQuery(); assertEquals(query.operationType(IDENTITY_LINK_DELETE).count(), 2);
@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/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 testShouldAddIdentityLinkByProcessDefinitionAndStandalone() { String taskAssigneeId = "Assigneee"; // Pre test List<HistoricIdentityLinkLog> historicIdentityLinks = historyService.createHistoricIdentityLinkLogQuery().list(); assertEquals(historicIdentityLinks.size(), 0); ProcessInstance processInstance = startProcessInstance(PROCESS_DEFINITION_KEY); String taskId = taskService.createTaskQuery().singleResult().getId(); // given Task taskAssignee = taskService.newTask(taskAssigneeId); taskAssignee.setAssignee(USER_1); taskService.saveTask(taskAssignee); // if addAndDeleteUserWithAssigner(taskId, IdentityLinkType.ASSIGNEE); // then historicIdentityLinks = historyService.createHistoricIdentityLinkLogQuery().list(); assertEquals(historicIdentityLinks.size(), 3); // Basic Query test HistoricIdentityLinkLogQuery query = historyService.createHistoricIdentityLinkLogQuery(); assertEquals(query.type(IdentityLinkType.ASSIGNEE).count(), 3); query = historyService.createHistoricIdentityLinkLogQuery(); assertEquals(query.processDefinitionId(processInstance.getProcessDefinitionId()).count(), 2); assertEquals(query.processDefinitionKey(PROCESS_DEFINITION_KEY).count(), 2); taskService.deleteTask(taskAssigneeId, true); }
public void testShouldAddTaskOwnerForAddandDeleteIdentityLinkByTimeStamp() { List<HistoricIdentityLinkLog> historicIdentityLinks = historyService.createHistoricIdentityLinkLogQuery().list(); assertEquals(historicIdentityLinks.size(), 0); assertEquals(query.dateBefore(newYearNoon(20)).count(), 6); assertEquals(query.operationType(IDENTITY_LINK_ADD).count(), 3); assertEquals(query.operationType(IDENTITY_LINK_DELETE).count(), 3); assertEquals(query.dateBefore(newYearNoon(0)).count(), 6); assertEquals(query.dateAfter(newYearMorning(1)).count(), 1); assertEquals(query.operationType(IDENTITY_LINK_ADD).count(), 0); assertEquals(query.operationType(IDENTITY_LINK_DELETE).count(), 1); assertEquals(query.dateAfter(newYearNoon(45)).count(), 1); assertEquals(query.operationType(IDENTITY_LINK_ADD).count(), 0); assertEquals(query.operationType(IDENTITY_LINK_DELETE).count(), 1);
@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); }
@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); }
@Override public List<HistoricIdentityLinkLogDto> getHistoricIdentityLinks(UriInfo uriInfo, Integer firstResult, Integer maxResults) { HistoricIdentityLinkLogQueryDto queryDto = new HistoricIdentityLinkLogQueryDto(objectMapper, uriInfo.getQueryParameters()); HistoricIdentityLinkLogQuery query = queryDto.toQuery(processEngine); List<HistoricIdentityLinkLog> queryResult; if (firstResult != null || maxResults != null) { queryResult = executePaginatedQuery(query, firstResult, maxResults); } else { queryResult = query.list(); } List<HistoricIdentityLinkLogDto> result = new ArrayList<HistoricIdentityLinkLogDto>(); for (HistoricIdentityLinkLog historicIdentityLink : queryResult) { HistoricIdentityLinkLogDto dto = HistoricIdentityLinkLogDto.fromHistoricIdentityLink(historicIdentityLink); result.add(dto); } return result; }
.list(); assertEquals(query.tenantIdIn(TENANT_1).count(), 4); query = historyService.createHistoricIdentityLinkLogQuery(); assertEquals(query.tenantIdIn(TENANT_2).count(), 4);
@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); }
@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); }
@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) {
@Test public void testQueryByTenantIds() { mockedQuery = setUpMockHistoricIdentityLinkQuery(Arrays.asList( MockProvider.createMockHistoricIdentityLink(MockProvider.EXAMPLE_TENANT_ID), MockProvider.createMockHistoricIdentityLink(MockProvider.ANOTHER_EXAMPLE_TENANT_ID))); Response response = given() .queryParam("tenantIdIn", MockProvider.EXAMPLE_TENANT_ID_LIST) .then().expect() .statusCode(Status.OK.getStatusCode()) .when() .get(HISTORY_IDENTITY_LINK_QUERY_URL); verify(mockedQuery).tenantIdIn(MockProvider.EXAMPLE_TENANT_ID, MockProvider.ANOTHER_EXAMPLE_TENANT_ID); verify(mockedQuery).list(); String content = response.asString(); List<String> executions = from(content).getList(""); assertThat(executions).hasSize(2); String returnedTenantId1 = from(content).getString("[0].tenantId"); String returnedTenantId2 = from(content).getString("[1].tenantId"); assertThat(returnedTenantId1).isEqualTo(MockProvider.EXAMPLE_TENANT_ID); assertThat(returnedTenantId2).isEqualTo(MockProvider.ANOTHER_EXAMPLE_TENANT_ID); }