private void createCaseDefinitionMock() { List<CaseDefinition> caseDefinitions = new ArrayList<CaseDefinition>(); CaseDefinition mockCaseDefinition = MockProvider.createMockCaseDefinition(); caseDefinitions.add(mockCaseDefinition); CaseDefinitionQuery mockCaseDefinitionQuery = mock(CaseDefinitionQuery.class); when(mockCaseDefinitionQuery.list()).thenReturn(caseDefinitions); when(mockRepoService.createCaseDefinitionQuery()).thenReturn(mockCaseDefinitionQuery); }
private CaseDefinitionQuery createMockCaseDefinitionQuery(List<CaseDefinition> mockedDefinitions) { CaseDefinitionQuery sampleDefinitionsQuery = mock(CaseDefinitionQuery.class); when(sampleDefinitionsQuery.list()).thenReturn(mockedDefinitions); when(sampleDefinitionsQuery.count()).thenReturn((long) mockedDefinitions.size()); when(processEngine.getRepositoryService().createCaseDefinitionQuery()).thenReturn(sampleDefinitionsQuery); return sampleDefinitionsQuery; }
@Override public List<CaseDefinitionDto> getCaseDefinitions(UriInfo uriInfo, Integer firstResult, Integer maxResults) { CaseDefinitionQueryDto queryDto = new CaseDefinitionQueryDto(getObjectMapper(), uriInfo.getQueryParameters()); List<CaseDefinitionDto> definitions = new ArrayList<CaseDefinitionDto>(); ProcessEngine engine = getProcessEngine(); CaseDefinitionQuery query = queryDto.toQuery(engine); List<CaseDefinition> matchingDefinitions = null; if (firstResult != null || maxResults != null) { matchingDefinitions = executePaginatedQuery(query, firstResult, maxResults); } else { matchingDefinitions = query.list(); } for (CaseDefinition definition : matchingDefinitions) { CaseDefinitionDto def = CaseDefinitionDto.fromCaseDefinition(definition); definitions.add(def); } return definitions; }
@Override public List<CaseDefinitionDto> getCaseDefinitions(UriInfo uriInfo, Integer firstResult, Integer maxResults) { CaseDefinitionQueryDto queryDto = new CaseDefinitionQueryDto(getObjectMapper(), uriInfo.getQueryParameters()); List<CaseDefinitionDto> definitions = new ArrayList<CaseDefinitionDto>(); ProcessEngine engine = getProcessEngine(); CaseDefinitionQuery query = queryDto.toQuery(engine); List<CaseDefinition> matchingDefinitions = null; if (firstResult != null || maxResults != null) { matchingDefinitions = executePaginatedQuery(query, firstResult, maxResults); } else { matchingDefinitions = query.list(); } for (CaseDefinition definition : matchingDefinitions) { CaseDefinitionDto def = CaseDefinitionDto.fromCaseDefinition(definition); definitions.add(def); } return definitions; }
/** * @return the case definition ids */ protected List<String> getCaseDefinitionIds() { List<String> caseDefinitionIds = new ArrayList<String>(); List<CaseDefinition> caseDefinitions = repositoryService.createCaseDefinitionQuery().list(); for (CaseDefinition caseDefinition: caseDefinitions) { caseDefinitionIds.add(caseDefinition.getId()); } return caseDefinitionIds; }
private void setUpRuntimeData(CaseDefinition mockCaseDefinition) { repositoryServiceMock = mock(RepositoryService.class); when(processEngine.getRepositoryService()).thenReturn(repositoryServiceMock); when(repositoryServiceMock.getCaseDefinition(eq(MockProvider.EXAMPLE_CASE_DEFINITION_ID))).thenReturn(mockCaseDefinition); when(repositoryServiceMock.getCaseModel(eq(MockProvider.EXAMPLE_CASE_DEFINITION_ID))).thenReturn(createMockCaseDefinitionCmmnXml()); caseDefinitionQueryMock = mock(CaseDefinitionQuery.class); when(caseDefinitionQueryMock.caseDefinitionKey(MockProvider.EXAMPLE_CASE_DEFINITION_KEY)).thenReturn(caseDefinitionQueryMock); when(caseDefinitionQueryMock.tenantIdIn(anyString())).thenReturn(caseDefinitionQueryMock); when(caseDefinitionQueryMock.withoutTenantId()).thenReturn(caseDefinitionQueryMock); when(caseDefinitionQueryMock.latestVersion()).thenReturn(caseDefinitionQueryMock); when(caseDefinitionQueryMock.singleResult()).thenReturn(mockCaseDefinition); when(caseDefinitionQueryMock.list()).thenReturn(Collections.singletonList(mockCaseDefinition)); when(repositoryServiceMock.createCaseDefinitionQuery()).thenReturn(caseDefinitionQueryMock); }
private CaseDefinition findOnlyCaseDefinition() { List<CaseDefinition> caseDefinitions = repositoryService.createCaseDefinitionQuery().list(); assertNotNull(caseDefinitions); assertEquals(1, caseDefinitions.size()); return caseDefinitions.get(0); }
public void testQuerySortingDesc() { // exclude definitions without tenant id because of database-specific ordering List<CaseDefinition> caseDefinitions = repositoryService .createCaseDefinitionQuery() .tenantIdIn(TENANT_ONE, TENANT_TWO) .orderByTenantId() .desc() .list(); assertThat(caseDefinitions.size(), is(2)); assertThat(caseDefinitions.get(0).getTenantId(), is(TENANT_TWO)); assertThat(caseDefinitions.get(1).getTenantId(), is(TENANT_ONE)); }
public void testQuerySortingAsc() { // exclude definitions without tenant id because of database-specific ordering List<CaseDefinition> caseDefinitions = repositoryService .createCaseDefinitionQuery() .tenantIdIn(TENANT_ONE, TENANT_TWO) .orderByTenantId() .asc() .list(); assertThat(caseDefinitions.size(), is(2)); assertThat(caseDefinitions.get(0).getTenantId(), is(TENANT_ONE)); assertThat(caseDefinitions.get(1).getTenantId(), is(TENANT_TWO)); }
@Test public void testNonExistingCaseDefinitionRetrieval_ByKey() { String nonExistingKey = "aNonExistingDefinitionKey"; when(repositoryServiceMock.createCaseDefinitionQuery().caseDefinitionKey(nonExistingKey)).thenReturn(caseDefinitionQueryMock); when(caseDefinitionQueryMock.latestVersion()).thenReturn(caseDefinitionQueryMock); when(caseDefinitionQueryMock.singleResult()).thenReturn(null); when(caseDefinitionQueryMock.list()).thenReturn(Collections.<CaseDefinition> emptyList()); given() .pathParam("key", nonExistingKey) .then() .expect() .statusCode(Status.NOT_FOUND.getStatusCode()).contentType(ContentType.JSON) .body("type", is(RestException.class.getSimpleName())) .body("message", containsString("No matching case definition with key: " + nonExistingKey)) .when() .get(SINGLE_CASE_DEFINITION_BY_KEY_URL); }
@Test public void testCaseDefinitionRetrievalByEmptyList() { given() .queryParam("caseDefinitionIdIn", "") .then().expect() .statusCode(Status.OK.getStatusCode()) .when() .get(CASE_DEFINITION_QUERY_URL); // assert query invocation InOrder inOrder = Mockito.inOrder(mockedQuery); inOrder.verify(mockedQuery, never()).caseDefinitionIdIn(Matchers.<String[]>anyVararg()); inOrder.verify(mockedQuery).list(); }
@Test public void testEmptyQuery() { given() .then() .expect() .statusCode(Status.OK.getStatusCode()) .when() .get(CASE_DEFINITION_QUERY_URL); verify(mockedQuery).list(); }
public void testQueryByLatestNoTenantIdSet() { // deploy a second version for tenant one deploymentForTenant(TENANT_ONE, CMMN); CaseDefinitionQuery query = repositoryService .createCaseDefinitionQuery() .caseDefinitionKey(CASE_DEFINITION_KEY) .latestVersion(); // one definition for each tenant assertThat(query.count(), is(3L)); Map<String, CaseDefinition> caseDefinitionsForTenant = getCaseDefinitionsForTenant(query.list()); assertThat(caseDefinitionsForTenant.get(TENANT_ONE).getVersion(), is(2)); assertThat(caseDefinitionsForTenant.get(TENANT_TWO).getVersion(), is(1)); assertThat(caseDefinitionsForTenant.get(null).getVersion(), is(1)); }
public void testQueryByLatestWithTenantIds() { // deploy a second version for tenant one deploymentForTenant(TENANT_ONE, CMMN); CaseDefinitionQuery query = repositoryService .createCaseDefinitionQuery() .caseDefinitionKey(CASE_DEFINITION_KEY) .latestVersion() .tenantIdIn(TENANT_ONE, TENANT_TWO); // one definition for each tenant assertThat(query.count(), is(2L)); Map<String, CaseDefinition> caseDefinitionsForTenant = getCaseDefinitionsForTenant(query.list()); assertThat(caseDefinitionsForTenant.get(TENANT_ONE).getVersion(), is(2)); assertThat(caseDefinitionsForTenant.get(TENANT_TWO).getVersion(), is(1)); }
private void removeHistoryTimeToLive() { List<ProcessDefinition> processDefinitions = repositoryService.createProcessDefinitionQuery().processDefinitionKey(ONE_TASK_PROCESS).list(); assertEquals(1, processDefinitions.size()); repositoryService.updateProcessDefinitionHistoryTimeToLive(processDefinitions.get(0).getId(), null); final List<DecisionDefinition> decisionDefinitions = repositoryService.createDecisionDefinitionQuery().decisionDefinitionKey(DECISION).list(); assertEquals(1, decisionDefinitions.size()); repositoryService.updateDecisionDefinitionHistoryTimeToLive(decisionDefinitions.get(0).getId(), null); final List<CaseDefinition> caseDefinitions = repositoryService.createCaseDefinitionQuery().caseDefinitionKey(ONE_TASK_CASE).list(); assertEquals(1, caseDefinitions.size()); repositoryService.updateCaseDefinitionHistoryTimeToLive(caseDefinitions.get(0).getId(), null); }
public void testQueryByLatestWithTenantIdsIncludeDefinitionsWithoutTenantId() { // deploy a second version without tenant id deployment(CMMN); // deploy a third version for tenant one deploymentForTenant(TENANT_ONE, CMMN); deploymentForTenant(TENANT_ONE, CMMN); CaseDefinitionQuery query = repositoryService .createCaseDefinitionQuery() .caseDefinitionKey(CASE_DEFINITION_KEY) .latestVersion() .tenantIdIn(TENANT_ONE, TENANT_TWO) .includeCaseDefinitionsWithoutTenantId(); assertThat(query.count(), is(3L)); Map<String, CaseDefinition> caseDefinitionsForTenant = getCaseDefinitionsForTenant(query.list()); assertThat(caseDefinitionsForTenant.get(TENANT_ONE).getVersion(), is(3)); assertThat(caseDefinitionsForTenant.get(TENANT_TWO).getVersion(), is(1)); assertThat(caseDefinitionsForTenant.get(null).getVersion(), is(2)); }
@Test public void testReportCompact() { // given List<CaseDefinition> caseDefinitions = repositoryService.createCaseDefinitionQuery().caseDefinitionKey(CASE_DEFINITION_KEY).list(); assertEquals(1, caseDefinitions.size()); List<CleanableHistoricCaseInstanceReportResult> resultWithZeros = historyService.createCleanableHistoricCaseInstanceReport().list(); assertEquals(1, resultWithZeros.size()); assertEquals(0, resultWithZeros.get(0).getFinishedCaseInstanceCount()); // when long resultCountWithoutZeros = historyService.createCleanableHistoricCaseInstanceReport().compact().count(); // then assertEquals(0, resultCountWithoutZeros); }
@Test public void getPreviousCaseDefinitionWithTenantId() { testRule.deployForTenant(TENANT_ONE, CMMN); testRule.deployForTenant(TENANT_ONE, CMMN); testRule.deployForTenant(TENANT_ONE, CMMN); testRule.deployForTenant(TENANT_TWO, CMMN); testRule.deployForTenant(TENANT_TWO, CMMN); List<CaseDefinition> latestCaseDefinitions = repositoryService.createCaseDefinitionQuery() .latestVersion() .orderByTenantId() .asc() .list(); CaseDefinitionEntity previousDefinitionTenantOne = getPreviousDefinition((CaseDefinitionEntity) latestCaseDefinitions.get(0)); CaseDefinitionEntity previousDefinitionTenantTwo = getPreviousDefinition((CaseDefinitionEntity) latestCaseDefinitions.get(1)); assertThat(previousDefinitionTenantOne.getVersion(), is(2)); assertThat(previousDefinitionTenantOne.getTenantId(), is(TENANT_ONE)); assertThat(previousDefinitionTenantTwo.getVersion(), is(1)); assertThat(previousDefinitionTenantTwo.getTenantId(), is(TENANT_TWO)); }
private void prepareCaseInstances(String key, int daysInThePast, Integer historyTimeToLive, int instanceCount) { // update time to live List<CaseDefinition> caseDefinitions = repositoryService.createCaseDefinitionQuery().caseDefinitionKey(key).list(); assertEquals(1, caseDefinitions.size()); repositoryService.updateCaseDefinitionHistoryTimeToLive(caseDefinitions.get(0).getId(), historyTimeToLive); Date oldCurrentTime = ClockUtil.getCurrentTime(); ClockUtil.setCurrentTime(DateUtils.addDays(oldCurrentTime, daysInThePast)); for (int i = 0; i < instanceCount; i++) { CaseInstance caseInstance = caseService.createCaseInstanceByKey(key); caseService.terminateCaseExecution(caseInstance.getId()); caseService.closeCaseInstance(caseInstance.getId()); } ClockUtil.setCurrentTime(oldCurrentTime); }
@Test public void testCaseDefinitionWithoutTenantId() { Response response = given() .queryParam("withoutTenantId", true) .then().expect() .statusCode(Status.OK.getStatusCode()) .when() .get(CASE_DEFINITION_QUERY_URL); verify(mockedQuery).withoutTenantId(); verify(mockedQuery).list(); String content = response.asString(); List<String> definitions = from(content).getList(""); assertThat(definitions).hasSize(1); String returnedTenantId1 = from(content).getString("[0].tenantId"); assertThat(returnedTenantId1).isEqualTo(null); }