package org.fireflow.engine.modules.ousystem;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.fireflow.engine.context.RuntimeContext;
import org.fireflow.engine.exception.EngineException;
import org.fireflow.engine.modules.ousystem.impl.OUSystemConnectorEmptyImpl;
import org.fireflow.engine.modules.ousystem.impl.UserImpl;
/**
* 测试用组织机构子系统链接器
*
* @author 非也 nychen2000@163.com
* Fire Workflow 官方网站:www.firesoa.com 或者 www.fireflow.org
*
*/
public class OUSystemConnectorMock extends OUSystemConnectorEmptyImpl {
Map<String,User> usersList = new HashMap<String,User>();
Map<String,List<User>> departmentUsersMap = new HashMap<String,List<User>>();
Map<String,List<User>> roleUsersMap = new HashMap<String,List<User>>();
Map<String,List<User>> groupUsersMap = new HashMap<String,List<User>>();
public OUSystemConnectorMock(){
//构造用户列表
UserImpl u = new UserImpl();
u.setDeptId("ResearchDept");
u.setDeptName("研发部");
u.setId("zhangsan");
u.setName("张三");
usersList.put(u.getId(), u);
u = new UserImpl();
u.setDeptId("ResearchDept");
u.setDeptName("研发部");
u.setId("lisi");
u.setName("李四");
usersList.put(u.getId(), u);
u = new UserImpl();
u.setDeptId("ResearchDept");
u.setDeptName("研发部");
u.setId("wangwu");
u.setName("王五");
usersList.put(u.getId(), u);
u = new UserImpl();
u.setDeptId("ResearchDept");
u.setDeptName("研发部");
u.setId("Mgr_C");
u.setName("陈经理");
usersList.put(u.getId(), u);
u = new UserImpl();
u.setDeptId("TestDept");
u.setDeptName("测试部");
u.setId("liuyan");
u.setName("柳叶");
usersList.put(u.getId(), u);
u = new UserImpl();
u.setDeptId("Sales");
u.setDeptName("市场部");
u.setId("wanghaha");
u.setName("王哈哈");
usersList.put(u.getId(), u);
u = new UserImpl();
u.setDeptId("Sales");
u.setDeptName("市场部");
u.setId("limou");
u.setName("李某");
usersList.put(u.getId(), u);
//构造depargmentUser Map
List<User> deptUsersList = new ArrayList<User>();
for (User tmpU : usersList.values()){
if (tmpU.getDeptId().equals("ResearchDept")){
deptUsersList.add(tmpU);
}
}
departmentUsersMap.put("ResearchDept", deptUsersList);
deptUsersList = new ArrayList<User>(); ;
for (User tmpU : usersList.values()){
if (tmpU.getDeptId().equals("TestDept")){
deptUsersList.add(tmpU);
}
}
departmentUsersMap.put("TestDept", deptUsersList);
deptUsersList = new ArrayList<User>();
for (User tmpU : usersList.values()){
if (tmpU.getDeptId().equals("Sales")){
deptUsersList.add(tmpU);
}
}
departmentUsersMap.put("Sales", deptUsersList);
//构造roleUser Map
List<User> tmp = new ArrayList<User>();
tmp.add(usersList.get("zhangsan"));
tmp.add(usersList.get("lisi"));
tmp.add(usersList.get("wangwu"));
roleUsersMap.put("coder", tmp);
tmp = new ArrayList<User>();
tmp.add(usersList.get("Mgr_C"));
roleUsersMap.put("manager",tmp );
}
public User login(String userId,String password){
return findUserById(userId);
}
public User findUserById(String userId) {
return usersList.get(userId);
}
public List<User> findUsersInDepartment(String deptId) {
return departmentUsersMap.get(deptId);
}
public List<User> findUsersInRole(String roleId) {
return roleUsersMap.get(roleId);
}
public List<User> findUsersInGroup(String groupId) {
return groupUsersMap.get(groupId);
}
}