From 883a78e872dca03916febbb0d392091af6482899 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A6=BE=E5=87=A0=E6=B5=B7?= Date: Fri, 24 Jul 2020 20:06:01 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4CategoryController=E7=9A=84?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/CategoryControllerTest.java | 133 +++++------------- 1 file changed, 39 insertions(+), 94 deletions(-) diff --git a/src/test/java/cn/celess/blog/controller/CategoryControllerTest.java b/src/test/java/cn/celess/blog/controller/CategoryControllerTest.java index 1615756..45317e5 100644 --- a/src/test/java/cn/celess/blog/controller/CategoryControllerTest.java +++ b/src/test/java/cn/celess/blog/controller/CategoryControllerTest.java @@ -2,132 +2,77 @@ 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>() { + }; + private static final TypeReference CATEGORY_MODEL_PAGE_TYPE = new TypeReference>>() { + }; @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); - assertEquals(categoryName, category.getName()); - assertNotNull(category.getId()); - assertNotEquals(0, category.getArticles()); - }); + getMockData(post("/admin/category/create?name=" + categoryName), adminLogin()).andDo(result -> { + Response 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()); + }); } @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 response = getResponse(result, BOOLEAN_TYPE); + assertEquals(SUCCESS.getCode(), response.getCode()); + assertTrue(response.getResult()); + }); } @Test 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); - assertEquals(name, c.getName()); - assertNotEquals(0, c.getArticles()); - assertNotNull(c.getId()); - }); + getMockData(put("/admin/category/update?id=" + category.getId() + "&name=" + name), adminLogin()).andDo(result -> { + // Response response = mapper.readValue(result.getResponse().getContentAsString(), new ResponseType>()); + Response 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()); + }); } @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); - assertNotNull(c.getName()); - assertNotNull(c.getId()); - assertNotEquals(0, c.getArticles()); - }); - }); + getMockData(get("/categories")).andDo(result -> { + Response> 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()); + }); + }); } } \ No newline at end of file