调整CategoryController的测试类

This commit is contained in:
禾几海
2020-07-24 20:06:01 +08:00
parent c7016dcf5f
commit 883a78e872

View File

@@ -2,51 +2,34 @@ package cn.celess.blog.controller;
import cn.celess.blog.BaseTest;
import cn.celess.blog.entity.Category;
import cn.celess.blog.entity.Response;
import cn.celess.blog.entity.model.CategoryModel;
import cn.celess.blog.entity.model.PageData;
import cn.celess.blog.mapper.CategoryMapper;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import com.fasterxml.jackson.core.type.TypeReference;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.UUID;
import static org.junit.Assert.*;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import static cn.celess.blog.enmu.ResponseEnum.*;
public class CategoryControllerTest extends BaseTest {
@Autowired
CategoryMapper categoryMapper;
private static final TypeReference<?> CATEGORY_MODEL_TYPE = new TypeReference<Response<CategoryModel>>() {
};
private static final TypeReference<?> CATEGORY_MODEL_PAGE_TYPE = new TypeReference<Response<PageData<CategoryModel>>>() {
};
@Test
public void addOne() throws Exception {
String categoryName = randomStr(4);
System.out.println("categoryName: ==> " + categoryName);
// 未登录
mockMvc.perform(post("/admin/category/create?name=" + categoryName)).andExpect(status().isOk())
.andDo(result -> {
assertEquals(HAVE_NOT_LOG_IN.getCode(), JSONObject.fromObject(result.getResponse().getContentAsString()).getInt(Code));
});
// User权限
String token = userLogin();
mockMvc.perform(post("/admin/category/create?name=" + categoryName)
.header("Authorization", token))
.andExpect(status().isOk())
.andDo(result -> {
assertEquals(PERMISSION_ERROR.getCode(), JSONObject.fromObject(result.getResponse().getContentAsString()).getInt(Code));
});
// Admin权限
token = adminLogin();
mockMvc.perform(post("/admin/category/create?name=" + categoryName)
.header("Authorization", token))
.andExpect(status().isOk())
.andDo(result -> {
JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString());
assertEquals(SUCCESS.getCode(), object.getInt(Code));
CategoryModel category = (CategoryModel) JSONObject.toBean(object.getJSONObject(Result), CategoryModel.class);
getMockData(post("/admin/category/create?name=" + categoryName), adminLogin()).andDo(result -> {
Response<CategoryModel> response = getResponse(result, CATEGORY_MODEL_TYPE);
assertEquals(SUCCESS.getCode(), response.getCode());
CategoryModel category = response.getResult();
assertEquals(categoryName, category.getName());
assertNotNull(category.getId());
assertNotEquals(0, category.getArticles());
@@ -56,28 +39,10 @@ public class CategoryControllerTest extends BaseTest {
@Test
public void deleteOne() throws Exception {
Category category = categoryMapper.getLastestCategory();
// 未登录
mockMvc.perform(delete("/admin/category/del?id=" + category.getId())).andExpect(status().isOk())
.andDo(result -> {
assertEquals(HAVE_NOT_LOG_IN.getCode(), JSONObject.fromObject(result.getResponse().getContentAsString()).getInt(Code));
});
// User权限
String token = userLogin();
mockMvc.perform(delete("/admin/category/del?id=" + category.getId())
.header("Authorization", token))
.andExpect(status().isOk())
.andDo(result -> {
assertEquals(PERMISSION_ERROR.getCode(), JSONObject.fromObject(result.getResponse().getContentAsString()).getInt(Code));
});
// Admin权限
token = adminLogin();
mockMvc.perform(delete("/admin/category/del?id=" + category.getId())
.header("Authorization", token))
.andExpect(status().isOk())
.andDo(result -> {
JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString());
assertEquals(SUCCESS.getCode(), object.getInt(Code));
assertTrue(object.getBoolean(Result));
getMockData(delete("/admin/category/del?id=" + category.getId()), adminLogin()).andDo(result -> {
Response<Boolean> response = getResponse(result, BOOLEAN_TYPE);
assertEquals(SUCCESS.getCode(), response.getCode());
assertTrue(response.getResult());
});
}
@@ -85,28 +50,11 @@ public class CategoryControllerTest extends BaseTest {
public void updateOne() throws Exception {
Category category = categoryMapper.getLastestCategory();
String name = randomStr(4);
// 未登录
mockMvc.perform(put("/admin/category/update?id=" + category.getId() + "&name=" + name)).andExpect(status().isOk())
.andDo(result -> {
assertEquals(HAVE_NOT_LOG_IN.getCode(), JSONObject.fromObject(result.getResponse().getContentAsString()).getInt(Code));
});
// User权限
String token = userLogin();
mockMvc.perform(put("/admin/category/update?id=" + category.getId() + "&name=" + name)
.header("Authorization", token))
.andExpect(status().isOk())
.andDo(result -> {
assertEquals(PERMISSION_ERROR.getCode(), JSONObject.fromObject(result.getResponse().getContentAsString()).getInt(Code));
});
// Admin权限
token = adminLogin();
mockMvc.perform(put("/admin/category/update?id=" + category.getId() + "&name=" + name)
.header("Authorization", token))
.andExpect(status().isOk())
.andDo(result -> {
JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString());
assertEquals(SUCCESS.getCode(), object.getInt(Code));
CategoryModel c = (CategoryModel) JSONObject.toBean(object.getJSONObject(Result), CategoryModel.class);
getMockData(put("/admin/category/update?id=" + category.getId() + "&name=" + name), adminLogin()).andDo(result -> {
// Response<CategoryModel> response = mapper.readValue(result.getResponse().getContentAsString(), new ResponseType<Response<CategoryModel>>());
Response<CategoryModel> response = getResponse(result, CATEGORY_MODEL_TYPE);
assertEquals(SUCCESS.getCode(), response.getCode());
CategoryModel c = response.getResult();
assertEquals(name, c.getName());
assertNotEquals(0, c.getArticles());
assertNotNull(c.getId());
@@ -115,14 +63,11 @@ public class CategoryControllerTest extends BaseTest {
@Test
public void getPage() throws Exception {
mockMvc.perform(get("/categories")).andExpect(status().isOk())
.andDo(result -> {
JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString());
assertEquals(SUCCESS.getCode(), object.getInt(Code));
JSONArray jsonArray = object.getJSONObject(Result).getJSONArray("list");
assertNotNull(jsonArray);
jsonArray.forEach(o -> {
CategoryModel c = (CategoryModel) JSONObject.toBean(JSONObject.fromObject(o), CategoryModel.class);
getMockData(get("/categories")).andDo(result -> {
Response<PageData<CategoryModel>> response = getResponse(result, CATEGORY_MODEL_PAGE_TYPE);
assertEquals(SUCCESS.getCode(), response.getCode());
assertNotNull(response.getResult());
response.getResult().getList().forEach(c -> {
assertNotNull(c.getName());
assertNotNull(c.getId());
assertNotEquals(0, c.getArticles());