Commit 25b0f0b6cb9e4a30932a9596b3693b3d20555bd1

Authored by zxl
1 parent ba34e3c9

user的h2初始化sql;user模块service方法测试

src/test/java/cn/iocoder/dashboard/modules/system/service/user/SysUserServiceImplTest.java 0 → 100644
  1 +package cn.iocoder.dashboard.modules.system.service.user;
  2 +
  3 +import cn.hutool.core.util.RandomUtil;
  4 +import cn.iocoder.dashboard.BaseSpringBootUnitTest;
  5 +import cn.iocoder.dashboard.common.enums.CommonStatusEnum;
  6 +import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserCreateReqVO;
  7 +import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserImportExcelVO;
  8 +import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserImportRespVO;
  9 +import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserUpdateReqVO;
  10 +import cn.iocoder.dashboard.modules.system.dal.dataobject.dept.SysDeptDO;
  11 +import cn.iocoder.dashboard.modules.system.dal.mysql.dept.SysDeptMapper;
  12 +import cn.iocoder.dashboard.modules.system.service.dept.SysDeptService;
  13 +import cn.iocoder.dashboard.util.RandomUtils;
  14 +import org.junit.jupiter.api.Test;
  15 +import org.springframework.beans.factory.annotation.Autowired;
  16 +import org.springframework.context.annotation.Import;
  17 +import org.springframework.security.crypto.password.PasswordEncoder;
  18 +
  19 +import javax.annotation.Resource;
  20 +import java.util.ArrayList;
  21 +import java.util.Collections;
  22 +import java.util.List;
  23 +
  24 +import static cn.iocoder.dashboard.util.RandomUtils.randomPojo;
  25 +import static cn.iocoder.dashboard.util.RandomUtils.randomString;
  26 +import static org.junit.jupiter.api.Assertions.*;
  27 +
  28 +/**
  29 + * @Author zxl
  30 + * @Date 2021/3/6 14:28
  31 + * @Desc
  32 + */
  33 +@Import(PasswordEncoder.class)
  34 +public class SysUserServiceImplTest extends BaseSpringBootUnitTest {
  35 +
  36 + @Autowired
  37 + private SysUserService userService;
  38 + @Autowired
  39 + private PasswordEncoder passwordEncoder;
  40 + @Autowired
  41 + private SysDeptService deptService;
  42 + @Resource
  43 + private SysDeptMapper deptMapper;
  44 +
  45 +
  46 + @Test
  47 + public void test_creatUser(){
  48 + // 准备参数
  49 + SysUserCreateReqVO reqVO = randomPojo(SysUserCreateReqVO.class,o->{
  50 + o.setDeptId(null);
  51 + o.setPostIds(Collections.emptySet());
  52 + o.setSex(1);
  53 + o.setPassword(randomString());
  54 + });
  55 + // 调用方法
  56 + Long userId = userService.createUser(reqVO);
  57 + // 校验数据是否存在
  58 + assertNotNull(userService.getUser(userId));
  59 + }
  60 +
  61 + @Test
  62 + public void test_updateUser(){
  63 + // 准备参数
  64 + SysUserCreateReqVO reqVO = randomPojo(SysUserCreateReqVO.class,o->{
  65 + o.setDeptId(null);
  66 + o.setPostIds(Collections.emptySet());
  67 + o.setSex(1);
  68 + o.setPassword(randomString());
  69 + });
  70 + // 先插入一条
  71 + Long userId = userService.createUser(reqVO);
  72 + // 准备更新参数:更新手机号
  73 + SysUserUpdateReqVO updateVo = new SysUserUpdateReqVO();
  74 + updateVo.setId(userId);
  75 + updateVo.setMobile(RandomUtil.randomNumbers(11));
  76 + // 调用方法、
  77 + userService.updateUser(updateVo);
  78 + // 校验结果
  79 + assertEquals(userService.getUser(userId).getMobile(),updateVo.getMobile());
  80 +
  81 + }
  82 +
  83 + @Test
  84 + public void test_deleteUser(){
  85 + // 准备参数
  86 + SysUserCreateReqVO reqVO = randomPojo(SysUserCreateReqVO.class,o->{
  87 + o.setDeptId(null);
  88 + o.setPostIds(Collections.emptySet());
  89 + o.setSex(1);
  90 + o.setPassword(randomString());
  91 + });
  92 + // 先插入一条
  93 + Long userId = userService.createUser(reqVO);
  94 + // 调用数据
  95 + userService.deleteUser(userId);
  96 + // 校验结果
  97 + assertNull(userService.getUser(userId));
  98 + }
  99 +
  100 + @Test
  101 + public void test_updateUserPassword(){
  102 + // 准备参数
  103 + SysUserCreateReqVO reqVO = randomPojo(SysUserCreateReqVO.class,o->{
  104 + o.setDeptId(null);
  105 + o.setPostIds(Collections.emptySet());
  106 + o.setSex(1);
  107 + o.setPassword("123");
  108 + });
  109 + // 先插入一条
  110 + Long userId = userService.createUser(reqVO);
  111 + String newPassword = RandomUtils.randomString();
  112 + // 调用
  113 + userService.updateUserPassword(userId,newPassword);
  114 + // 校验结果
  115 + assertNotEquals(passwordEncoder.encode(newPassword),userService.getUser(userId).getPassword());
  116 + }
  117 +
  118 + @Test
  119 + public void test_importUsers(){
  120 + SysDeptDO dept = randomPojo(SysDeptDO.class, o -> { // 等会查询到
  121 + o.setName("开发部");
  122 + o.setSort("1");
  123 + o.setStatus(CommonStatusEnum.ENABLE.getStatus());
  124 + });
  125 + int depId = deptMapper.insert(dept);
  126 + // 准备参数
  127 + List<SysUserImportExcelVO> list = new ArrayList<>();
  128 + list.add(randomPojo(SysUserImportExcelVO.class, o->{
  129 + o.setDeptId(dept.getId());
  130 + o.setSex(1);
  131 + o.setStatus(1);
  132 + }));
  133 + list.add(randomPojo(SysUserImportExcelVO.class, o->{
  134 + o.setDeptId(dept.getId());
  135 + o.setSex(1);
  136 + o.setStatus(1);
  137 + }));
  138 + list.add(randomPojo(SysUserImportExcelVO.class, o->{
  139 + o.setDeptId(dept.getId());
  140 + o.setSex(1);
  141 + o.setStatus(1);
  142 + }));
  143 + // 批量插入
  144 + SysUserImportRespVO respVO = userService.importUsers(list,false);
  145 + System.out.println(respVO.getCreateUsernames().size());
  146 + // 校验结果
  147 + assertEquals(respVO.getCreateUsernames().size(),3);
  148 + // 批量更新
  149 + list.get(0).setSex(0);
  150 + SysUserImportRespVO respVOUpdate = userService.importUsers(list,true);
  151 + System.out.println(respVOUpdate.getUpdateUsernames().size());
  152 + // 校验结果
  153 + assertEquals(respVOUpdate.getUpdateUsernames().size(),3);
  154 + }
  155 +
  156 + public SysUserCreateReqVO randomUserVO(){
  157 +
  158 + SysUserCreateReqVO userVO = new SysUserCreateReqVO();
  159 + userVO.setUsername(RandomUtils.randomString());
  160 + userVO.setNickname(RandomUtils.randomString());
  161 + userVO.setMobile(RandomUtil.randomNumbers(11));
  162 + userVO.setEmail(RandomUtils.randomString()+"@ruoyi.com");
  163 + userVO.setDeptId(null);
  164 + userVO.setPostIds(Collections.emptySet());
  165 +
  166 + userVO.setPassword(RandomUtils.randomString());
  167 + return userVO;
  168 +
  169 + }
  170 +}
