package com.cloudroam.controller.cms;
|
|
import com.cloudroam.dto.admin.*;
|
import com.cloudroam.mapper.*;
|
import com.cloudroam.model.*;
|
import com.cloudroam.dto.admin.*;
|
import com.cloudroam.mapper.*;
|
import com.cloudroam.model.*;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
|
import com.cloudroam.dto.admin.*;
|
import com.cloudroam.mapper.*;
|
import com.cloudroam.model.*;
|
import com.cloudroam.service.impl.UserIdentityServiceImpl;
|
import lombok.extern.slf4j.Slf4j;
|
import org.junit.jupiter.api.Test;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
|
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.http.MediaType;
|
import org.springframework.test.annotation.Rollback;
|
import org.springframework.test.context.ActiveProfiles;
|
import org.springframework.test.web.servlet.MockMvc;
|
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.util.Arrays;
|
import java.util.Collections;
|
|
import static org.junit.jupiter.api.Assertions.*;
|
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
|
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
|
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
|
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
|
@Transactional
|
@Rollback
|
@AutoConfigureMockMvc
|
@Slf4j
|
@ActiveProfiles("test")
|
public class AdminControllerTest {
|
|
@Autowired
|
private MockMvc mvc;
|
|
@Autowired
|
private UserMapper userMapper;
|
|
@Autowired
|
private UserGroupMapper userGroupMapper;
|
|
@Autowired
|
private GroupMapper groupMapper;
|
|
@Autowired
|
private GroupPermissionMapper groupPermissionMapper;
|
|
@Autowired
|
private PermissionMapper permissionMapper;
|
|
@Autowired
|
private UserIdentityServiceImpl userIdentityService;
|
|
@Test
|
public void getAllPermissions() throws Exception {
|
mvc.perform(get("/cms/admin/permission")
|
.contentType(MediaType.APPLICATION_JSON))
|
.andDo(print())
|
.andExpect(status().isOk())
|
.andExpect(MockMvcResultMatchers.jsonPath("$.日志").isArray());
|
}
|
|
@Test
|
public void getUsers() throws Exception {
|
mvc.perform(get("/cms/admin/users")
|
.contentType(MediaType.APPLICATION_JSON))
|
.andDo(print())
|
.andExpect(status().isOk())
|
.andExpect(MockMvcResultMatchers.jsonPath("$.total").isNumber())
|
.andExpect(MockMvcResultMatchers.jsonPath("$.count").value(10));
|
}
|
|
@Test
|
public void getUsers1() throws Exception {
|
String email = "13129982604@qq.com";
|
String username = "pedro大大";
|
String nickname = "pedro大大";
|
UserDO user = UserDO.builder().username(username).nickname(nickname).email(email).build();
|
userMapper.insert(user);
|
|
|
String name = "千里之外";
|
String info = "千里之外是个啥";
|
GroupDO group = GroupDO.builder().name(name).info(info).build();
|
groupMapper.insert(group);
|
|
userGroupMapper.insert(new UserGroupDO(user.getId(), group.getId()));
|
|
String module = "信息";
|
String permissionName = "查看lin的信息";
|
|
PermissionDO permission = PermissionDO.builder().name(permissionName).module(module).build();
|
permissionMapper.insert(permission);
|
|
groupPermissionMapper.insert(new GroupPermissionDO(group.getId(), permission.getId()));
|
|
mvc.perform(get("/cms/admin/users")
|
.param("group_id", group.getId() + "")
|
.contentType(MediaType.APPLICATION_JSON))
|
.andDo(print())
|
.andExpect(status().isOk())
|
.andExpect(MockMvcResultMatchers.jsonPath("$.total").isNumber())
|
.andExpect(MockMvcResultMatchers.jsonPath("$.items").isArray());
|
}
|
|
@Test
|
public void changeUserPassword() throws Exception {
|
String email = "13129982604@qq.com";
|
String username = "pedro大大";
|
String nickname = "pedro大大";
|
UserDO user = UserDO.builder().username(username).nickname(nickname).email(email).build();
|
userMapper.insert(user);
|
|
|
String name = "千里之外";
|
String info = "千里之外是个啥";
|
GroupDO group = GroupDO.builder().name(name).info(info).build();
|
groupMapper.insert(group);
|
|
userGroupMapper.insert(new UserGroupDO(user.getId(), group.getId()));
|
userIdentityService.createUsernamePasswordIdentity(user.getId(), username, "123456");
|
|
String newPassword = "111111111";
|
|
ResetPasswordDTO dto = new ResetPasswordDTO();
|
dto.setNewPassword(newPassword);
|
dto.setConfirmPassword(newPassword);
|
|
ObjectMapper mapper = new ObjectMapper();
|
mapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE);
|
String content = mapper.writeValueAsString(dto);
|
|
mvc.perform(put(String.format("/cms/admin/user/%s/password", user.getId()))
|
.contentType(MediaType.APPLICATION_JSON).content(content))
|
.andDo(print())
|
.andExpect(status().isOk())
|
.andExpect(MockMvcResultMatchers.jsonPath("$.message").value("密码修改成功"));
|
|
boolean b = userIdentityService.verifyUsernamePassword(user.getId(), username, newPassword);
|
assertTrue(b);
|
}
|
|
@Test
|
public void deleteUser() throws Exception {
|
String email = "13129982604@qq.com";
|
String username = "pedro大大";
|
String nickname = "pedro大大";
|
UserDO user = UserDO.builder().username(username).nickname(nickname).email(email).build();
|
userMapper.insert(user);
|
|
|
String name = "千里之外";
|
String info = "千里之外是个啥";
|
GroupDO group = GroupDO.builder().name(name).info(info).build();
|
groupMapper.insert(group);
|
|
userGroupMapper.insert(new UserGroupDO(user.getId(), group.getId()));
|
|
mvc.perform(delete("/cms/admin/user/" + user.getId())
|
.contentType(MediaType.APPLICATION_JSON))
|
.andDo(print())
|
.andExpect(status().isOk())
|
.andExpect(MockMvcResultMatchers.jsonPath("$.message").value("删除用户成功"));
|
|
UserDO hit = userMapper.selectById(user.getId());
|
assertNull(hit);
|
}
|
|
@Test
|
public void updateUser() throws Exception {
|
String email = "13129982604@qq.com";
|
String username = "pedro大大";
|
String nickname = "pedro大大";
|
UserDO user = UserDO.builder().username(username).nickname(nickname).email(email).build();
|
userMapper.insert(user);
|
|
|
String name = "千里之外";
|
String info = "千里之外是个啥";
|
GroupDO group = GroupDO.builder().name(name).info(info).build();
|
groupMapper.insert(group);
|
|
UpdateUserInfoDTO dto = new UpdateUserInfoDTO();
|
dto.setGroupIds(Collections.singletonList(group.getId()));
|
|
ObjectMapper mapper = new ObjectMapper();
|
mapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE);
|
String content = mapper.writeValueAsString(dto);
|
|
mvc.perform(put("/cms/admin/user/" + user.getId())
|
.contentType(MediaType.APPLICATION_JSON).content(content))
|
.andDo(print())
|
.andExpect(status().isOk())
|
.andExpect(MockMvcResultMatchers.jsonPath("$.message").value("更新用户成功"));
|
}
|
|
@Test
|
public void getGroups() throws Exception {
|
String name = "千里之外";
|
String info = "千里之外是个啥";
|
GroupDO group = GroupDO.builder().name(name).info(info).build();
|
groupMapper.insert(group);
|
|
String module = "信息";
|
String permissionName = "查看lin的信息";
|
|
PermissionDO permission = PermissionDO.builder().name(permissionName).module(module).build();
|
permissionMapper.insert(permission);
|
|
groupPermissionMapper.insert(new GroupPermissionDO(group.getId(), permission.getId()));
|
|
mvc.perform(get("/cms/admin/group")
|
.contentType(MediaType.APPLICATION_JSON))
|
.andDo(print())
|
.andExpect(status().isOk())
|
.andExpect(MockMvcResultMatchers.jsonPath("$.total").isNotEmpty())
|
.andExpect(MockMvcResultMatchers.jsonPath("$.items").isArray());
|
}
|
|
@Test
|
public void getAllGroup() throws Exception {
|
String name = "千里之外";
|
String info = "千里之外是个啥";
|
GroupDO group = GroupDO.builder().name(name).info(info).build();
|
groupMapper.insert(group);
|
|
String module = "信息";
|
String permissionName = "查看lin的信息";
|
|
PermissionDO permission = PermissionDO.builder().name(permissionName).module(module).build();
|
permissionMapper.insert(permission);
|
|
groupPermissionMapper.insert(new GroupPermissionDO(group.getId(), permission.getId()));
|
|
mvc.perform(get("/cms/admin/group/all")
|
.contentType(MediaType.APPLICATION_JSON))
|
.andDo(print())
|
.andExpect(status().isOk())
|
.andExpect(MockMvcResultMatchers.jsonPath("$").isArray());
|
}
|
|
@Test
|
public void getGroup() throws Exception {
|
String name = "千里之外";
|
String info = "千里之外是个啥";
|
GroupDO group = GroupDO.builder().name(name).info(info).build();
|
groupMapper.insert(group);
|
|
String module = "信息";
|
String permissionName = "查看lin的信息";
|
|
PermissionDO permission = PermissionDO.builder().name(permissionName).module(module).build();
|
permissionMapper.insert(permission);
|
|
groupPermissionMapper.insert(new GroupPermissionDO(group.getId(), permission.getId()));
|
|
mvc.perform(get("/cms/admin/group/" + group.getId())
|
.contentType(MediaType.APPLICATION_JSON))
|
.andDo(print())
|
.andExpect(status().isOk())
|
.andExpect(MockMvcResultMatchers.jsonPath("$.name").value(name));
|
}
|
|
@Test
|
public void createGroup() throws Exception {
|
NewGroupDTO dto = new NewGroupDTO();
|
dto.setName("flink");
|
dto.setInfo("flink is a finger");
|
|
String module = "信息";
|
String permissionName = "查看lin的信息";
|
PermissionDO permission = PermissionDO.builder().name(permissionName).module(module).build();
|
permissionMapper.insert(permission);
|
|
dto.setPermissionIds(Collections.singletonList(permission.getId()));
|
|
ObjectMapper mapper = new ObjectMapper();
|
mapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE);
|
String content = mapper.writeValueAsString(dto);
|
|
mvc.perform(post("/cms/admin/group/")
|
.contentType(MediaType.APPLICATION_JSON).content(content))
|
.andDo(print())
|
.andExpect(status().isCreated())
|
.andExpect(MockMvcResultMatchers.jsonPath("$.message").value("新建分组成功"));
|
}
|
|
@Test
|
public void updateGroup() throws Exception {
|
String name = "千里之外";
|
String info = "千里之外是个啥";
|
GroupDO group = GroupDO.builder().name(name).info(info).build();
|
groupMapper.insert(group);
|
|
String module = "信息";
|
String permissionName = "查看lin的信息";
|
|
PermissionDO permission = PermissionDO.builder().name(permissionName).module(module).build();
|
permissionMapper.insert(permission);
|
|
groupPermissionMapper.insert(new GroupPermissionDO(group.getId(), permission.getId()));
|
|
UpdateGroupDTO dto = new UpdateGroupDTO();
|
dto.setName("storm");
|
dto.setInfo("flink is a finger");
|
|
ObjectMapper mapper = new ObjectMapper();
|
mapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE);
|
String content = mapper.writeValueAsString(dto);
|
|
mvc.perform(put("/cms/admin/group/" + group.getId())
|
.contentType(MediaType.APPLICATION_JSON).content(content))
|
.andDo(print())
|
.andExpect(status().isOk())
|
.andExpect(MockMvcResultMatchers.jsonPath("$.message").value("更新分组成功"));
|
|
GroupDO hit = groupMapper.selectById(group.getId());
|
assertEquals(hit.getName(), "storm");
|
}
|
|
@Test
|
public void deleteGroup() throws Exception {
|
String name = "千里之外";
|
String info = "千里之外是个啥";
|
GroupDO root = GroupDO.builder().name("root").info(info).build();
|
GroupDO guest = GroupDO.builder().name("guest").info(info).build();
|
GroupDO group = GroupDO.builder().name(name).info(info).build();
|
groupMapper.insert(root);
|
groupMapper.insert(guest);
|
groupMapper.insert(group);
|
|
mvc.perform(delete("/cms/admin/group/" + group.getId())
|
.contentType(MediaType.APPLICATION_JSON))
|
.andDo(print())
|
.andExpect(status().isOk())
|
.andExpect(MockMvcResultMatchers.jsonPath("$.message").value("删除分组成功"));
|
GroupDO hit = groupMapper.selectById(group.getId());
|
assertNull(hit);
|
}
|
|
@Test
|
public void dispatchPermission() throws Exception {
|
String name = "千里之外";
|
String info = "千里之外是个啥";
|
GroupDO group = GroupDO.builder().name(name).info(info).build();
|
groupMapper.insert(group);
|
|
String module = "信息";
|
String permissionName = "查看lin的信息";
|
|
PermissionDO permission = PermissionDO.builder().name(permissionName).module(module).build();
|
permissionMapper.insert(permission);
|
|
DispatchPermissionDTO dto = new DispatchPermissionDTO();
|
dto.setGroupId(group.getId());
|
dto.setPermissionId(permission.getId());
|
|
ObjectMapper mapper = new ObjectMapper();
|
mapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE);
|
String content = mapper.writeValueAsString(dto);
|
|
mvc.perform(post("/cms/admin/permission/dispatch")
|
.contentType(MediaType.APPLICATION_JSON).content(content))
|
.andDo(print())
|
.andExpect(status().isCreated())
|
.andExpect(MockMvcResultMatchers.jsonPath("$.message").value("添加权限成功"));
|
}
|
|
@Test
|
public void dispatchPermissions() throws Exception {
|
String name = "千里之外";
|
String info = "千里之外是个啥";
|
GroupDO group = GroupDO.builder().name(name).info(info).build();
|
groupMapper.insert(group);
|
|
String module = "信息";
|
String permissionName = "查看lin的信息";
|
PermissionDO permission = PermissionDO.builder().name(permissionName).module(module).build();
|
permissionMapper.insert(permission);
|
String permissionName1 = "查看pedro信息";
|
PermissionDO permission1 = PermissionDO.builder().name(permissionName1).module(module).build();
|
permissionMapper.insert(permission1);
|
|
DispatchPermissionsDTO dto = new DispatchPermissionsDTO();
|
dto.setGroupId(group.getId());
|
dto.setPermissionIds(Arrays.asList(permission.getId(), permission1.getId()));
|
|
ObjectMapper mapper = new ObjectMapper();
|
mapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE);
|
String content = mapper.writeValueAsString(dto);
|
|
mvc.perform(post("/cms/admin/permission/dispatch/batch")
|
.contentType(MediaType.APPLICATION_JSON).content(content))
|
.andDo(print())
|
.andExpect(status().isCreated())
|
.andExpect(MockMvcResultMatchers.jsonPath("$.message").value("添加权限成功"));
|
}
|
|
@Test
|
public void removePermissions() throws Exception {
|
String name = "千里之外";
|
String info = "千里之外是个啥";
|
GroupDO group = GroupDO.builder().name(name).info(info).build();
|
groupMapper.insert(group);
|
|
String module = "信息";
|
String permissionName = "查看lin的信息";
|
PermissionDO permission = PermissionDO.builder().name(permissionName).module(module).build();
|
permissionMapper.insert(permission);
|
String permissionName1 = "查看pedro信息";
|
PermissionDO permission1 = PermissionDO.builder().name(permissionName1).module(module).build();
|
permissionMapper.insert(permission1);
|
|
groupPermissionMapper.insert(new GroupPermissionDO(group.getId(), permission.getId()));
|
groupPermissionMapper.insert(new GroupPermissionDO(group.getId(), permission1.getId()));
|
|
RemovePermissionsDTO dto = new RemovePermissionsDTO();
|
dto.setGroupId(group.getId());
|
dto.setPermissionIds(Collections.singletonList(permission1.getId()));
|
|
ObjectMapper mapper = new ObjectMapper();
|
mapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE);
|
String content = mapper.writeValueAsString(dto);
|
|
mvc.perform(post("/cms/admin/permission/remove")
|
.contentType(MediaType.APPLICATION_JSON).content(content))
|
.andDo(print())
|
.andExpect(status().isOk())
|
.andExpect(MockMvcResultMatchers.jsonPath("$.message").value("删除权限成功"));
|
}
|
}
|