public DecisionRequirementsDefinition build() { DecisionRequirementsDefinition mockDefinition = mock(DecisionRequirementsDefinition.class); when(mockDefinition.getId()).thenReturn(id); when(mockDefinition.getCategory()).thenReturn(category); when(mockDefinition.getName()).thenReturn(name); when(mockDefinition.getKey()).thenReturn(key); when(mockDefinition.getVersion()).thenReturn(version); when(mockDefinition.getResourceName()).thenReturn(resource); when(mockDefinition.getDiagramResourceName()).thenReturn(diagramResource); when(mockDefinition.getDeploymentId()).thenReturn(deploymentId); when(mockDefinition.getTenantId()).thenReturn(tenantId); return mockDefinition; }
@Test public void orderByDecisionRequirementsDefinitionVersion() { List<DecisionRequirementsDefinition> decisionRequirementsDefinitions = repositoryService.createDecisionRequirementsDefinitionQuery() .orderByDecisionRequirementsDefinitionVersion().asc().list(); assertThat(decisionRequirementsDefinitions.size(), is(4)); assertThat(decisionRequirementsDefinitions.get(0).getVersion(), is(1)); assertThat(decisionRequirementsDefinitions.get(1).getVersion(), is(1)); assertThat(decisionRequirementsDefinitions.get(2).getVersion(), is(1)); assertThat(decisionRequirementsDefinitions.get(3).getVersion(), is(2)); decisionRequirementsDefinitions = repositoryService.createDecisionRequirementsDefinitionQuery() .orderByDecisionRequirementsDefinitionVersion().desc().list(); assertThat(decisionRequirementsDefinitions.get(0).getVersion(), is(2)); assertThat(decisionRequirementsDefinitions.get(1).getVersion(), is(1)); assertThat(decisionRequirementsDefinitions.get(2).getVersion(), is(1)); }
@Test public void queryByLatestNoTenantIdSet() { // deploy a second version for tenant one testRule.deployForTenant(TENANT_ONE, DMN); DecisionRequirementsDefinitionQuery query = repositoryService .createDecisionRequirementsDefinitionQuery() .decisionRequirementsDefinitionKey(DECISION_REQUIREMENTS_DEFINITION_KEY) .latestVersion(); // one definition for each tenant assertThat(query.count(), is(3L)); Map<String, DecisionRequirementsDefinition> definitionsForTenant = getDecisionRequirementsDefinitionsForTenant(query.list()); assertThat(definitionsForTenant.get(TENANT_ONE).getVersion(), is(2)); assertThat(definitionsForTenant.get(TENANT_TWO).getVersion(), is(1)); assertThat(definitionsForTenant.get(null).getVersion(), is(1)); }
public static DecisionRequirementsDefinitionDto fromDecisionRequirementsDefinition(DecisionRequirementsDefinition definition) { DecisionRequirementsDefinitionDto dto = new DecisionRequirementsDefinitionDto(); dto.id = definition.getId(); dto.key = definition.getKey(); dto.category = definition.getCategory(); dto.name = definition.getName(); dto.version = definition.getVersion(); dto.resource = definition.getResourceName(); dto.deploymentId = definition.getDeploymentId(); dto.tenantId = definition.getTenantId(); return dto; }
public static DecisionRequirementsDefinitionDto fromDecisionRequirementsDefinition(DecisionRequirementsDefinition definition) { DecisionRequirementsDefinitionDto dto = new DecisionRequirementsDefinitionDto(); dto.id = definition.getId(); dto.key = definition.getKey(); dto.category = definition.getCategory(); dto.name = definition.getName(); dto.version = definition.getVersion(); dto.resource = definition.getResourceName(); dto.deploymentId = definition.getDeploymentId(); dto.tenantId = definition.getTenantId(); return dto; }
@Test public void queryByLatestWithTenantIdsIncludeDefinitionsWithoutTenantId() { // deploy a second version without tenant id testRule.deploy(DMN); // deploy a third version for tenant one testRule.deployForTenant(TENANT_ONE, DMN); testRule.deployForTenant(TENANT_ONE, DMN); DecisionRequirementsDefinitionQuery query = repositoryService .createDecisionRequirementsDefinitionQuery() .decisionRequirementsDefinitionKey(DECISION_REQUIREMENTS_DEFINITION_KEY) .latestVersion() .tenantIdIn(TENANT_ONE, TENANT_TWO) .includeDecisionRequirementsDefinitionsWithoutTenantId(); assertThat(query.count(), is(3L)); Map<String, DecisionRequirementsDefinition> definitionsForTenant = getDecisionRequirementsDefinitionsForTenant(query.list()); assertThat(definitionsForTenant.get(TENANT_ONE).getVersion(), is(3)); assertThat(definitionsForTenant.get(TENANT_TWO).getVersion(), is(1)); assertThat(definitionsForTenant.get(null).getVersion(), is(2)); }
@Test public void queryByLatestWithTenantIds() { // deploy a second version for tenant one testRule.deployForTenant(TENANT_ONE, DMN); DecisionRequirementsDefinitionQuery query = repositoryService .createDecisionRequirementsDefinitionQuery() .decisionRequirementsDefinitionKey(DECISION_REQUIREMENTS_DEFINITION_KEY) .latestVersion() .tenantIdIn(TENANT_ONE, TENANT_TWO) .orderByTenantId() .asc(); // one definition for each tenant assertThat(query.count(), is(2L)); Map<String, DecisionRequirementsDefinition> definitionsForTenant = getDecisionRequirementsDefinitionsForTenant(query.list()); assertThat(definitionsForTenant.get(TENANT_ONE).getVersion(), is(2)); assertThat(definitionsForTenant.get(TENANT_TWO).getVersion(), is(1)); }
@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 queryByLatestWithTenantId() { // deploy a second version for tenant one testRule.deployForTenant(TENANT_ONE, DMN); DecisionRequirementsDefinitionQuery query = repositoryService .createDecisionRequirementsDefinitionQuery() .decisionRequirementsDefinitionKey(DECISION_REQUIREMENTS_DEFINITION_KEY) .latestVersion() .tenantIdIn(TENANT_ONE); assertThat(query.count(), is(1L)); DecisionRequirementsDefinition DecisionRequirementsDefinition = query.singleResult(); assertThat(DecisionRequirementsDefinition.getTenantId(), is(TENANT_ONE)); assertThat(DecisionRequirementsDefinition.getVersion(), is(2)); query = repositoryService .createDecisionRequirementsDefinitionQuery() .decisionRequirementsDefinitionKey(DECISION_REQUIREMENTS_DEFINITION_KEY) .latestVersion() .tenantIdIn(TENANT_TWO); assertThat(query.count(), is(1L)); DecisionRequirementsDefinition = query.singleResult(); assertThat(DecisionRequirementsDefinition.getTenantId(), is(TENANT_TWO)); assertThat(DecisionRequirementsDefinition.getVersion(), is(1)); }
@Test public void deployDecisionIndependentFromDrd() { String deploymentIdDecision = testRule.deploy(DMN_SCORE_RESOURCE).getId(); String deploymentIdDrd = testRule.deploy(DRD_SCORE_RESOURCE).getId(); // there should be one decision requirements definition DecisionRequirementsDefinitionQuery query = repositoryService.createDecisionRequirementsDefinitionQuery(); assertEquals(1, query.count()); DecisionRequirementsDefinition decisionRequirementsDefinition = query.singleResult(); assertEquals(1, decisionRequirementsDefinition.getVersion()); assertEquals(deploymentIdDrd, decisionRequirementsDefinition.getDeploymentId()); // and two deployed decisions with different versions List<DecisionDefinition> decisions = repositoryService.createDecisionDefinitionQuery().decisionDefinitionKey("score-decision") .orderByDecisionDefinitionVersion().asc() .list(); assertEquals(2, decisions.size()); DecisionDefinition firstDecision = decisions.get(0); assertEquals(1, firstDecision.getVersion()); assertEquals(deploymentIdDecision, firstDecision.getDeploymentId()); assertNull(firstDecision.getDecisionRequirementsDefinitionId()); DecisionDefinition secondDecision = decisions.get(1); assertEquals(2, secondDecision.getVersion()); assertEquals(deploymentIdDrd, secondDecision.getDeploymentId()); assertEquals(decisionRequirementsDefinition.getId(),secondDecision.getDecisionRequirementsDefinitionId()); }
@Test public void drdDeployment() { String deploymentId = testRule.deploy(DRD_SCORE_RESOURCE).getId(); // there should be one decision requirements definition DecisionRequirementsDefinitionQuery query = repositoryService.createDecisionRequirementsDefinitionQuery(); assertEquals(1, query.count()); DecisionRequirementsDefinition decisionRequirementsDefinition = query.singleResult(); assertTrue(decisionRequirementsDefinition.getId().startsWith("score:1:")); assertEquals("score", decisionRequirementsDefinition.getKey()); assertEquals("Score", decisionRequirementsDefinition.getName()); assertEquals("test-drd-1", decisionRequirementsDefinition.getCategory()); assertEquals(1, decisionRequirementsDefinition.getVersion()); assertEquals(DRD_SCORE_RESOURCE, decisionRequirementsDefinition.getResourceName()); assertEquals(deploymentId, decisionRequirementsDefinition.getDeploymentId()); assertNull(decisionRequirementsDefinition.getDiagramResourceName()); // both decisions should have a reference to the decision requirements definition List<DecisionDefinition> decisions = repositoryService.createDecisionDefinitionQuery().orderByDecisionDefinitionKey().asc().list(); assertEquals(2, decisions.size()); DecisionDefinition firstDecision = decisions.get(0); assertEquals("score-decision", firstDecision.getKey()); assertEquals(decisionRequirementsDefinition.getId(), firstDecision.getDecisionRequirementsDefinitionId()); assertEquals("score", firstDecision.getDecisionRequirementsDefinitionKey()); DecisionDefinition secondDecision = decisions.get(1); assertEquals("score-result", secondDecision.getKey()); assertEquals(decisionRequirementsDefinition.getId(), secondDecision.getDecisionRequirementsDefinitionId()); assertEquals("score", secondDecision.getDecisionRequirementsDefinitionKey()); }
@Test public void orderByDecisionRequirementsDefinitionVersion() { List<DecisionRequirementsDefinition> decisionRequirementsDefinitions = repositoryService.createDecisionRequirementsDefinitionQuery() .orderByDecisionRequirementsDefinitionVersion().asc().list(); assertThat(decisionRequirementsDefinitions.size(), is(4)); assertThat(decisionRequirementsDefinitions.get(0).getVersion(), is(1)); assertThat(decisionRequirementsDefinitions.get(1).getVersion(), is(1)); assertThat(decisionRequirementsDefinitions.get(2).getVersion(), is(1)); assertThat(decisionRequirementsDefinitions.get(3).getVersion(), is(2)); decisionRequirementsDefinitions = repositoryService.createDecisionRequirementsDefinitionQuery() .orderByDecisionRequirementsDefinitionVersion().desc().list(); assertThat(decisionRequirementsDefinitions.get(0).getVersion(), is(2)); assertThat(decisionRequirementsDefinitions.get(1).getVersion(), is(1)); assertThat(decisionRequirementsDefinitions.get(2).getVersion(), is(1)); }
@Test public void queryByLatestNoTenantIdSet() { // deploy a second version for tenant one testRule.deployForTenant(TENANT_ONE, DMN); DecisionRequirementsDefinitionQuery query = repositoryService .createDecisionRequirementsDefinitionQuery() .decisionRequirementsDefinitionKey(DECISION_REQUIREMENTS_DEFINITION_KEY) .latestVersion(); // one definition for each tenant assertThat(query.count(), is(3L)); Map<String, DecisionRequirementsDefinition> definitionsForTenant = getDecisionRequirementsDefinitionsForTenant(query.list()); assertThat(definitionsForTenant.get(TENANT_ONE).getVersion(), is(2)); assertThat(definitionsForTenant.get(TENANT_TWO).getVersion(), is(1)); assertThat(definitionsForTenant.get(null).getVersion(), is(1)); }
public static DecisionRequirementsDefinitionDto fromDecisionRequirementsDefinition(DecisionRequirementsDefinition definition) { DecisionRequirementsDefinitionDto dto = new DecisionRequirementsDefinitionDto(); dto.id = definition.getId(); dto.key = definition.getKey(); dto.category = definition.getCategory(); dto.name = definition.getName(); dto.version = definition.getVersion(); dto.resource = definition.getResourceName(); dto.deploymentId = definition.getDeploymentId(); dto.tenantId = definition.getTenantId(); return dto; }
@Test public void queryByLatestWithTenantIdsIncludeDefinitionsWithoutTenantId() { // deploy a second version without tenant id testRule.deploy(DMN); // deploy a third version for tenant one testRule.deployForTenant(TENANT_ONE, DMN); testRule.deployForTenant(TENANT_ONE, DMN); DecisionRequirementsDefinitionQuery query = repositoryService .createDecisionRequirementsDefinitionQuery() .decisionRequirementsDefinitionKey(DECISION_REQUIREMENTS_DEFINITION_KEY) .latestVersion() .tenantIdIn(TENANT_ONE, TENANT_TWO) .includeDecisionRequirementsDefinitionsWithoutTenantId(); assertThat(query.count(), is(3L)); Map<String, DecisionRequirementsDefinition> definitionsForTenant = getDecisionRequirementsDefinitionsForTenant(query.list()); assertThat(definitionsForTenant.get(TENANT_ONE).getVersion(), is(3)); assertThat(definitionsForTenant.get(TENANT_TWO).getVersion(), is(1)); assertThat(definitionsForTenant.get(null).getVersion(), is(2)); }
@Test public void queryByLatestWithTenantIds() { // deploy a second version for tenant one testRule.deployForTenant(TENANT_ONE, DMN); DecisionRequirementsDefinitionQuery query = repositoryService .createDecisionRequirementsDefinitionQuery() .decisionRequirementsDefinitionKey(DECISION_REQUIREMENTS_DEFINITION_KEY) .latestVersion() .tenantIdIn(TENANT_ONE, TENANT_TWO) .orderByTenantId() .asc(); // one definition for each tenant assertThat(query.count(), is(2L)); Map<String, DecisionRequirementsDefinition> definitionsForTenant = getDecisionRequirementsDefinitionsForTenant(query.list()); assertThat(definitionsForTenant.get(TENANT_ONE).getVersion(), is(2)); assertThat(definitionsForTenant.get(TENANT_TWO).getVersion(), is(1)); }
@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 queryByLatestWithTenantId() { // deploy a second version for tenant one testRule.deployForTenant(TENANT_ONE, DMN); DecisionRequirementsDefinitionQuery query = repositoryService .createDecisionRequirementsDefinitionQuery() .decisionRequirementsDefinitionKey(DECISION_REQUIREMENTS_DEFINITION_KEY) .latestVersion() .tenantIdIn(TENANT_ONE); assertThat(query.count(), is(1L)); DecisionRequirementsDefinition DecisionRequirementsDefinition = query.singleResult(); assertThat(DecisionRequirementsDefinition.getTenantId(), is(TENANT_ONE)); assertThat(DecisionRequirementsDefinition.getVersion(), is(2)); query = repositoryService .createDecisionRequirementsDefinitionQuery() .decisionRequirementsDefinitionKey(DECISION_REQUIREMENTS_DEFINITION_KEY) .latestVersion() .tenantIdIn(TENANT_TWO); assertThat(query.count(), is(1L)); DecisionRequirementsDefinition = query.singleResult(); assertThat(DecisionRequirementsDefinition.getTenantId(), is(TENANT_TWO)); assertThat(DecisionRequirementsDefinition.getVersion(), is(1)); }
@Test public void deployDecisionIndependentFromDrd() { String deploymentIdDecision = testRule.deploy(DMN_SCORE_RESOURCE).getId(); String deploymentIdDrd = testRule.deploy(DRD_SCORE_RESOURCE).getId(); // there should be one decision requirements definition DecisionRequirementsDefinitionQuery query = repositoryService.createDecisionRequirementsDefinitionQuery(); assertEquals(1, query.count()); DecisionRequirementsDefinition decisionRequirementsDefinition = query.singleResult(); assertEquals(1, decisionRequirementsDefinition.getVersion()); assertEquals(deploymentIdDrd, decisionRequirementsDefinition.getDeploymentId()); // and two deployed decisions with different versions List<DecisionDefinition> decisions = repositoryService.createDecisionDefinitionQuery().decisionDefinitionKey("score-decision") .orderByDecisionDefinitionVersion().asc() .list(); assertEquals(2, decisions.size()); DecisionDefinition firstDecision = decisions.get(0); assertEquals(1, firstDecision.getVersion()); assertEquals(deploymentIdDecision, firstDecision.getDeploymentId()); assertNull(firstDecision.getDecisionRequirementsDefinitionId()); DecisionDefinition secondDecision = decisions.get(1); assertEquals(2, secondDecision.getVersion()); assertEquals(deploymentIdDrd, secondDecision.getDeploymentId()); assertEquals(decisionRequirementsDefinition.getId(),secondDecision.getDecisionRequirementsDefinitionId()); }
@Test public void drdDeployment() { String deploymentId = testRule.deploy(DRD_SCORE_RESOURCE).getId(); // there should be one decision requirements definition DecisionRequirementsDefinitionQuery query = repositoryService.createDecisionRequirementsDefinitionQuery(); assertEquals(1, query.count()); DecisionRequirementsDefinition decisionRequirementsDefinition = query.singleResult(); assertTrue(decisionRequirementsDefinition.getId().startsWith("score:1:")); assertEquals("score", decisionRequirementsDefinition.getKey()); assertEquals("Score", decisionRequirementsDefinition.getName()); assertEquals("test-drd-1", decisionRequirementsDefinition.getCategory()); assertEquals(1, decisionRequirementsDefinition.getVersion()); assertEquals(DRD_SCORE_RESOURCE, decisionRequirementsDefinition.getResourceName()); assertEquals(deploymentId, decisionRequirementsDefinition.getDeploymentId()); assertNull(decisionRequirementsDefinition.getDiagramResourceName()); // both decisions should have a reference to the decision requirements definition List<DecisionDefinition> decisions = repositoryService.createDecisionDefinitionQuery().orderByDecisionDefinitionKey().asc().list(); assertEquals(2, decisions.size()); DecisionDefinition firstDecision = decisions.get(0); assertEquals("score-decision", firstDecision.getKey()); assertEquals(decisionRequirementsDefinition.getId(), firstDecision.getDecisionRequirementsDefinitionId()); assertEquals("score", firstDecision.getDecisionRequirementsDefinitionKey()); DecisionDefinition secondDecision = decisions.get(1); assertEquals("score-result", secondDecision.getKey()); assertEquals(decisionRequirementsDefinition.getId(), secondDecision.getDecisionRequirementsDefinitionId()); assertEquals("score", secondDecision.getDecisionRequirementsDefinitionKey()); }