package org.camunda.bpm.extension.osgi.internal.impl; import static org.mockito.Matchers.any; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import java.io.File; import java.io.InputStream; import java.net.MalformedURLException; import java.net.URL; import java.util.Collections; import org.camunda.bpm.engine.ProcessEngine; import org.camunda.bpm.engine.RepositoryService; import org.camunda.bpm.engine.repository.DeploymentBuilder; import org.camunda.bpm.extension.osgi.internal.ProcessDefinitionDeployer; import org.junit.Test; public class ProcessDefinitionDeployerImplTest { private DeploymentBuilder deploymentBuilder; @Test public void deployEmptyPathList() { ProcessDefinitionDeployer deployer = new ProcessDefinitionDeployerImpl( createProcessEngineMock()); deployer.deployProcessDefinitions("test bundle", Collections.<URL> emptyList()); verify(deploymentBuilder).deploy(); } @Test public void deploySingleProcess() throws MalformedURLException { ProcessDefinitionDeployer deployer = new ProcessDefinitionDeployerImpl( createProcessEngineMock()); URL url = new File("src/test/resources/testprocess.bpmn").toURI() .toURL(); deployer.deployProcessDefinitions("test bundle", Collections.singletonList(url)); verify(deploymentBuilder).deploy(); verify(deploymentBuilder).addInputStream(eq(url.toString()), any(InputStream.class)); } private ProcessEngine createProcessEngineMock() { ProcessEngine processEngine = mock(ProcessEngine.class); RepositoryService repositoryService = mock(RepositoryService.class); when(processEngine.getRepositoryService()) .thenReturn(repositoryService); deploymentBuilder = mock(DeploymentBuilder.class); when(repositoryService.createDeployment()) .thenReturn(deploymentBuilder); return processEngine; } @Test public void throwsExceptionWhenProcessEngineNotFound() { ProcessDefinitionDeployer deployer = new ProcessDefinitionDeployerImpl( null); deployer.deployProcessDefinitions("test bundle", null); // nothing should happen because the exception get's caught } }