protected void setUpRuntimeData(DecisionRequirementsDefinition mockDecisionRequirementsDefinition) throws FileNotFoundException, URISyntaxException { repositoryServiceMock = mock(RepositoryService.class); when(processEngine.getRepositoryService()).thenReturn(repositoryServiceMock); when(repositoryServiceMock.getDecisionRequirementsDefinition(eq(MockProvider.EXAMPLE_DECISION_REQUIREMENTS_DEFINITION_ID))).thenReturn(mockDecisionRequirementsDefinition); when(repositoryServiceMock.getDecisionRequirementsModel(eq(MockProvider.EXAMPLE_DECISION_REQUIREMENTS_DEFINITION_ID))).thenReturn(createMockDecisionRequirementsDefinitionDmnXml()); when(repositoryServiceMock.getDecisionRequirementsDiagram(MockProvider.EXAMPLE_DECISION_REQUIREMENTS_DEFINITION_ID)).thenReturn(createMockDecisionRequirementsDiagram()); decisionRequirementsDefinitionQueryMock = mock(DecisionRequirementsDefinitionQuery.class); when(decisionRequirementsDefinitionQueryMock.decisionRequirementsDefinitionKey(MockProvider.EXAMPLE_DECISION_REQUIREMENTS_DEFINITION_KEY)).thenReturn(decisionRequirementsDefinitionQueryMock); when(decisionRequirementsDefinitionQueryMock.tenantIdIn(anyString())).thenReturn(decisionRequirementsDefinitionQueryMock); when(decisionRequirementsDefinitionQueryMock.withoutTenantId()).thenReturn(decisionRequirementsDefinitionQueryMock); when(decisionRequirementsDefinitionQueryMock.latestVersion()).thenReturn(decisionRequirementsDefinitionQueryMock); when(decisionRequirementsDefinitionQueryMock.singleResult()).thenReturn(mockDecisionRequirementsDefinition); when(decisionRequirementsDefinitionQueryMock.list()).thenReturn(Collections.singletonList(mockDecisionRequirementsDefinition)); when(repositoryServiceMock.createDecisionRequirementsDefinitionQuery()).thenReturn(decisionRequirementsDefinitionQueryMock); }
@Override public DecisionRequirementsDefinitionResource getDecisionRequirementsDefinitionByKey(String decisionRequirementsDefinitionKey) { DecisionRequirementsDefinition decisionRequirementsDefinition = getProcessEngine().getRepositoryService() .createDecisionRequirementsDefinitionQuery() .decisionRequirementsDefinitionKey(decisionRequirementsDefinitionKey) .withoutTenantId().latestVersion().singleResult(); if (decisionRequirementsDefinition == null) { String errorMessage = String.format("No matching decision requirements definition with key: %s and no tenant-id", decisionRequirementsDefinitionKey); throw new RestException(Status.NOT_FOUND, errorMessage); } else { return getDecisionRequirementsDefinitionById(decisionRequirementsDefinition.getId()); } }
@Override public DecisionRequirementsDefinitionResource getDecisionRequirementsDefinitionByKey(String decisionRequirementsDefinitionKey) { DecisionRequirementsDefinition decisionRequirementsDefinition = getProcessEngine().getRepositoryService() .createDecisionRequirementsDefinitionQuery() .decisionRequirementsDefinitionKey(decisionRequirementsDefinitionKey) .withoutTenantId().latestVersion().singleResult(); if (decisionRequirementsDefinition == null) { String errorMessage = String.format("No matching decision requirements definition with key: %s and no tenant-id", decisionRequirementsDefinitionKey); throw new RestException(Status.NOT_FOUND, errorMessage); } else { return getDecisionRequirementsDefinitionById(decisionRequirementsDefinition.getId()); } }
@Test public void queryByDefinitionsWithoutTenantId() { DecisionRequirementsDefinitionQuery query = repositoryService .createDecisionRequirementsDefinitionQuery() .withoutTenantId(); assertThat(query.count(), is(1L)); }
@Test public void queryAuthenticatedTenants() { identityService.setAuthentication("user", null, Arrays.asList(TENANT_ONE, TENANT_TWO)); DecisionRequirementsDefinitionQuery query = repositoryService.createDecisionRequirementsDefinitionQuery(); assertThat(query.count(), is(3L)); assertThat(query.tenantIdIn(TENANT_ONE).count(), is(1L)); assertThat(query.tenantIdIn(TENANT_TWO).count(), is(1L)); assertThat(query.withoutTenantId().count(), is(1L)); }
@Test public void queryByLatestWithoutTenantId() { // deploy a second version without tenant id testRule.deploy(DMN); DecisionRequirementsDefinitionQuery query = repositoryService .createDecisionRequirementsDefinitionQuery() .decisionRequirementsDefinitionKey(DECISION_REQUIREMENTS_DEFINITION_KEY) .latestVersion() .withoutTenantId(); assertThat(query.count(), is(1L)); DecisionRequirementsDefinition DecisionRequirementsDefinition = query.singleResult(); assertThat(DecisionRequirementsDefinition.getTenantId(), is(nullValue())); assertThat(DecisionRequirementsDefinition.getVersion(), is(2)); }
@Test public void queryByKey() { DecisionRequirementsDefinitionQuery query = repositoryService .createDecisionRequirementsDefinitionQuery() .decisionRequirementsDefinitionKey(DECISION_REQUIREMENTS_DEFINITION_KEY); // one definition for each tenant assertThat(query.count(), is(3L)); query = repositoryService .createDecisionRequirementsDefinitionQuery() .decisionRequirementsDefinitionKey(DECISION_REQUIREMENTS_DEFINITION_KEY) .withoutTenantId(); // one definition without tenant id assertThat(query.count(), is(1L)); query = repositoryService .createDecisionRequirementsDefinitionQuery() .decisionRequirementsDefinitionKey(DECISION_REQUIREMENTS_DEFINITION_KEY) .tenantIdIn(TENANT_ONE); // one definition for tenant one assertThat(query.count(), is(1L)); }
@Test public void testDecisionRequirementsDefinitionWithoutTenantId() { Response response = given() .queryParam("withoutTenantId", true) .then().expect() .statusCode(Status.OK.getStatusCode()) .when() .get(DECISION_REQUIREMENTS_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); }
@Override public DecisionRequirementsDefinitionResource getDecisionRequirementsDefinitionByKey(String decisionRequirementsDefinitionKey) { DecisionRequirementsDefinition decisionRequirementsDefinition = getProcessEngine().getRepositoryService() .createDecisionRequirementsDefinitionQuery() .decisionRequirementsDefinitionKey(decisionRequirementsDefinitionKey) .withoutTenantId().latestVersion().singleResult(); if (decisionRequirementsDefinition == null) { String errorMessage = String.format("No matching decision requirements definition with key: %s and no tenant-id", decisionRequirementsDefinitionKey); throw new RestException(Status.NOT_FOUND, errorMessage); } else { return getDecisionRequirementsDefinitionById(decisionRequirementsDefinition.getId()); } }
@Test public void queryByDefinitionsWithoutTenantId() { DecisionRequirementsDefinitionQuery query = repositoryService .createDecisionRequirementsDefinitionQuery() .withoutTenantId(); assertThat(query.count(), is(1L)); }
@Test public void queryAuthenticatedTenants() { identityService.setAuthentication("user", null, Arrays.asList(TENANT_ONE, TENANT_TWO)); DecisionRequirementsDefinitionQuery query = repositoryService.createDecisionRequirementsDefinitionQuery(); assertThat(query.count(), is(3L)); assertThat(query.tenantIdIn(TENANT_ONE).count(), is(1L)); assertThat(query.tenantIdIn(TENANT_TWO).count(), is(1L)); assertThat(query.withoutTenantId().count(), is(1L)); }
@Test public void queryByLatestWithoutTenantId() { // deploy a second version without tenant id testRule.deploy(DMN); DecisionRequirementsDefinitionQuery query = repositoryService .createDecisionRequirementsDefinitionQuery() .decisionRequirementsDefinitionKey(DECISION_REQUIREMENTS_DEFINITION_KEY) .latestVersion() .withoutTenantId(); assertThat(query.count(), is(1L)); DecisionRequirementsDefinition DecisionRequirementsDefinition = query.singleResult(); assertThat(DecisionRequirementsDefinition.getTenantId(), is(nullValue())); assertThat(DecisionRequirementsDefinition.getVersion(), is(2)); }
@Test public void queryByKey() { DecisionRequirementsDefinitionQuery query = repositoryService .createDecisionRequirementsDefinitionQuery() .decisionRequirementsDefinitionKey(DECISION_REQUIREMENTS_DEFINITION_KEY); // one definition for each tenant assertThat(query.count(), is(3L)); query = repositoryService .createDecisionRequirementsDefinitionQuery() .decisionRequirementsDefinitionKey(DECISION_REQUIREMENTS_DEFINITION_KEY) .withoutTenantId(); // one definition without tenant id assertThat(query.count(), is(1L)); query = repositoryService .createDecisionRequirementsDefinitionQuery() .decisionRequirementsDefinitionKey(DECISION_REQUIREMENTS_DEFINITION_KEY) .tenantIdIn(TENANT_ONE); // one definition for tenant one assertThat(query.count(), is(1L)); }