public void testQuerySortingAsc() { // exclude definitions without tenant id because of database-specific ordering List<DecisionDefinition> decisionDefinitions = repositoryService .createDecisionDefinitionQuery() .tenantIdIn(TENANT_ONE, TENANT_TWO) .orderByTenantId() .asc() .list(); assertThat(decisionDefinitions.size(), is(2)); assertThat(decisionDefinitions.get(0).getTenantId(), is(TENANT_ONE)); assertThat(decisionDefinitions.get(1).getTenantId(), is(TENANT_TWO)); }
executeAndVerifySorting("id", "asc", Status.OK); inOrder.verify(mockedQuery).orderByDecisionDefinitionId(); inOrder.verify(mockedQuery).asc(); inOrder.verify(mockedQuery).asc(); inOrder.verify(mockedQuery).asc(); inOrder.verify(mockedQuery).asc(); inOrder.verify(mockedQuery).asc(); inOrder.verify(mockedQuery).asc(); inOrder.verify(mockedQuery).asc(); executeAndVerifySorting("versionTag", "asc", Status.OK); inOrder.verify(mockedQuery).orderByVersionTag(); inOrder.verify(mockedQuery).asc(); inOrder.verify(mockedQuery).asc();
public void testQueryByLatestWithTenantIds() { // deploy a second version for tenant one deploymentForTenant(TENANT_ONE, DMN); DecisionDefinitionQuery query = repositoryService .createDecisionDefinitionQuery() .decisionDefinitionKey(DECISION_DEFINITION_KEY) .latestVersion() .tenantIdIn(TENANT_ONE, TENANT_TWO) .orderByTenantId() .asc(); // one definition for each tenant assertThat(query.count(), is(2L)); Map<String, DecisionDefinition> decisionDefinitionsForTenant = getDecisionDefinitionsForTenant(query.list()); assertThat(decisionDefinitionsForTenant.get(TENANT_ONE).getVersion(), is(2)); assertThat(decisionDefinitionsForTenant.get(TENANT_TWO).getVersion(), is(1)); }
@Deployment(resources = { "org/camunda/bpm/engine/test/api/repository/versionTag.dmn", "org/camunda/bpm/engine/test/api/repository/versionTagHigher.dmn" }) @Test public void testQueryOrderByVersionTag() { List<DecisionDefinition> decisionDefinitionList = repositoryService .createDecisionDefinitionQuery() .versionTagLike("1%") .orderByVersionTag() .asc() .list(); assertEquals("1.1.0", decisionDefinitionList.get(1).getVersionTag()); }
@Deployment(resources={"org/camunda/bpm/engine/test/api/repository/versionTag.dmn"}) public void testParsingVersionTagDecisionDefinition() { DecisionDefinition decision = repositoryService .createDecisionDefinitionQuery() .orderByDecisionDefinitionVersion() .asc() .singleResult(); assertEquals("1.0.0", decision.getVersionTag()); }
@Deployment(resources={"org/camunda/bpm/engine/test/api/repository/noVersionTag.dmn"}) public void testParsingNullVersionTagDecisionDefinition() { DecisionDefinition decision = repositoryService .createDecisionDefinitionQuery() .orderByDecisionDefinitionVersion() .asc() .singleResult(); assertEquals(null, decision.getVersionTag()); } }
@Deployment( resources = { DRD_SCORE_RESOURCE, DRD_DISH_RESOURCE }) @Test public void multipleDrdDeployment() { // there should be two decision requirements definitions List<DecisionRequirementsDefinition> decisionRequirementsDefinitions = repositoryService .createDecisionRequirementsDefinitionQuery() .orderByDecisionRequirementsDefinitionCategory() .asc() .list(); assertEquals(2, decisionRequirementsDefinitions.size()); assertEquals("score", decisionRequirementsDefinitions.get(0).getKey()); assertEquals("dish", decisionRequirementsDefinitions.get(1).getKey()); // the decisions should have a reference to the decision requirements definition List<DecisionDefinition> decisions = repositoryService.createDecisionDefinitionQuery().orderByDecisionDefinitionCategory().asc().list(); assertEquals(5, decisions.size()); assertEquals(decisionRequirementsDefinitions.get(0).getId(), decisions.get(0).getDecisionRequirementsDefinitionId()); assertEquals(decisionRequirementsDefinitions.get(0).getId(), decisions.get(1).getDecisionRequirementsDefinitionId()); assertEquals(decisionRequirementsDefinitions.get(1).getId(), decisions.get(2).getDecisionRequirementsDefinitionId()); assertEquals(decisionRequirementsDefinitions.get(1).getId(), decisions.get(3).getDecisionRequirementsDefinitionId()); assertEquals(decisionRequirementsDefinitions.get(1).getId(), decisions.get(4).getDecisionRequirementsDefinitionId()); }
@Test public void getPreviousDecisionDefinitionWithTenantId() { testRule.deployForTenant(TENANT_ONE, DMN); testRule.deployForTenant(TENANT_ONE, DMN); testRule.deployForTenant(TENANT_ONE, DMN); testRule.deployForTenant(TENANT_TWO, DMN); testRule.deployForTenant(TENANT_TWO, DMN); List<DecisionDefinition> latestDefinitions = repositoryService.createDecisionDefinitionQuery() .latestVersion() .orderByTenantId() .asc() .list(); DecisionDefinitionEntity previousDefinitionTenantOne = getPreviousDefinition((DecisionDefinitionEntity) latestDefinitions.get(0)); DecisionDefinitionEntity previousDefinitionTenantTwo = getPreviousDefinition((DecisionDefinitionEntity) latestDefinitions.get(1)); assertThat(previousDefinitionTenantOne.getVersion(), is(2)); assertThat(previousDefinitionTenantOne.getTenantId(), is(TENANT_ONE)); assertThat(previousDefinitionTenantTwo.getVersion(), is(1)); assertThat(previousDefinitionTenantTwo.getTenantId(), is(TENANT_TWO)); }
@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()); }
public void testQuerySortingAsc() { // exclude definitions without tenant id because of database-specific ordering List<DecisionDefinition> decisionDefinitions = repositoryService .createDecisionDefinitionQuery() .tenantIdIn(TENANT_ONE, TENANT_TWO) .orderByTenantId() .asc() .list(); assertThat(decisionDefinitions.size(), is(2)); assertThat(decisionDefinitions.get(0).getTenantId(), is(TENANT_ONE)); assertThat(decisionDefinitions.get(1).getTenantId(), is(TENANT_TWO)); }
public void testQueryByLatestWithTenantIds() { // deploy a second version for tenant one deploymentForTenant(TENANT_ONE, DMN); DecisionDefinitionQuery query = repositoryService .createDecisionDefinitionQuery() .decisionDefinitionKey(DECISION_DEFINITION_KEY) .latestVersion() .tenantIdIn(TENANT_ONE, TENANT_TWO) .orderByTenantId() .asc(); // one definition for each tenant assertThat(query.count(), is(2L)); Map<String, DecisionDefinition> decisionDefinitionsForTenant = getDecisionDefinitionsForTenant(query.list()); assertThat(decisionDefinitionsForTenant.get(TENANT_ONE).getVersion(), is(2)); assertThat(decisionDefinitionsForTenant.get(TENANT_TWO).getVersion(), is(1)); }
@Deployment(resources={"org/camunda/bpm/engine/test/api/repository/versionTag.dmn"}) public void testParsingVersionTagDecisionDefinition() { DecisionDefinition decision = repositoryService .createDecisionDefinitionQuery() .orderByDecisionDefinitionVersion() .asc() .singleResult(); assertEquals("1.0.0", decision.getVersionTag()); }
@Deployment(resources = { "org/camunda/bpm/engine/test/api/repository/versionTag.dmn", "org/camunda/bpm/engine/test/api/repository/versionTagHigher.dmn" }) @Test public void testQueryOrderByVersionTag() { List<DecisionDefinition> decisionDefinitionList = repositoryService .createDecisionDefinitionQuery() .versionTagLike("1%") .orderByVersionTag() .asc() .list(); assertEquals("1.1.0", decisionDefinitionList.get(1).getVersionTag()); }
@Deployment(resources={"org/camunda/bpm/engine/test/api/repository/noVersionTag.dmn"}) public void testParsingNullVersionTagDecisionDefinition() { DecisionDefinition decision = repositoryService .createDecisionDefinitionQuery() .orderByDecisionDefinitionVersion() .asc() .singleResult(); assertEquals(null, decision.getVersionTag()); } }
@Deployment( resources = { DRD_SCORE_RESOURCE, DRD_DISH_RESOURCE }) @Test public void multipleDrdDeployment() { // there should be two decision requirements definitions List<DecisionRequirementsDefinition> decisionRequirementsDefinitions = repositoryService .createDecisionRequirementsDefinitionQuery() .orderByDecisionRequirementsDefinitionCategory() .asc() .list(); assertEquals(2, decisionRequirementsDefinitions.size()); assertEquals("score", decisionRequirementsDefinitions.get(0).getKey()); assertEquals("dish", decisionRequirementsDefinitions.get(1).getKey()); // the decisions should have a reference to the decision requirements definition List<DecisionDefinition> decisions = repositoryService.createDecisionDefinitionQuery().orderByDecisionDefinitionCategory().asc().list(); assertEquals(5, decisions.size()); assertEquals(decisionRequirementsDefinitions.get(0).getId(), decisions.get(0).getDecisionRequirementsDefinitionId()); assertEquals(decisionRequirementsDefinitions.get(0).getId(), decisions.get(1).getDecisionRequirementsDefinitionId()); assertEquals(decisionRequirementsDefinitions.get(1).getId(), decisions.get(2).getDecisionRequirementsDefinitionId()); assertEquals(decisionRequirementsDefinitions.get(1).getId(), decisions.get(3).getDecisionRequirementsDefinitionId()); assertEquals(decisionRequirementsDefinitions.get(1).getId(), decisions.get(4).getDecisionRequirementsDefinitionId()); }
@Test public void getPreviousDecisionDefinitionWithTenantId() { testRule.deployForTenant(TENANT_ONE, DMN); testRule.deployForTenant(TENANT_ONE, DMN); testRule.deployForTenant(TENANT_ONE, DMN); testRule.deployForTenant(TENANT_TWO, DMN); testRule.deployForTenant(TENANT_TWO, DMN); List<DecisionDefinition> latestDefinitions = repositoryService.createDecisionDefinitionQuery() .latestVersion() .orderByTenantId() .asc() .list(); DecisionDefinitionEntity previousDefinitionTenantOne = getPreviousDefinition((DecisionDefinitionEntity) latestDefinitions.get(0)); DecisionDefinitionEntity previousDefinitionTenantTwo = getPreviousDefinition((DecisionDefinitionEntity) latestDefinitions.get(1)); assertThat(previousDefinitionTenantOne.getVersion(), is(2)); assertThat(previousDefinitionTenantOne.getTenantId(), is(TENANT_ONE)); assertThat(previousDefinitionTenantTwo.getVersion(), is(1)); assertThat(previousDefinitionTenantTwo.getTenantId(), is(TENANT_TWO)); }
@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()); }