/* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.activiti.engine.test.api.repository;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.activiti.engine.impl.test.PluggableActivitiTestCase;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.repository.DeploymentQuery;
/**
* @author Tom Baeyens
*/
public class DeploymentCategoryTest extends PluggableActivitiTestCase {
public void testDeploymentCategory() {
String noCategoryDeploymentId = null;
String deploymentOneId = null;
String deploymentTwoV1Id = null;
String deploymentTwoV2Id = null;
try {
noCategoryDeploymentId = repositoryService
.createDeployment()
.name("0")
.addClasspathResource("org/activiti/engine/test/service/oneTaskProcess.bpmn20.xml")
.deploy()
.getId();
deploymentOneId = repositoryService
.createDeployment()
.name("1")
.category("one")
.addClasspathResource("org/activiti/engine/test/repository/one.bpmn20.xml")
.deploy()
.getId();
deploymentTwoV1Id = repositoryService
.createDeployment()
.name("2v1")
.category("two")
.addClasspathResource("org/activiti/engine/test/repository/two.bpmn20.xml")
.deploy()
.getId();
deploymentTwoV2Id = repositoryService
.createDeployment()
.name("2v2")
.category("two")
.addClasspathResource("org/activiti/engine/test/repository/two.bpmn20.xml")
.deploy()
.getId();
DeploymentQuery query = repositoryService.createDeploymentQuery();
assertEquals(4, query.list().size());
Set<String> deploymentNames = getDeploymentNames(repositoryService
.createDeploymentQuery()
.deploymentCategory("one")
.list());
Set<String> expectedDeploymentNames = new HashSet<String>();
expectedDeploymentNames.add("1");
assertEquals(expectedDeploymentNames, deploymentNames);
deploymentNames = getDeploymentNames(repositoryService
.createDeploymentQuery()
.deploymentCategoryNotEquals("two")
.list());
expectedDeploymentNames.add("0");
assertEquals(expectedDeploymentNames, deploymentNames);
} finally {
if (noCategoryDeploymentId!=null) undeploy(noCategoryDeploymentId);
if (deploymentOneId!=null) undeploy(deploymentOneId);
if (deploymentTwoV1Id!=null) undeploy(deploymentTwoV1Id);
if (deploymentTwoV2Id!=null) undeploy(deploymentTwoV2Id);
}
}
private Set<String> getDeploymentNames(List<Deployment> deployments) {
Set<String> deploymentNames = new HashSet<String>();
for (Deployment deployment: deployments) {
deploymentNames.add(deployment.getName());
}
return deploymentNames;
}
private void undeploy(String deploymentId) {
try {
repositoryService.deleteDeployment(deploymentId);
} catch (Exception e) {
e.printStackTrace();
}
}
}