@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); }
@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)); } } }
@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)); } } }
@Test public void testFirstResultMissing() { given().queryParam("maxResults", 13) .expect().statusCode(Status.OK.getStatusCode()) .when().get(USER_OPERATION_LOG_RESOURCE_URL); verify(queryMock).listPage(0, 13); }
@Test public void testMaxResultsMissing() { given().queryParam("firstResult", 7) .expect().statusCode(Status.OK.getStatusCode()) .when().get(USER_OPERATION_LOG_RESOURCE_URL); verify(queryMock).listPage(7, Integer.MAX_VALUE); }
@Test public void testPagination() { given() .queryParam("firstResult", 7) .queryParam("maxResults", 13) .expect().statusCode(Status.OK.getStatusCode()) .when().get(USER_OPERATION_LOG_RESOURCE_URL); verify(queryMock).listPage(7, 13); }
@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()); }
@Deployment(resources = {"org/camunda/bpm/engine/test/history/asyncTaskProcess.bpmn20.xml"}) public void testClearOverridingPriority() { // 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 clear that priority ClockUtil.setCurrentTime(new Date(System.currentTimeMillis() + 10000)); managementService.clearOverridingJobPriorityForJobDefinition(jobDefinition.getId()); // 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()); assertNull(userOperationLogEntry.getNewValue()); assertEquals("42", userOperationLogEntry.getOrgValue()); assertEquals(USER_ID, userOperationLogEntry.getUserId()); assertEquals(jobDefinition.getProcessDefinitionId(), userOperationLogEntry.getProcessDefinitionId()); assertEquals(jobDefinition.getProcessDefinitionKey(), userOperationLogEntry.getProcessDefinitionKey()); assertEquals(deploymentId, userOperationLogEntry.getDeploymentId()); }
@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)); } } }
@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()); }
@Deployment(resources = {"org/camunda/bpm/engine/test/history/asyncTaskProcess.bpmn20.xml"}) public void testClearOverridingPriority() { // 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 clear that priority ClockUtil.setCurrentTime(new Date(System.currentTimeMillis() + 10000)); managementService.clearOverridingJobPriorityForJobDefinition(jobDefinition.getId()); // 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()); assertNull(userOperationLogEntry.getNewValue()); assertEquals("42", userOperationLogEntry.getOrgValue()); assertEquals(USER_ID, userOperationLogEntry.getUserId()); assertEquals(jobDefinition.getProcessDefinitionId(), userOperationLogEntry.getProcessDefinitionId()); assertEquals(jobDefinition.getProcessDefinitionKey(), userOperationLogEntry.getProcessDefinitionKey()); assertEquals(deploymentId, userOperationLogEntry.getDeploymentId()); }