... ...
src/test/resources/sql/clean.sql
... ... @@ -7,3 +7,4 @@ DELETE FROM &quot;sys_dict_data&quot;;
7 7 DELETE FROM "sys_role";
8 8 DELETE FROM "sys_role_menu";
9 9 DELETE FROM "sys_menu";
  10 +delete from "sys_user"
10 11 \ No newline at end of file
... ...
src/test/resources/sql/create_tables.sql
... ... @@ -100,3 +100,26 @@ CREATE TABLE IF NOT EXISTS &quot;sys_menu&quot; (
100 100 "deleted" bit NOT NULL DEFAULT FALSE,
101 101 PRIMARY KEY ("id")
102 102 ) COMMENT '菜单权限表';
  103 +
  104 +CREATE TABLE IF NOT EXISTS `sys_user` (
  105 +`id` bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY COMMENT '用户ID',
  106 +`username` varchar(30) NOT NULL COMMENT '用户账号',
  107 +`password` varchar(100) NOT NULL DEFAULT '' COMMENT '密码',
  108 +`nickname` varchar(30) NOT NULL COMMENT '用户昵称',
  109 +`remark` varchar(500) DEFAULT NULL COMMENT '备注',
  110 +`dept_id` bigint(20) DEFAULT NULL COMMENT '部门ID',
  111 +`post_ids` varchar(255) DEFAULT NULL COMMENT '岗位编号数组',
  112 +`email` varchar(50) DEFAULT '' COMMENT '用户邮箱',
  113 +`mobile` varchar(11) DEFAULT '' COMMENT '手机号码',
  114 +`sex` tinyint(4) DEFAULT '0' COMMENT '用户性别',
  115 +`avatar` varchar(100) DEFAULT '' COMMENT '头像地址',
  116 +`status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '帐号状态(0正常 1停用)',
  117 +`login_ip` varchar(50) DEFAULT '' COMMENT '最后登录IP',
  118 +`login_date` datetime DEFAULT NULL COMMENT '最后登录时间',
  119 +`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
  120 +`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  121 +`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
  122 +`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  123 +`deleted` bit NOT NULL DEFAULT FALSE,
  124 +PRIMARY KEY (`id`)
  125 +) COMMENT='用户信息表';
103 126 \ No newline at end of file
... ...