package com.jinhe.tss.um.module; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import com.jinhe.tss.component.support.test.TestUtil; import com.jinhe.tss.core.Config; import com.jinhe.tss.core.cachepool.proxy.profier.CGLIBProfiler; import com.jinhe.tss.um.TxSupportTest4UM; import com.jinhe.tss.um.UMConstants; import com.jinhe.tss.um.action.UserAction; import com.jinhe.tss.um.entity.Application; import com.jinhe.tss.um.entity.Group; import com.jinhe.tss.um.entity.User; import com.jinhe.tss.um.service.IApplicationService; import com.jinhe.tss.um.service.IUserService; /** * 用户相关模块的单元测试 */ public class UserModuleTest extends TxSupportTest4UM { UserAction action = (UserAction) new CGLIBProfiler().getProxy(UserAction.class); @Autowired IUserService service; @Autowired IApplicationService appService; public void setUp() throws Exception { super.setUp(); action.setUserService(service); action.setPropertyService(propertyService); action.setApplicationService(appService); } Group mainGroup1; public void testUserModule() { mainGroup1 = new Group(); mainGroup1.setParentId(UMConstants.MAIN_GROUP_ID); mainGroup1.setName("U_财务部"); mainGroup1.setGroupType( Group.MAIN_GROUP_TYPE ); mainGroup1.setApplicationId(Config.getAttribute(Config.APPLICATION_CODE)); groupService.createNewGroup(mainGroup1 , "", "-1"); log.debug(mainGroup1); // 管理员直接在主组下新增用户 User user1 = new User(); user1.setApplicationId(mainGroup1.getApplicationId()); user1.setLoginName("U_JonKing"); user1.setUserName("U_JK"); user1.setPassword("123456"); user1.setGroupId(mainGroup1.getId()); service.createOrUpdateUserInfo(mainGroup1.getId(), user1 , "" + mainGroup1.getId(), "-1"); log.debug(user1); service.deleteUser(mainGroup1.getId(), user1.getId(), Group.MAIN_GROUP_TYPE); user1.setId(null); service.createOrUpdateUserInfo(mainGroup1.getId(), user1 , "" + mainGroup1.getId(), "-1"); log.debug(user1); // 注册一个用户 User user2 = new User(); user2.setApplicationId(UMConstants.TSS_APPLICATION_ID); user2.setLoginName("U_JonKing-R"); user2.setUserName("U_JK-R"); user2.setPassword("123456"); user2.setGroupId(UMConstants.SELF_REGISTER_GROUP_ID_NOT_AUTHEN); service.registerUser(user2); log.debug(user2); // 管理员将注册移动至主组(认证该用户通过) service.moveUser(UMConstants.SELF_REGISTER_GROUP_ID_NOT_AUTHEN, mainGroup1.getId(), user2.getId()); user2.setUserName("JK-2"); service.updateUser(user2); Group otherGroup = _testOtherGroupCRUD(); List<User> mainUsers = service.getUsersByGroup(mainGroup1.getId()); List<User> otherUsers = service.getUsersByGroup(otherGroup.getId()); assertEquals(2, mainUsers.size()); assertEquals(2, otherUsers.size()); // 建立其他用户组用户和主用户组用户的对应关系 User appUser = otherUsers.get(0); service.editManualMappingInfo(user1.getId(), appUser.getId(), appUser.getApplicationId()); // 导入其他用户组用户到主用户组下 service.importUser(otherGroup.getId(), mainGroup1.getId(), otherUsers.get(1).getId()); mainUsers = service.getUsersByGroup(mainGroup1.getId()); assertEquals(3, mainUsers.size()); _testAction(); service.overdue(); assertTrue(TestUtil.printLogs(logService) > 0); } public Group _testOtherGroupCRUD() { Application application = new Application(); application.setApplicationType(UMConstants.OTHER_SYSTEM_APP); application.setApplicationId("U_OA"); application.setName("U_JH OA"); application.setParentId(UMConstants.APPLICATION_RESOURCE_ROOT_ID); appService.saveApplication(application); Group group1 = new Group(); group1.setParentId(UMConstants.OTHER_APPLICATION_GROUP_ID); group1.setName("U_财务部"); group1.setGroupType( Group.OTHER_GROUP_TYPE ); group1.setApplicationId(application.getApplicationId()); groupService.createNewGroup(group1 , "", ""); User user1 = new User(); user1.setApplicationId(group1.getApplicationId()); user1.setLoginName("U_JonKing"); user1.setUserName("U_JK"); user1.setPassword("123456"); user1.setGroupId(group1.getId()); service.createOrUpdateUserInfo(group1.getId(), user1 , "" + group1.getId(), ""); log.debug(user1 + "\n"); User user2 = new User(); user2.setApplicationId(group1.getApplicationId()); user2.setLoginName("JonKing3"); user2.setUserName("JK3"); user2.setPassword("123456"); user2.setGroupId(group1.getId()); service.createOrUpdateUserInfo(group1.getId(), user2 , "" + group1.getId(), ""); log.debug(user2 + "\n"); return group1; } public void _testAction() { List<User> mainUsers = service.getUsersByGroup(mainGroup1.getId()); assertEquals(3, mainUsers.size()); action.setPage(1); action.setGroupId(mainGroup1.getId()); action.setUserId(UMConstants.IS_NEW); action.getUserInfoAndRelation(); action.setUserId(mainUsers.get(0).getId()); action.getUserInfoAndRelation(); action.initAuthenticateMethod(); action.setAuthenticateMethod("com.jinhe.tss.um.sso.UMSLocalUserPWDIdentifier"); action.uniteAuthenticateMethod(); action.setAccountState(UMConstants.TRUE); action.startOrStopUser(); action.setAccountState(UMConstants.FALSE); action.startOrStopUser(); action.setToUserId(mainUsers.get(1).getId()); action.setDirection(1); action.sortUser(); action.getOnlineUserInfo(); action.getOperatorInfo(); action.getForgetPasswordInfo(); action.setIsModifyOrRegister("modify"); action.getUserInfo(); action.setPassword("369852"); action.initPassword(); action.getManualMappingInfo(); action.getAutoMappingInfo(); action.getSelectedUsersByGroupId(); action.getAuthenticateApp(); action.setGroupType(Group.MAIN_GROUP_TYPE); action.getOperation(); action.getUsersByGroupId(); action.getUserQueryCon().setGroupId(mainGroup1.getId()); action.searchMappingUser(); action.searchUser(); } }