diff --git a/jeecg-boot/jeecg-module-system/jeecg-system-start/src/test/java/org/jeecg/modules/system/test/SysUserApiTest.java b/jeecg-boot/jeecg-module-system/jeecg-system-start/src/test/java/org/jeecg/modules/system/test/SysUserApiTest.java new file mode 100644 index 000000000..bb3d51669 --- /dev/null +++ b/jeecg-boot/jeecg-module-system/jeecg-system-start/src/test/java/org/jeecg/modules/system/test/SysUserApiTest.java @@ -0,0 +1,177 @@ +package org.jeecg.modules.system.test; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.modules.redis.client.JeecgRedisClient; +import org.jeecg.common.util.RedisUtil; +import org.jeecg.config.JeecgBaseConfig; +import org.jeecg.modules.base.service.BaseCommonService; +import org.jeecg.modules.system.controller.SysUserController; +import org.jeecg.modules.system.entity.SysUser; +import org.jeecg.modules.system.service.*; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.http.MediaType; +import org.springframework.test.web.servlet.MockMvc; + +import java.util.ArrayList; +import java.util.List; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.BDDMockito.given; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; + +/** + * 系统用户单元测试 + */ +@WebMvcTest(SysUserController.class) +public class SysUserApiTest { + + @Autowired + private MockMvc mockMvc; + + @MockBean + private ISysUserService sysUserService; + + @MockBean + private ISysDepartService sysDepartService; + + @MockBean + private ISysUserRoleService sysUserRoleService; + + @MockBean + private ISysUserDepartService sysUserDepartService; + + @MockBean + private ISysDepartRoleUserService departRoleUserService; + + @MockBean + private ISysDepartRoleService departRoleService; + + @MockBean + private RedisUtil redisUtil; + + @Value("${jeecg.path.upload}") + private String upLoadPath; + + @MockBean + private BaseCommonService baseCommonService; + + @MockBean + private ISysUserAgentService sysUserAgentService; + + @MockBean + private ISysPositionService sysPositionService; + + @MockBean + private ISysUserTenantService userTenantService; + + @MockBean + private JeecgRedisClient jeecgRedisClient; + + @MockBean + private JeecgBaseConfig jeecgBaseConfig; + /** + * 测试地址:实际使用时替换成你自己的地址 + */ + private final String BASE_URL = "/sys/user/"; + + /** + * 测试用例:查询记录 + */ + @Test + public void testQuery() throws Exception{ + // 请求地址 + String url = BASE_URL + "list"; + + Page sysUserPage = new Page<>(); + SysUser sysUser = new SysUser(); + sysUser.setUsername("admin"); + List users = new ArrayList<>(); + users.add(sysUser); + sysUserPage.setRecords(users); + sysUserPage.setCurrent(1); + sysUserPage.setSize(10); + sysUserPage.setTotal(1); + + given(this.sysUserService.queryPageList(any(), any(), any(), any())).willReturn(Result.OK(sysUserPage)); + + String result = mockMvc.perform(get(url)).andReturn().getResponse().getContentAsString(); + JSONObject jsonObject = JSON.parseObject(result); + Assertions.assertEquals("admin", jsonObject.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("username")); + } + + /** + * 测试用例:新增 + */ + @Test + public void testAdd() throws Exception { + // 请求地址 + String url = BASE_URL + "add" ; + + JSONObject params = new JSONObject(); + params.put("username", "wangwuTest"); + params.put("password", "123456"); + params.put("confirmpassword","123456"); + params.put("realname", "单元测试"); + params.put("activitiSync", "1"); + params.put("userIdentity","1"); + params.put("workNo","0025"); + + String result = mockMvc.perform(post(url).contentType(MediaType.APPLICATION_JSON_VALUE).content(params.toJSONString())) + .andReturn().getResponse().getContentAsString(); + JSONObject jsonObject = JSON.parseObject(result); + Assertions.assertTrue(jsonObject.getBoolean("success")); + } + + + /** + * 测试用例:修改 + */ + @Test + public void testEdit() throws Exception { + // 数据Id + String dataId = "1331795062924374018"; + // 请求地址 + String url = BASE_URL + "edit"; + + JSONObject params = new JSONObject(); + params.put("username", "wangwuTest"); + params.put("realname", "单元测试1111"); + params.put("activitiSync", "1"); + params.put("userIdentity","1"); + params.put("workNo","0025"); + params.put("id",dataId); + + SysUser sysUser = new SysUser(); + sysUser.setUsername("admin"); + + given(this.sysUserService.getById(any())).willReturn(sysUser); + + String result = mockMvc.perform(put(url).contentType(MediaType.APPLICATION_JSON_VALUE).content(params.toJSONString())) + .andReturn().getResponse().getContentAsString(); + JSONObject jsonObject = JSON.parseObject(result); + Assertions.assertTrue(jsonObject.getBoolean("success")); + } + + + /** + * 测试用例:删除 + */ + @Test + public void testDelete() throws Exception { + // 数据Id + String dataId = "1331795062924374018"; + // 请求地址 + String url = BASE_URL + "delete" + "?id=" + dataId; + String result = mockMvc.perform(delete(url)).andReturn().getResponse().getContentAsString(); + JSONObject jsonObject = JSON.parseObject(result); + Assertions.assertTrue(jsonObject.getBoolean("success")); + } +}