package org.activiti.test.spring.boot; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.List; import java.util.Properties; import activiti.Application; import activiti.mappers.CustomMybatisMapper; import org.activiti.engine.ManagementService; import org.activiti.engine.ProcessEngine; import org.activiti.engine.RepositoryService; import org.activiti.engine.impl.cmd.AbstractCustomSqlExecution; import org.activiti.engine.impl.interceptor.Command; import org.activiti.engine.impl.interceptor.CommandContext; import org.activiti.engine.repository.ProcessDefinition; import org.activiti.spring.boot.DataSourceProcessEngineAutoConfiguration; import org.junit.Assert; import org.junit.Test; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.core.env.PropertiesPropertySource; /** * @author Dominik Bartos */ public class CustomMybatisMapperConfigurationTest { @Test public void executeCustomMybatisMapperQuery() throws Exception { AnnotationConfigApplicationContext applicationContext = this.context(Application.class); ManagementService managementService = applicationContext.getBean(ManagementService.class); String processDefinitionId = managementService.executeCustomSql(new AbstractCustomSqlExecution<CustomMybatisMapper, String>(CustomMybatisMapper.class) { @Override public String execute(CustomMybatisMapper customMybatisMapper) { return customMybatisMapper.loadProcessDefinitionIdByKey("waiter"); } }); Assert.assertNotNull("the processDefinitionId should not be null!", processDefinitionId); } @Test public void executeCustomMybatisXmlQuery() throws Exception { AnnotationConfigApplicationContext applicationContext = this.context(Application.class); ManagementService managementService = applicationContext.getBean(ManagementService.class); String processDefinitionDeploymentId = managementService.executeCommand(new Command<String>() { @Override public String execute(CommandContext commandContext) { return (String) commandContext.getDbSqlSession().selectOne("selectProcessDefinitionDeploymentIdByKey", "waiter"); } }); Assert.assertNotNull("the processDefinitionDeploymentId should not be null!", processDefinitionDeploymentId); } private AnnotationConfigApplicationContext context(Class<?>... clzz) throws IOException { AnnotationConfigApplicationContext annotationConfigApplicationContext = new AnnotationConfigApplicationContext(); annotationConfigApplicationContext.register(clzz); File springBootPropertiesFile = new File("src/test/resources/config/application.properties"); Properties springBootProperties = new Properties(); springBootProperties.load(new FileInputStream(springBootPropertiesFile)); annotationConfigApplicationContext .getEnvironment() .getPropertySources() .addFirst(new PropertiesPropertySource("testProperties", springBootProperties)); annotationConfigApplicationContext.refresh(); return annotationConfigApplicationContext; } }