activiti工作流
import static org.junit.Assert.assertEquals
import static org.junit.Assert.assertNotNull
import java.util.List
import org.activiti.engine.IdentityService
import org.activiti.engine.identity.Group
import org.activiti.engine.identity.GroupQuery
import org.activiti.engine.identity.User
import org.activiti.engine.identity.UserQuery
import org.activiti.engine.test.ActivitiRule
import org.junit.Rule
import org.junit.Test
public class IdentifyServiceTest {
@Rule
//使用默认的activiti.cfg.xml作为参数
public ActivitiRule activitiRule = new ActivitiRule()
//用户管理的API演示
@Test
public void testUser() throws Exception {
//获取IdentifyService实例
IdentityService identityService = activitiRule.getIdentityService()
//创建一个用户对象
User user = identityService.newUser("henryyan")
user.setFirstName("Henry")
user.setLastName("Yan")
user.setEmail("123@qq.com")
//保存用户到数据库
identityService.saveUser(user)
//验证用户是否保存成功
User userInDb = identityService.createUserQuery()
.userId("henryyan").singleResult()
System.out.println(userInDb.getEmail())
assertNotNull(userInDb)
//删除用户
identityService.deleteUser("henryyan")
//验证是否删除成功
userInDb = identityService.createUserQuery().userId("henryyan").singleResult()
assertNotNull(userInDb)
}
//组管理的API演示
@Test
public void testGroup() {
//获取IdentifyService实例
IdentityService identityService = activitiRule.getIdentityService()
//创建一个租对象
Group group = identityService.newGroup("deptLeader")
group.setName("部门领导")
group.setType("assignment")
//保存组
identityService.saveGroup(group)
//验证组是否已保存成功,首先需要创建组查询对象
List<Group> groupList = identityService.createGroupQuery()
.groupId("deptLeader").list()
assertEquals(1,groupList.size())
//删除组
identityService.deleteGroup("deptLeader")
//验证是否删除成功
groupList = identityService.createGroupQuery().groupId("deptLeader").list()
assertEquals(0,groupList.size())
}
//组和用户关联关系API演示
@Test
public void testUserAndGroupMemership() {
//获取IdentifyService实例
IdentityService identityService = activitiRule.getIdentityService()
//创建并保存组对象
Group group = identityService.newGroup("deptLeader")
group.setName("部门领导")
group.setType("assignment")
identityService.saveGroup(group)
//创建并保存用户对象
User user = identityService.newUser("henryyan")
user.setFirstName("Henry")
user.setLastName("Yan")
user.setEmail("123@qq.com")
identityService.saveUser(user)
//把用户henryyan加入到组deptLeader中
identityService.createMembership("henryyan", "deptLeader")
//查询属于组deptLeader的用户
User userInGroup = identityService.createUserQuery().memberOfGroup("deptLeader").singleResult()
assertNotNull(userInGroup)
assertEquals("henryyan", userInGroup.getId())
//查询henryyan所属组
Group result = identityService.createGroupQuery().groupMember("henryyan").singleResult()
assertNotNull(result)
assertEquals("deptLeader", result.getId())
}
}
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.activiti.examples</groupId>
<artifactId>activiti-examples</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>BPMN 2.0 with Activiti - Examples</name>
<properties>
<activiti-version>5.18.0</activiti-version>
</properties>
<dependencies>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-engine</artifactId>
<version>5.18.0</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring</artifactId>
<version>5.18.0</version>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>2.4.3</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.3.168</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.6</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jdk14</artifactId>
<version>1.7.6</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<inherited>true</inherited>
<configuration>
<classpathContainers>
<classpathContainer>org.eclipse.jdt.USER_LIBRARY/Activiti Designer
Extensions</classpathContainer>
</classpathContainers>
</configuration>
</plugin>
</plugins>
</build>
</project>