From b7f26cbfdb57c28879af5be0d1331de53eb24867 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 00:21:55 +0800 Subject: [PATCH 01/32] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E5=9F=BA=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/test/java/cn/celess/blog/BaseTest.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/test/java/cn/celess/blog/BaseTest.java b/src/test/java/cn/celess/blog/BaseTest.java index 50bcad4..f5b1a5f 100644 --- a/src/test/java/cn/celess/blog/BaseTest.java +++ b/src/test/java/cn/celess/blog/BaseTest.java @@ -130,6 +130,7 @@ public class BaseTest { // 测试登录 assertNotNull(userLogin()); assertNotNull(adminLogin()); + assertNotEquals(userLogin(), adminLogin()); try { // 测试getMockData方法 assertNotNull(getMockData(get("/headerInfo"))); @@ -141,13 +142,21 @@ public class BaseTest { /** * 产生指定长度的随机字符 * - * @param len - * @return + * @param len len + * @return str */ protected String randomStr(int len) { return UUID.randomUUID().toString().replaceAll("-", "").substring(0, len); } + /** + * 产生指定长度的随机字符 + * + * @return str + */ + protected String randomStr() { + return UUID.randomUUID().toString(); + } /** * 抽离的mock请求方法 From 7be1c9dfb0ea5608cf940dc70c995a602f36818a 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 00:22:40 +0800 Subject: [PATCH 02/32] =?UTF-8?q?=E8=B0=83=E6=95=B4ArticleController?= =?UTF-8?q?=E7=9A=84=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/ArticleControllerTest.java | 76 ++++++------------- 1 file changed, 24 insertions(+), 52 deletions(-) diff --git a/src/test/java/cn/celess/blog/controller/ArticleControllerTest.java b/src/test/java/cn/celess/blog/controller/ArticleControllerTest.java index fe0a7cb..6a0346e 100644 --- a/src/test/java/cn/celess/blog/controller/ArticleControllerTest.java +++ b/src/test/java/cn/celess/blog/controller/ArticleControllerTest.java @@ -9,10 +9,10 @@ import cn.celess.blog.entity.model.PageData; import cn.celess.blog.entity.request.ArticleReq; import cn.celess.blog.mapper.ArticleMapper; import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.ObjectMapper; import net.sf.json.JSONObject; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; @@ -31,7 +31,7 @@ public class ArticleControllerTest extends BaseTest { public void create() { ArticleReq articleReq = new ArticleReq(); // 应该正常通过 - articleReq.setTitle("test-" + UUID.randomUUID().toString()); + articleReq.setTitle("test-" + randomStr()); articleReq.setMdContent("# test title"); articleReq.setCategory("随笔"); String[] tagList = {"tag", "category"}; @@ -39,58 +39,30 @@ public class ArticleControllerTest extends BaseTest { articleReq.setOpen(true); articleReq.setType(true); articleReq.setUrl("http://xxxx.com"); - JSONObject jsonObject = JSONObject.fromObject(articleReq); + MockHttpServletRequestBuilder post = post("/admin/article/create"); try { - // 未登录 - mockMvc.perform(post("/admin/article/create") - .content(jsonObject.toString()) - .contentType("application/json")) - .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/article/create") - .content(jsonObject.toString()) - .contentType("application/json") - .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/article/create") - .content(jsonObject.toString()) - .contentType("application/json") - .header("Authorization", token)) - .andExpect(status().isOk()) - .andDo(result -> { - JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); - assertEquals(SUCCESS.getCode(), object.getInt(Code)); - ArticleModel articleModel = (ArticleModel) JSONObject.toBean(object.getJSONObject(Result), ArticleModel.class); - assertNotNull(articleModel.getId()); - assertNotNull(articleModel.getTitle()); - assertNotNull(articleModel.getSummary()); - assertNotNull(articleModel.getOriginal()); - assertNotNull(articleModel.getTags()); - assertNotNull(articleModel.getCategory()); - assertNotNull(articleModel.getPublishDateFormat()); - assertNotNull(articleModel.getMdContent()); - assertNotNull(articleModel.getPreArticle()); - assertNull(articleModel.getNextArticle()); - assertNotNull(articleModel.getOpen()); - assertNotNull(articleModel.getReadingNumber()); - assertNotNull(articleModel.getAuthor()); - assertNotNull(articleModel.getUrl()); - }); + getMockData(post, adminLogin(), articleReq).andDo(result -> { + Response response = mapper.readValue(result.getResponse().getContentAsString(), new TypeReference>() { + }); + assertEquals(SUCCESS.getCode(), response.getCode()); + assertNotNull(response.getResult()); + ArticleModel articleModel = response.getResult(); + assertNotNull(articleModel.getId()); + assertNotNull(articleModel.getTitle()); + assertNotNull(articleModel.getSummary()); + assertNotNull(articleModel.getOriginal()); + assertNotNull(articleModel.getTags()); + assertNotNull(articleModel.getCategory()); + assertNotNull(articleModel.getPublishDateFormat()); + assertNotNull(articleModel.getMdContent()); + assertNotNull(articleModel.getPreArticle()); + assertNull(articleModel.getNextArticle()); + assertNotNull(articleModel.getOpen()); + assertNotNull(articleModel.getReadingNumber()); + assertNotNull(articleModel.getAuthor()); + assertNotNull(articleModel.getUrl()); + }); } catch (Exception e) { e.printStackTrace(); } From d340ba821868c382fc377b0c47447716c2c8d03d 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 00:36:13 +0800 Subject: [PATCH 03/32] ... --- .../blog/controller/ArticleController.java | 15 ++++++-- .../controller/ArticleControllerTest.java | 37 ++++++------------- 2 files changed, 24 insertions(+), 28 deletions(-) diff --git a/src/main/java/cn/celess/blog/controller/ArticleController.java b/src/main/java/cn/celess/blog/controller/ArticleController.java index 7889fba..f11835e 100644 --- a/src/main/java/cn/celess/blog/controller/ArticleController.java +++ b/src/main/java/cn/celess/blog/controller/ArticleController.java @@ -9,6 +9,7 @@ import cn.celess.blog.service.ArticleService; import cn.celess.blog.util.RedisUserUtil; import cn.celess.blog.util.SitemapGenerateUtil; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; @@ -27,6 +28,8 @@ public class ArticleController { SitemapGenerateUtil sitemapGenerateUtil; @Autowired RedisUserUtil redisUserUtil; + @Value("${spring.profiles.active}") + private String activeModel; /** * 新建一篇文章 @@ -37,7 +40,9 @@ public class ArticleController { @PostMapping("/admin/article/create") public Response create(@RequestBody ArticleReq body) { ArticleModel articleModel = articleService.create(body); - sitemapGenerateUtil.createSitemap(); + if ("prod".equals(activeModel)) { + sitemapGenerateUtil.createSitemap(); + } return Response.success(articleModel); } @@ -50,7 +55,9 @@ public class ArticleController { @DeleteMapping("/admin/article/del") public Response delete(@RequestParam("articleID") long articleId) { boolean delete = articleService.delete(articleId); - sitemapGenerateUtil.createSitemap(); + if ("prod".equals(activeModel)) { + sitemapGenerateUtil.createSitemap(); + } return Response.success(delete); } @@ -63,7 +70,9 @@ public class ArticleController { @PutMapping("/admin/article/update") public Response update(@RequestBody ArticleReq body) { ArticleModel update = articleService.update(body); - sitemapGenerateUtil.createSitemap(); + if ("prod".equals(activeModel)) { + sitemapGenerateUtil.createSitemap(); + } return Response.success(update); } diff --git a/src/test/java/cn/celess/blog/controller/ArticleControllerTest.java b/src/test/java/cn/celess/blog/controller/ArticleControllerTest.java index 6a0346e..eddf17c 100644 --- a/src/test/java/cn/celess/blog/controller/ArticleControllerTest.java +++ b/src/test/java/cn/celess/blog/controller/ArticleControllerTest.java @@ -70,33 +70,20 @@ public class ArticleControllerTest extends BaseTest { @Test public void delete() { - Article article = articleMapper.getLastestArticle(); - + Article article; + do { + article = articleMapper.getLastestArticle(); + create(); + } while (article.isDeleted()); + assertFalse(article.isDeleted()); + MockHttpServletRequestBuilder delete = MockMvcRequestBuilders.delete("/admin/article/del?articleID=" + article.getId()); try { - // 未登录删除文章 - mockMvc.perform(MockMvcRequestBuilders.delete("/admin/article/del?articleID=" + article.getId()) - ).andDo(result -> { - assertEquals(HAVE_NOT_LOG_IN.getCode(), - JSONObject.fromObject(result.getResponse().getContentAsString()).getInt(Code) - ); + getMockData(delete, adminLogin()).andDo(result -> { + JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); + assertEquals(SUCCESS.getCode(), object.getInt(Code)); + // 断言删除成功 + assertTrue(object.getBoolean(Result)); }); - // user 权限删除文章 - String token = userLogin(); - mockMvc.perform(MockMvcRequestBuilders.delete("/admin/article/del?articleID=" + article.getId()) - .header("Authorization", token)) - .andDo(result -> assertEquals(PERMISSION_ERROR.getCode(), - JSONObject.fromObject(result.getResponse().getContentAsString()).getInt(Code)) - ); - // admin 权限删除文章 - token = adminLogin(); - mockMvc.perform(MockMvcRequestBuilders.delete("/admin/article/del?articleID=" + article.getId()) - .header("Authorization", token)) - .andDo(result -> { - JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); - assertEquals(SUCCESS.getCode(), object.getInt(Code)); - // 断言删除成功 - assertTrue(object.getBoolean(Result)); - }); } catch (Exception e) { e.printStackTrace(); } From aa3ee5db72edd8e567a91a5428b9684ac6d70729 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 00:46:46 +0800 Subject: [PATCH 04/32] ... --- .../controller/ArticleControllerTest.java | 46 +++++++++---------- 1 file changed, 22 insertions(+), 24 deletions(-) diff --git a/src/test/java/cn/celess/blog/controller/ArticleControllerTest.java b/src/test/java/cn/celess/blog/controller/ArticleControllerTest.java index eddf17c..8f4eac4 100644 --- a/src/test/java/cn/celess/blog/controller/ArticleControllerTest.java +++ b/src/test/java/cn/celess/blog/controller/ArticleControllerTest.java @@ -78,11 +78,14 @@ public class ArticleControllerTest extends BaseTest { assertFalse(article.isDeleted()); MockHttpServletRequestBuilder delete = MockMvcRequestBuilders.delete("/admin/article/del?articleID=" + article.getId()); try { + Article finalArticle = article; getMockData(delete, adminLogin()).andDo(result -> { - JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); - assertEquals(SUCCESS.getCode(), object.getInt(Code)); + Response response = mapper.readValue(result.getResponse().getContentAsString(), new TypeReference>() { + }); + assertEquals(SUCCESS.getCode(), response.getCode()); // 断言删除成功 - assertTrue(object.getBoolean(Result)); + assertTrue(response.getResult()); + assertTrue(articleMapper.isDeletedById(finalArticle.getId())); }); } catch (Exception e) { e.printStackTrace(); @@ -105,27 +108,22 @@ public class ArticleControllerTest extends BaseTest { articleReq.setTags(tagList); articleReq.setTitle("test-" + article.getTitle()); try { - // Admin 权限 - mockMvc.perform(put("/admin/article/update") - .content(JSONObject.fromObject(articleReq).toString()) - .contentType("application/json") - .header("Authorization", adminLogin())) - .andExpect(status().isOk()) - .andDo(result -> { - JSONObject jsonObject = JSONObject.fromObject(result.getResponse().getContentAsString()); - assertEquals(SUCCESS.getCode(), jsonObject.getInt(Code)); - ArticleModel a = (ArticleModel) JSONObject.toBean(jsonObject.getJSONObject(Result), ArticleModel.class); - assertEquals(articleReq.getCategory(), a.getCategory()); - assertEquals(articleReq.getUrl(), a.getUrl()); - assertEquals(articleReq.getMdContent(), a.getMdContent()); - assertEquals(articleReq.getTitle(), a.getTitle()); - assertEquals(articleReq.getType(), a.getOriginal()); - // Tag - List asList = a.getTags(); - assertEquals(3, asList.size()); - assertEquals(articleReq.getOpen(), a.getOpen()); - assertEquals(articleReq.getId(), a.getId()); - }); + getMockData(put("/admin/article/update"), adminLogin(),articleReq).andDo(result -> { + Response response = mapper.readValue(result.getResponse().getContentAsString(), new TypeReference>() { + }); + assertEquals(SUCCESS.getCode(), response.getCode()); + ArticleModel a = response.getResult(); + assertEquals(articleReq.getCategory(), a.getCategory()); + assertEquals(articleReq.getUrl(), a.getUrl()); + assertEquals(articleReq.getMdContent(), a.getMdContent()); + assertEquals(articleReq.getTitle(), a.getTitle()); + assertEquals(articleReq.getType(), a.getOriginal()); + // Tag + List asList = a.getTags(); + assertEquals(3, asList.size()); + assertEquals(articleReq.getOpen(), a.getOpen()); + assertEquals(articleReq.getId(), a.getId()); + }); } catch (Exception e) { e.printStackTrace(); } From 2f6253c1752362be21aae8dee885f04481a8cdab 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 13:48:50 +0800 Subject: [PATCH 05/32] =?UTF-8?q?=E6=8A=BD=E7=A6=BBjson=20->=20Response=20?= =?UTF-8?q?=E5=AF=B9=E8=B1=A1=E7=9A=84=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/test/java/cn/celess/blog/BaseTest.java | 34 +++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/src/test/java/cn/celess/blog/BaseTest.java b/src/test/java/cn/celess/blog/BaseTest.java index f5b1a5f..d1677cd 100644 --- a/src/test/java/cn/celess/blog/BaseTest.java +++ b/src/test/java/cn/celess/blog/BaseTest.java @@ -10,6 +10,8 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.http.MediaType; @@ -18,13 +20,15 @@ import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.context.web.WebAppConfiguration; import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.MvcResult; import org.springframework.test.web.servlet.ResultActions; import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder; -import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.springframework.web.context.WebApplicationContext; +import java.io.IOException; +import java.io.UnsupportedEncodingException; import java.util.UUID; import static cn.celess.blog.enmu.ResponseEnum.SUCCESS; @@ -44,6 +48,8 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. @ActiveProfiles("test") public class BaseTest { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + protected MockMvc mockMvc; protected final static String Code = "code"; protected final static String Result = "result"; @@ -120,8 +126,10 @@ public class BaseTest { assertNotNull(token); return token; } catch (Exception e) { + logger.error("测试登录错误"); e.printStackTrace(); } + assertNotNull(str); return null; } @@ -134,6 +142,7 @@ public class BaseTest { try { // 测试getMockData方法 assertNotNull(getMockData(get("/headerInfo"))); + getMockData((get("/headerInfo"))).andDo(result -> assertNotNull(getResponse(result))); } catch (Exception e) { e.printStackTrace(); } @@ -200,4 +209,27 @@ public class BaseTest { } return mockMvc.perform(builder).andExpect(status().isOk()); } + + protected Response getResponse(String json) { + Response response = null; + try { + response = mapper.readValue(json, new TypeReference>() { + }); + } catch (IOException e) { + logger.error("接续json Response对象错误,json:[{}]", json); + e.printStackTrace(); + } + assertNotNull(response); + return response; + } + + protected Response getResponse(MvcResult result) { + try { + return getResponse(result.getResponse().getContentAsString()); + } catch (UnsupportedEncodingException e) { + logger.error("接续json Response对象错误,result:[{}]", result); + e.printStackTrace(); + } + return null; + } } From 003f74f5f17109d51c2cc1183e0ba72c118274fe 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 13:49:18 +0800 Subject: [PATCH 06/32] =?UTF-8?q?=E8=B0=83=E6=95=B4ArticleController?= =?UTF-8?q?=E7=9A=84=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/ArticleControllerTest.java | 186 ++++++++---------- 1 file changed, 77 insertions(+), 109 deletions(-) diff --git a/src/test/java/cn/celess/blog/controller/ArticleControllerTest.java b/src/test/java/cn/celess/blog/controller/ArticleControllerTest.java index 8f4eac4..7ca4757 100644 --- a/src/test/java/cn/celess/blog/controller/ArticleControllerTest.java +++ b/src/test/java/cn/celess/blog/controller/ArticleControllerTest.java @@ -8,8 +8,6 @@ import cn.celess.blog.entity.model.ArticleModel; import cn.celess.blog.entity.model.PageData; import cn.celess.blog.entity.request.ArticleReq; import cn.celess.blog.mapper.ArticleMapper; -import com.fasterxml.jackson.core.type.TypeReference; -import net.sf.json.JSONObject; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder; @@ -20,7 +18,6 @@ import java.util.*; 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 ArticleControllerTest extends BaseTest { @@ -43,8 +40,7 @@ public class ArticleControllerTest extends BaseTest { try { getMockData(post, adminLogin(), articleReq).andDo(result -> { - Response response = mapper.readValue(result.getResponse().getContentAsString(), new TypeReference>() { - }); + Response response = getResponse(result); assertEquals(SUCCESS.getCode(), response.getCode()); assertNotNull(response.getResult()); ArticleModel articleModel = response.getResult(); @@ -80,8 +76,7 @@ public class ArticleControllerTest extends BaseTest { try { Article finalArticle = article; getMockData(delete, adminLogin()).andDo(result -> { - Response response = mapper.readValue(result.getResponse().getContentAsString(), new TypeReference>() { - }); + Response response = getResponse(result); assertEquals(SUCCESS.getCode(), response.getCode()); // 断言删除成功 assertTrue(response.getResult()); @@ -108,9 +103,8 @@ public class ArticleControllerTest extends BaseTest { articleReq.setTags(tagList); articleReq.setTitle("test-" + article.getTitle()); try { - getMockData(put("/admin/article/update"), adminLogin(),articleReq).andDo(result -> { - Response response = mapper.readValue(result.getResponse().getContentAsString(), new TypeReference>() { - }); + getMockData(put("/admin/article/update"), adminLogin(), articleReq).andDo(result -> { + Response response = getResponse(result); assertEquals(SUCCESS.getCode(), response.getCode()); ArticleModel a = response.getResult(); assertEquals(articleReq.getCategory(), a.getCategory()); @@ -133,43 +127,35 @@ public class ArticleControllerTest extends BaseTest { public void retrieveOneById() { try { long articleID = 3; - mockMvc.perform(MockMvcRequestBuilders.get("/article/articleID/" + articleID)) - .andExpect(status().is(200)); - mockMvc.perform(MockMvcRequestBuilders.get("/article/articleID/" + articleID + "?update=true")) - .andExpect(status().is(200)); + getMockData(MockMvcRequestBuilders.get("/article/articleID/" + articleID)); + getMockData(MockMvcRequestBuilders.get("/article/articleID/" + articleID + "?update=true")); // 文章不存在 - mockMvc.perform(MockMvcRequestBuilders.get("/article/articleID/-1")) - .andExpect(status().is(200)) - .andDo(result -> { - JSONObject jsonObject = JSONObject.fromObject(result.getResponse().getContentAsString()); - assertEquals(ARTICLE_NOT_EXIST.getCode(), jsonObject.getInt(Code)); - }); + getMockData(MockMvcRequestBuilders.get("/article/articleID/-1")) + .andDo(result -> assertEquals(ARTICLE_NOT_EXIST.getCode(), getResponse(result).getCode())); // 正常情况 - mockMvc.perform(MockMvcRequestBuilders.get("/article/articleID/" + articleID + "?update=false")) - .andExpect(status().is(200)) - .andDo(result -> { - JSONObject articleJson = JSONObject.fromObject(result.getResponse().getContentAsString()); - // 断言获取数据成功 - assertEquals(SUCCESS.getCode(), articleJson.getInt(Code)); - assertNotNull(articleJson.getJSONObject(Result)); + getMockData(MockMvcRequestBuilders.get("/article/articleID/" + articleID + "?update=false")).andDo(result -> { + Response response = getResponse(result); + // 断言获取数据成功 + assertEquals(SUCCESS.getCode(), response.getCode()); + assertNotNull(response.getResult()); - ArticleModel a = (ArticleModel) JSONObject.toBean(articleJson.getJSONObject(Result), ArticleModel.class); - assertNotNull(a.getTitle()); - assertNotNull(a.getId()); - assertNotNull(a.getSummary()); - assertNotNull(a.getMdContent()); - assertNotNull(a.getUrl()); - assertNotNull(a.getUpdateDateFormat()); - assertTrue(a.getPreArticle() != null || a.getNextArticle() != null); - assertNotNull(a.getReadingNumber()); - assertNotNull(a.getOriginal()); - assertNotNull(a.getPublishDateFormat()); - assertNotNull(a.getCategory()); - assertNotNull(a.getTags()); - assertNotNull(a.getAuthor()); - }); + ArticleModel a = response.getResult(); + assertNotNull(a.getTitle()); + assertNotNull(a.getId()); + assertNotNull(a.getSummary()); + assertNotNull(a.getMdContent()); + assertNotNull(a.getUrl()); + assertNotNull(a.getUpdateDateFormat()); + assertTrue(a.getPreArticle() != null || a.getNextArticle() != null); + assertNotNull(a.getReadingNumber()); + assertNotNull(a.getOriginal()); + assertNotNull(a.getPublishDateFormat()); + assertNotNull(a.getCategory()); + assertNotNull(a.getTags()); + assertNotNull(a.getAuthor()); + }); } catch (Exception e) { e.printStackTrace(); } @@ -179,39 +165,32 @@ public class ArticleControllerTest extends BaseTest { public void articles() { try { // 测试不带参数访问 - mockMvc.perform(MockMvcRequestBuilders.get("/articles")) - .andExpect(status().is(200)); - - mockMvc.perform(MockMvcRequestBuilders.get("/articles?page=1&count=5")) - .andExpect(status().is(200)) - .andDo(result -> { - JSONObject articlesJSON = JSONObject.fromObject(result.getResponse().getContentAsString()); - Response response = (Response) JSONObject.toBean(articlesJSON, Response.class); - // 断言获取数据成功 - assertEquals(SUCCESS.getCode(), response.getCode()); - // 结果集非空 - assertNotNull(response.getResult()); - // 判断pageInfo是否包装完全 - JSONObject resultJson = JSONObject.fromObject(response.getResult()); - PageData pageData = (PageData) JSONObject.toBean(resultJson, PageData.class); - assertNotEquals(0, pageData.getTotal()); - assertEquals(1, pageData.getPageNum()); - assertEquals(5, pageData.getPageSize()); - // 内容完整 - for (Object arc : pageData.getList()) { - ArticleModel a = (ArticleModel) JSONObject.toBean(JSONObject.fromObject(arc), ArticleModel.class); - assertNotNull(a.getTitle()); - assertNotNull(a.getId()); - assertNotNull(a.getSummary()); - assertNotNull(a.getOriginal()); - assertNotNull(a.getPublishDateFormat()); - assertNotNull(a.getCategory()); - assertNotNull(a.getTags()); - assertNotNull(a.getAuthor()); - assertNull(a.getOpen()); - assertNull(a.getMdContent()); - } - }); + getMockData(MockMvcRequestBuilders.get("/articles")); + getMockData(MockMvcRequestBuilders.get("/articles?page=1&count=5")).andDo(result -> { + Response> response = getResponse(result); + // 断言获取数据成功 + assertEquals(SUCCESS.getCode(), response.getCode()); + // 结果集非空 + assertNotNull(response.getResult()); + // 判断pageInfo是否包装完全 + PageData pageData = response.getResult(); + assertNotEquals(0, pageData.getTotal()); + assertEquals(1, pageData.getPageNum()); + assertEquals(5, pageData.getPageSize()); + // 内容完整 + for (ArticleModel a : pageData.getList()) { + assertNotNull(a.getTitle()); + assertNotNull(a.getId()); + assertNotNull(a.getSummary()); + assertNotNull(a.getOriginal()); + assertNotNull(a.getPublishDateFormat()); + assertNotNull(a.getCategory()); + assertNotNull(a.getTags()); + assertNotNull(a.getAuthor()); + assertNull(a.getOpen()); + assertNull(a.getMdContent()); + } + }); } catch (Exception e) { e.printStackTrace(); } @@ -221,19 +200,18 @@ public class ArticleControllerTest extends BaseTest { public void adminArticles() { try { getMockData(get("/admin/articles?page=1&count=10")).andExpect(result -> - assertEquals(HAVE_NOT_LOG_IN.getCode(), mapper.readValue(result.getResponse().getContentAsString(), Response.class).getCode()) + assertEquals(HAVE_NOT_LOG_IN.getCode(), getResponse(result).getCode()) ); // User权限登陆 getMockData(get("/admin/articles?page=1&count=10"), userLogin()).andDo(result -> - assertEquals(PERMISSION_ERROR.getCode(), mapper.readValue(result.getResponse().getContentAsString(), Response.class).getCode()) + assertEquals(PERMISSION_ERROR.getCode(), getResponse(result).getCode()) ); for (int i = 0; i < 2; i++) { // admin权限登陆 int finalI = i; getMockData(get("/admin/articles?page=1&count=10&deleted=" + (i == 1)), adminLogin()).andDo(result -> { - Response> response = mapper.readValue(result.getResponse().getContentAsString(), new TypeReference>>() { - }); + Response> response = getResponse(result); assertEquals(SUCCESS.getCode(), response.getCode()); assertNotNull(response.getResult()); // 判断pageInfo是否包装完全 @@ -266,27 +244,22 @@ public class ArticleControllerTest extends BaseTest { try { // 分类不存在 String categoryName = "NoSuchCategory"; - mockMvc.perform(MockMvcRequestBuilders.get("/articles/category/" + categoryName + "?page=1&count=10")) - .andExpect(status().is(200)) - .andDo(result -> { - assertEquals(CATEGORY_NOT_EXIST.getCode(), JSONObject.fromObject(result.getResponse().getContentAsString()).getInt(Code)); - }); + getMockData(MockMvcRequestBuilders.get("/articles/category/" + categoryName + "?page=1&count=10")) + .andDo(result -> assertEquals(CATEGORY_NOT_EXIST.getCode(), getResponse(result).getCode())); // 正常查询 categoryName = "linux"; - mockMvc.perform(MockMvcRequestBuilders.get("/articles/category/" + categoryName + "?page=1&count=10")) - .andExpect(status().is(200)) + getMockData(MockMvcRequestBuilders.get("/articles/category/" + categoryName + "?page=1&count=10")) .andDo(result -> { - JSONObject jsonObject = JSONObject.fromObject(result.getResponse().getContentAsString()); - assertEquals(SUCCESS.getCode(), jsonObject.getInt(Code)); - PageData pageData = (PageData) JSONObject.toBean(jsonObject.getJSONObject(Result), PageData.class); + Response> response = getResponse(result); + assertEquals(SUCCESS.getCode(), response.getCode()); + PageData pageData = response.getResult(); assertNotEquals(0, pageData.getTotal()); assertEquals(1, pageData.getPageNum()); assertEquals(10, pageData.getPageSize()); - for (Object arc : pageData.getList()) { - JSONObject jsonObject1 = JSONObject.fromObject(arc); - assertNotEquals(0, jsonObject1.getInt("id")); - assertNotNull(jsonObject1.getString("title")); - assertNotNull(jsonObject1.getString("summary")); + for (ArticleModel arc : pageData.getList()) { + assertNotEquals(0, arc.getId().longValue()); + assertNotNull(arc.getTitle()); + assertNotNull(arc.getSummary()); } }); } catch (Exception e) { @@ -299,28 +272,23 @@ public class ArticleControllerTest extends BaseTest { try { // 分类不存在 String tagName = "NoSuchTag"; - mockMvc.perform(MockMvcRequestBuilders.get("/articles/tag/" + tagName + "?page=1&count=10")) - .andExpect(status().is(200)) - .andDo(result -> { - assertEquals(TAG_NOT_EXIST.getCode(), JSONObject.fromObject(result.getResponse().getContentAsString()).getInt(Code)); - }); + getMockData(MockMvcRequestBuilders.get("/articles/tag/" + tagName + "?page=1&count=10")) + .andDo(result -> assertEquals(TAG_NOT_EXIST.getCode(), getResponse(result).getCode())); // 正常查询 tagName = "linux"; - mockMvc.perform(MockMvcRequestBuilders.get("/articles/tag/" + tagName + "?page=1&count=10")) - .andExpect(status().is(200)) + getMockData(MockMvcRequestBuilders.get("/articles/tag/" + tagName + "?page=1&count=10")) .andDo(result -> { - JSONObject jsonObject = JSONObject.fromObject(result.getResponse().getContentAsString()); - assertEquals(SUCCESS.getCode(), jsonObject.getInt(Code)); - PageData pageData = (PageData) JSONObject.toBean(jsonObject.getJSONObject(Result), PageData.class); + Response> response = getResponse(result); + assertEquals(SUCCESS.getCode(), response.getCode()); + PageData pageData = response.getResult(); assertNotEquals(0, pageData.getTotal()); assertEquals(1, pageData.getPageNum()); assertEquals(10, pageData.getPageSize()); - for (Object arc : pageData.getList()) { - JSONObject jsonObject1 = JSONObject.fromObject(arc); - assertNotEquals(0, jsonObject1.getInt("id")); - assertNotNull(jsonObject1.getString("title")); - assertNotNull(jsonObject1.getString("summary")); + for (ArticleModel arc : pageData.getList()) { + assertNotEquals(0, arc.getId().longValue()); + assertNotNull(arc.getTitle()); + assertNotNull(arc.getSummary()); } }); } catch (Exception e) { From f1d3a7991966d1addf11d70bd4af804f658c2d99 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 13:51:44 +0800 Subject: [PATCH 07/32] ... --- src/test/java/cn/celess/blog/BaseTest.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/test/java/cn/celess/blog/BaseTest.java b/src/test/java/cn/celess/blog/BaseTest.java index d1677cd..e9cd8ce 100644 --- a/src/test/java/cn/celess/blog/BaseTest.java +++ b/src/test/java/cn/celess/blog/BaseTest.java @@ -210,6 +210,12 @@ public class BaseTest { return mockMvc.perform(builder).andExpect(status().isOk()); } + /** + * 根据json 信息反序列化成Response对象 + * @param json json + * @param 泛型 + * @return Response对象 + */ protected Response getResponse(String json) { Response response = null; try { @@ -223,6 +229,12 @@ public class BaseTest { return response; } + /** + * 根据json 信息反序列化成Response对象 + * @param result MvcResult + * @param 泛型 + * @return Response对象 + */ protected Response getResponse(MvcResult result) { try { return getResponse(result.getResponse().getContentAsString()); From 66b2b26b15240d001b3ef48c8fe4140c21582e1e 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 16:46:35 +0800 Subject: [PATCH 08/32] =?UTF-8?q?=E6=B3=A8=E9=94=80=E5=AF=BC=E8=87=B4token?= =?UTF-8?q?=E6=97=A0=E6=95=88=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/test/java/cn/celess/blog/BaseTest.java | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/src/test/java/cn/celess/blog/BaseTest.java b/src/test/java/cn/celess/blog/BaseTest.java index e9cd8ce..d88c97a 100644 --- a/src/test/java/cn/celess/blog/BaseTest.java +++ b/src/test/java/cn/celess/blog/BaseTest.java @@ -53,8 +53,6 @@ public class BaseTest { protected MockMvc mockMvc; protected final static String Code = "code"; protected final static String Result = "result"; - private static String userToken = null; - private static String adminToken = null; /** * jackson 序列化/反序列化Json */ @@ -82,14 +80,13 @@ public class BaseTest { * @return token */ protected String adminLogin() { - if (adminToken != null) return adminToken; LoginReq req = new LoginReq(); req.setEmail("a@celess.cn"); req.setPassword("123456789"); - req.setIsRememberMe(false); - adminToken = login(req); - assertNotNull(adminToken); - return adminToken; + req.setIsRememberMe(true); + String token = login(req); + assertNotNull(token); + return token; } /** @@ -98,14 +95,13 @@ public class BaseTest { * @return token */ protected String userLogin() { - if (userToken != null) return userToken; LoginReq req = new LoginReq(); req.setEmail("zh56462271@qq.com"); req.setPassword("123456789"); - req.setIsRememberMe(false); - userToken = login(req); - assertNotNull(userToken); - return userToken; + req.setIsRememberMe(true); + String token = login(req); + assertNotNull(token); + return token; } /** From c7016dcf5f4d4a20ae1a84f3c4ce99c7a750eb02 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:05:17 +0800 Subject: [PATCH 09/32] =?UTF-8?q?=E4=BF=AE=E6=94=B9getResponse=E7=9A=84?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/test/java/cn/celess/blog/BaseTest.java | 42 +++++++++++++------ .../controller/ArticleControllerTest.java | 32 ++++++++------ 2 files changed, 49 insertions(+), 25 deletions(-) diff --git a/src/test/java/cn/celess/blog/BaseTest.java b/src/test/java/cn/celess/blog/BaseTest.java index d88c97a..e7c14fe 100644 --- a/src/test/java/cn/celess/blog/BaseTest.java +++ b/src/test/java/cn/celess/blog/BaseTest.java @@ -48,6 +48,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. @ActiveProfiles("test") public class BaseTest { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); protected MockMvc mockMvc; @@ -57,7 +58,12 @@ public class BaseTest { * jackson 序列化/反序列化Json */ protected final ObjectMapper mapper = new ObjectMapper(); - + protected static final TypeReference BOOLEAN_TYPE = new TypeReference>() { + }; + protected static final TypeReference STRING_TYPE = new TypeReference>() { + }; + protected static final TypeReference OBJECT_TYPE = new TypeReference>() { + }; @Autowired private WebApplicationContext wac; protected MockHttpSession session; @@ -206,19 +212,29 @@ public class BaseTest { return mockMvc.perform(builder).andExpect(status().isOk()); } + + protected Response getResponse(String json) { + return getResponse(json, OBJECT_TYPE); + } + + protected Response getResponse(MvcResult result) { + return getResponse(result, OBJECT_TYPE); + } + /** - * 根据json 信息反序列化成Response对象 + * 根据json 信息反序列化成Response对象 + * * @param json json - * @param 泛型 + * @param 泛型 * @return Response对象 */ - protected Response getResponse(String json) { + protected Response getResponse(String json, TypeReference responseType) { Response response = null; + System.out.println(responseType.getType()); try { - response = mapper.readValue(json, new TypeReference>() { - }); + response = mapper.readValue(json, responseType); } catch (IOException e) { - logger.error("接续json Response对象错误,json:[{}]", json); + logger.error("解析json Response对象错误,json:[{}]", json); e.printStackTrace(); } assertNotNull(response); @@ -226,18 +242,20 @@ public class BaseTest { } /** - * 根据json 信息反序列化成Response对象 + * 根据json 信息反序列化成Response对象 + * * @param result MvcResult - * @param 泛型 + * @param 泛型 * @return Response对象 */ - protected Response getResponse(MvcResult result) { + protected Response getResponse(MvcResult result, TypeReference responseType) { try { - return getResponse(result.getResponse().getContentAsString()); + return getResponse(result.getResponse().getContentAsString(), responseType); } catch (UnsupportedEncodingException e) { - logger.error("接续json Response对象错误,result:[{}]", result); + logger.error("解析json Response对象错误,result:[{}]", result); e.printStackTrace(); } return null; } + } diff --git a/src/test/java/cn/celess/blog/controller/ArticleControllerTest.java b/src/test/java/cn/celess/blog/controller/ArticleControllerTest.java index 7ca4757..572342e 100644 --- a/src/test/java/cn/celess/blog/controller/ArticleControllerTest.java +++ b/src/test/java/cn/celess/blog/controller/ArticleControllerTest.java @@ -5,9 +5,11 @@ import cn.celess.blog.entity.Article; import cn.celess.blog.entity.Response; import cn.celess.blog.entity.Tag; import cn.celess.blog.entity.model.ArticleModel; +import cn.celess.blog.entity.model.CategoryModel; import cn.celess.blog.entity.model.PageData; import cn.celess.blog.entity.request.ArticleReq; import cn.celess.blog.mapper.ArticleMapper; +import com.fasterxml.jackson.core.type.TypeReference; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder; @@ -23,6 +25,10 @@ import static cn.celess.blog.enmu.ResponseEnum.*; public class ArticleControllerTest extends BaseTest { @Autowired ArticleMapper articleMapper; + private static final TypeReference ARTICLE_MODEL_TYPE = new TypeReference>() { + }; + private static final TypeReference ARTICLE_MODEL_PAGE_TYPE = new TypeReference>>() { + }; @Test public void create() { @@ -40,7 +46,7 @@ public class ArticleControllerTest extends BaseTest { try { getMockData(post, adminLogin(), articleReq).andDo(result -> { - Response response = getResponse(result); + Response response = getResponse(result, ARTICLE_MODEL_TYPE); assertEquals(SUCCESS.getCode(), response.getCode()); assertNotNull(response.getResult()); ArticleModel articleModel = response.getResult(); @@ -76,7 +82,7 @@ public class ArticleControllerTest extends BaseTest { try { Article finalArticle = article; getMockData(delete, adminLogin()).andDo(result -> { - Response response = getResponse(result); + Response response = getResponse(result, BOOLEAN_TYPE); assertEquals(SUCCESS.getCode(), response.getCode()); // 断言删除成功 assertTrue(response.getResult()); @@ -104,7 +110,7 @@ public class ArticleControllerTest extends BaseTest { articleReq.setTitle("test-" + article.getTitle()); try { getMockData(put("/admin/article/update"), adminLogin(), articleReq).andDo(result -> { - Response response = getResponse(result); + Response response = getResponse(result, ARTICLE_MODEL_TYPE); assertEquals(SUCCESS.getCode(), response.getCode()); ArticleModel a = response.getResult(); assertEquals(articleReq.getCategory(), a.getCategory()); @@ -132,11 +138,11 @@ public class ArticleControllerTest extends BaseTest { // 文章不存在 getMockData(MockMvcRequestBuilders.get("/article/articleID/-1")) - .andDo(result -> assertEquals(ARTICLE_NOT_EXIST.getCode(), getResponse(result).getCode())); + .andDo(result -> assertEquals(ARTICLE_NOT_EXIST.getCode(), getResponse(result, STRING_TYPE).getCode())); // 正常情况 getMockData(MockMvcRequestBuilders.get("/article/articleID/" + articleID + "?update=false")).andDo(result -> { - Response response = getResponse(result); + Response response = getResponse(result, ARTICLE_MODEL_TYPE); // 断言获取数据成功 assertEquals(SUCCESS.getCode(), response.getCode()); assertNotNull(response.getResult()); @@ -167,7 +173,7 @@ public class ArticleControllerTest extends BaseTest { // 测试不带参数访问 getMockData(MockMvcRequestBuilders.get("/articles")); getMockData(MockMvcRequestBuilders.get("/articles?page=1&count=5")).andDo(result -> { - Response> response = getResponse(result); + Response> response = getResponse(result, ARTICLE_MODEL_PAGE_TYPE); // 断言获取数据成功 assertEquals(SUCCESS.getCode(), response.getCode()); // 结果集非空 @@ -200,18 +206,18 @@ public class ArticleControllerTest extends BaseTest { public void adminArticles() { try { getMockData(get("/admin/articles?page=1&count=10")).andExpect(result -> - assertEquals(HAVE_NOT_LOG_IN.getCode(), getResponse(result).getCode()) + assertEquals(HAVE_NOT_LOG_IN.getCode(), getResponse(result, STRING_TYPE).getCode()) ); // User权限登陆 getMockData(get("/admin/articles?page=1&count=10"), userLogin()).andDo(result -> - assertEquals(PERMISSION_ERROR.getCode(), getResponse(result).getCode()) + assertEquals(PERMISSION_ERROR.getCode(), getResponse(result, STRING_TYPE).getCode()) ); for (int i = 0; i < 2; i++) { // admin权限登陆 int finalI = i; getMockData(get("/admin/articles?page=1&count=10&deleted=" + (i == 1)), adminLogin()).andDo(result -> { - Response> response = getResponse(result); + Response> response = getResponse(result, ARTICLE_MODEL_PAGE_TYPE); assertEquals(SUCCESS.getCode(), response.getCode()); assertNotNull(response.getResult()); // 判断pageInfo是否包装完全 @@ -245,12 +251,12 @@ public class ArticleControllerTest extends BaseTest { // 分类不存在 String categoryName = "NoSuchCategory"; getMockData(MockMvcRequestBuilders.get("/articles/category/" + categoryName + "?page=1&count=10")) - .andDo(result -> assertEquals(CATEGORY_NOT_EXIST.getCode(), getResponse(result).getCode())); + .andDo(result -> assertEquals(CATEGORY_NOT_EXIST.getCode(), getResponse(result, STRING_TYPE).getCode())); // 正常查询 categoryName = "linux"; getMockData(MockMvcRequestBuilders.get("/articles/category/" + categoryName + "?page=1&count=10")) .andDo(result -> { - Response> response = getResponse(result); + Response> response = getResponse(result, ARTICLE_MODEL_PAGE_TYPE); assertEquals(SUCCESS.getCode(), response.getCode()); PageData pageData = response.getResult(); assertNotEquals(0, pageData.getTotal()); @@ -273,12 +279,12 @@ public class ArticleControllerTest extends BaseTest { // 分类不存在 String tagName = "NoSuchTag"; getMockData(MockMvcRequestBuilders.get("/articles/tag/" + tagName + "?page=1&count=10")) - .andDo(result -> assertEquals(TAG_NOT_EXIST.getCode(), getResponse(result).getCode())); + .andDo(result -> assertEquals(TAG_NOT_EXIST.getCode(), getResponse(result, STRING_TYPE).getCode())); // 正常查询 tagName = "linux"; getMockData(MockMvcRequestBuilders.get("/articles/tag/" + tagName + "?page=1&count=10")) .andDo(result -> { - Response> response = getResponse(result); + Response> response = getResponse(result, ARTICLE_MODEL_PAGE_TYPE); assertEquals(SUCCESS.getCode(), response.getCode()); PageData pageData = response.getResult(); assertNotEquals(0, pageData.getTotal()); 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 10/32] =?UTF-8?q?=E8=B0=83=E6=95=B4CategoryController?= =?UTF-8?q?=E7=9A=84=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 From 9900605e1a75080ff8bb70cfc32bb2ae40af6d70 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:59 +0800 Subject: [PATCH 11/32] . --- .../java/cn/celess/blog/controller/ArticleControllerTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/test/java/cn/celess/blog/controller/ArticleControllerTest.java b/src/test/java/cn/celess/blog/controller/ArticleControllerTest.java index 572342e..40d7aca 100644 --- a/src/test/java/cn/celess/blog/controller/ArticleControllerTest.java +++ b/src/test/java/cn/celess/blog/controller/ArticleControllerTest.java @@ -5,7 +5,6 @@ import cn.celess.blog.entity.Article; import cn.celess.blog.entity.Response; import cn.celess.blog.entity.Tag; import cn.celess.blog.entity.model.ArticleModel; -import cn.celess.blog.entity.model.CategoryModel; import cn.celess.blog.entity.model.PageData; import cn.celess.blog.entity.request.ArticleReq; import cn.celess.blog.mapper.ArticleMapper; From e9209d18524c9617997ff300d1fd511bb27f6636 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:24:13 +0800 Subject: [PATCH 12/32] =?UTF-8?q?=E8=B0=83=E6=95=B4CommentController?= =?UTF-8?q?=E7=9A=84=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/CommentControllerTest.java | 82 ++++++++----------- 1 file changed, 34 insertions(+), 48 deletions(-) diff --git a/src/test/java/cn/celess/blog/controller/CommentControllerTest.java b/src/test/java/cn/celess/blog/controller/CommentControllerTest.java index 19df58b..eed6588 100644 --- a/src/test/java/cn/celess/blog/controller/CommentControllerTest.java +++ b/src/test/java/cn/celess/blog/controller/CommentControllerTest.java @@ -3,21 +3,23 @@ package cn.celess.blog.controller; import cn.celess.blog.BaseTest; import cn.celess.blog.entity.Article; import cn.celess.blog.entity.Comment; +import cn.celess.blog.entity.Response; import cn.celess.blog.entity.User; import cn.celess.blog.entity.model.CommentModel; +import cn.celess.blog.entity.model.PageData; import cn.celess.blog.entity.request.CommentReq; import cn.celess.blog.mapper.ArticleMapper; import cn.celess.blog.mapper.CommentMapper; import cn.celess.blog.mapper.UserMapper; -import net.sf.json.JSONObject; +import com.fasterxml.jackson.core.type.TypeReference; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.MediaType; import java.util.UUID; +import static cn.celess.blog.enmu.ResponseEnum.DATA_IS_DELETED; +import static cn.celess.blog.enmu.ResponseEnum.SUCCESS; import static org.junit.Assert.*; -import static cn.celess.blog.enmu.ResponseEnum.*; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; public class CommentControllerTest extends BaseTest { @@ -27,6 +29,10 @@ public class CommentControllerTest extends BaseTest { UserMapper userMapper; @Autowired CommentMapper commentMapper; + private static final TypeReference COMMENT_MODEL_TYPE = new TypeReference>() { + }; + private static final TypeReference COMMENT_MODEL_PAGE_TYPE = new TypeReference>>() { + }; @Test public void addOne() throws Exception { @@ -36,15 +42,10 @@ public class CommentControllerTest extends BaseTest { commentReq.setContent(UUID.randomUUID().toString()); commentReq.setPid(-1L); commentReq.setToUserId(-1L); - String token = userLogin(); - mockMvc.perform(post("/user/comment/create") - .contentType(MediaType.APPLICATION_JSON_UTF8) - .content(JSONObject.fromObject(commentReq).toString()) - .header("Authorization", token) - ).andDo(result -> { - JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); - assertEquals(SUCCESS.getCode(), object.getInt(Code)); - CommentModel model = (CommentModel) JSONObject.toBean(object.getJSONObject(Result), CommentModel.class); + getMockData(post("/user/comment/create"), userLogin(), commentReq).andDo(result -> { + Response response = getResponse(result, COMMENT_MODEL_TYPE); + assertEquals(SUCCESS.getCode(), response.getCode()); + CommentModel model = response.getResult(); assertNotEquals(0, model.getId()); assertEquals(commentReq.getPid(), model.getPid().longValue()); assertEquals(-1, model.getPid().longValue()); @@ -59,14 +60,10 @@ public class CommentControllerTest extends BaseTest { commentReq.setContent(UUID.randomUUID().toString()); commentReq.setPid(-1L); commentReq.setToUserId(2); - mockMvc.perform(post("/user/comment/create") - .contentType(MediaType.APPLICATION_JSON_UTF8) - .content(JSONObject.fromObject(commentReq).toString()) - .header("Authorization", token) - ).andDo(result -> { - JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); - assertEquals(SUCCESS.getCode(), object.getInt(Code)); - CommentModel model = (CommentModel) JSONObject.toBean(object.getJSONObject(Result), CommentModel.class); + getMockData(post("/user/comment/create"), userLogin(), commentReq).andDo(result -> { + Response response = getResponse(result, COMMENT_MODEL_TYPE); + assertEquals(SUCCESS.getCode(), response.getCode()); + CommentModel model = response.getResult(); // 响应数据的完整性 assertNotEquals(0, model.getId()); assertEquals(commentReq.getPid(), model.getPid().longValue()); @@ -79,20 +76,16 @@ public class CommentControllerTest extends BaseTest { }); // 测试二级回复 - Comment lastestComment = commentMapper.getLastestComment(); + Comment latestComment = commentMapper.getLastestComment(); commentReq.setPagePath("/article/" + article.getId()); commentReq.setContent(UUID.randomUUID().toString()); - commentReq.setPid(lastestComment.getId()); - mockMvc.perform(post("/user/comment/create") - .contentType(MediaType.APPLICATION_JSON_UTF8) - .content(JSONObject.fromObject(commentReq).toString()) - .header("Authorization", token) - ).andDo(result -> { - JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); - assertEquals(SUCCESS.getCode(), object.getInt(Code)); - CommentModel model = (CommentModel) JSONObject.toBean(object.getJSONObject(Result), CommentModel.class); + commentReq.setPid(latestComment.getId()); + getMockData(post("/user/comment/create"), userLogin(), commentReq).andDo(result -> { + Response response = getResponse(result, COMMENT_MODEL_TYPE); + assertEquals(SUCCESS.getCode(), response.getCode()); + CommentModel model = response.getResult(); // 重新获取父评论信息 - Comment pCommon = commentMapper.findCommentById(lastestComment.getId()); + Comment pCommon = commentMapper.findCommentById(latestComment.getId()); assertEquals(pCommon.getId(), model.getPid()); }); } @@ -116,16 +109,13 @@ public class CommentControllerTest extends BaseTest { // 接口测试 long id = comment.getId(); assertNotEquals(0, id); - String token = userLogin(); - mockMvc.perform(delete("/user/comment/del?id=" + id).header("Authorization", token)).andDo(result -> { - JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); - assertEquals(SUCCESS.getCode(), object.getInt(Code)); - assertTrue(object.getBoolean(Result)); - }); - mockMvc.perform(delete("/user/comment/del?id=" + id).header("Authorization", token)).andDo(result -> { - JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); - assertEquals(DATA_IS_DELETED.getCode(), object.getInt(Code)); + getMockData(delete("/user/comment/del?id=" + id), userLogin()).andDo(result -> { + Response response = getResponse(result, BOOLEAN_TYPE); + assertEquals(SUCCESS.getCode(), response.getCode()); + assertTrue(response.getResult()); }); + getMockData(delete("/user/comment/del?id=" + id), userLogin()) + .andDo(result -> assertEquals(DATA_IS_DELETED.getCode(), getResponse(result, COMMENT_MODEL_TYPE).getCode())); } @Test @@ -135,14 +125,10 @@ public class CommentControllerTest extends BaseTest { commentReq.setId(comment.getId()); commentReq.setContent(UUID.randomUUID().toString()); // 不合法数据 setResponseId - mockMvc.perform(put("/user/comment/update") - .content(JSONObject.fromObject(commentReq).toString()) - .contentType(MediaType.APPLICATION_JSON_UTF8) - .header("Authorization", userLogin()) - ).andDo(result -> { - JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); - assertEquals(SUCCESS.getCode(), object.getInt(Code)); - CommentModel c = (CommentModel) JSONObject.toBean(object.getJSONObject(Result), CommentModel.class); + getMockData(put("/user/comment/update"), userLogin(), commentReq).andDo(result -> { + Response response = getResponse(result, COMMENT_MODEL_TYPE); + assertEquals(SUCCESS.getCode(), response.getCode()); + CommentModel c = response.getResult(); assertEquals(commentReq.getContent(), c.getContent()); }); } From b9094c13458b7629002ea384cefc2ccca02fc762 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:24:34 +0800 Subject: [PATCH 13/32] . --- src/test/java/cn/celess/blog/BaseTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/cn/celess/blog/BaseTest.java b/src/test/java/cn/celess/blog/BaseTest.java index e7c14fe..6c694c4 100644 --- a/src/test/java/cn/celess/blog/BaseTest.java +++ b/src/test/java/cn/celess/blog/BaseTest.java @@ -62,7 +62,7 @@ public class BaseTest { }; protected static final TypeReference STRING_TYPE = new TypeReference>() { }; - protected static final TypeReference OBJECT_TYPE = new TypeReference>() { + protected static final TypeReference OBJECT_TYPE = new TypeReference>() { }; @Autowired private WebApplicationContext wac; @@ -144,7 +144,7 @@ public class BaseTest { try { // 测试getMockData方法 assertNotNull(getMockData(get("/headerInfo"))); - getMockData((get("/headerInfo"))).andDo(result -> assertNotNull(getResponse(result))); + getMockData((get("/headerInfo"))).andDo(result -> assertNotNull(getResponse(result, OBJECT_TYPE))); } catch (Exception e) { e.printStackTrace(); } From ffed0d5cd04a7eb450f98c82d47c8613f86ccb81 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 21:08:40 +0800 Subject: [PATCH 14/32] =?UTF-8?q?=E8=B0=83=E6=95=B4LinkController=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 --- .../blog/controller/LinksControllerTest.java | 128 ++++++++---------- 1 file changed, 54 insertions(+), 74 deletions(-) diff --git a/src/test/java/cn/celess/blog/controller/LinksControllerTest.java b/src/test/java/cn/celess/blog/controller/LinksControllerTest.java index b96c49b..e75759c 100644 --- a/src/test/java/cn/celess/blog/controller/LinksControllerTest.java +++ b/src/test/java/cn/celess/blog/controller/LinksControllerTest.java @@ -2,15 +2,15 @@ package cn.celess.blog.controller; import cn.celess.blog.BaseTest; import cn.celess.blog.entity.PartnerSite; +import cn.celess.blog.entity.Response; import cn.celess.blog.entity.model.PageData; import cn.celess.blog.entity.request.LinkReq; import cn.celess.blog.mapper.PartnerMapper; -import com.github.pagehelper.PageInfo; -import net.sf.json.JSONObject; +import com.fasterxml.jackson.core.type.TypeReference; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.MediaType; +import java.util.List; import java.util.UUID; import static cn.celess.blog.enmu.ResponseEnum.*; @@ -21,23 +21,23 @@ public class LinksControllerTest extends BaseTest { @Autowired PartnerMapper mapper; + private static final TypeReference LINK_MODEL_TYPE = new TypeReference>() { + }; + private static final TypeReference LINK_MODEL_LIST_TYPE = new TypeReference>>() { + }; + private static final TypeReference LINK_MODEL_PAGE_TYPE = new TypeReference>>() { + }; @Test public void create() throws Exception { LinkReq linkReq = new LinkReq(); - linkReq.setName(UUID.randomUUID().toString().substring(0, 4)); + linkReq.setName(randomStr(4)); linkReq.setOpen(false); linkReq.setUrl("https://example.com"); - String token = adminLogin(); - mockMvc.perform( - post("/admin/links/create") - .content(JSONObject.fromObject(linkReq).toString()) - .header("Authorization", token) - .contentType(MediaType.APPLICATION_JSON) - ).andDo(result -> { - JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); - assertEquals(SUCCESS.getCode(), object.getInt(Code)); - PartnerSite site = (PartnerSite) JSONObject.toBean(object.getJSONObject(Result), PartnerSite.class); + getMockData(post("/admin/links/create"), adminLogin(), linkReq).andDo(result -> { + Response response = getResponse(result, LINK_MODEL_TYPE); + assertEquals(SUCCESS.getCode(), response.getCode()); + PartnerSite site = response.getResult(); assertNotNull(site.getId()); assertEquals(linkReq.getName(), site.getName()); assertEquals(linkReq.getUrl(), site.getUrl()); @@ -48,51 +48,42 @@ public class LinksControllerTest extends BaseTest { linkReq.setName(UUID.randomUUID().toString().substring(0, 4)); linkReq.setOpen(false); linkReq.setUrl("example.com"); - mockMvc.perform( - post("/admin/links/create") - .content(JSONObject.fromObject(linkReq).toString()) - .header("Authorization", token) - .contentType("application/json") - ).andDo(result -> { - JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); - assertEquals(SUCCESS.getCode(), object.getInt(Code)); - PartnerSite site = (PartnerSite) JSONObject.toBean(object.getJSONObject(Result), PartnerSite.class); + getMockData(post("/admin/links/create"), adminLogin(), linkReq).andDo(result -> { + Response response = getResponse(result, LINK_MODEL_TYPE); + assertEquals(SUCCESS.getCode(), response.getCode()); + PartnerSite site = response.getResult(); assertEquals("http://example.com", site.getUrl()); }); // 测试已存在的数据 - mockMvc.perform( - post("/admin/links/create") - .content(JSONObject.fromObject(linkReq).toString()) - .header("Authorization", token) - .contentType("application/json") - ).andDo(result -> assertEquals(DATA_HAS_EXIST.getCode(), JSONObject.fromObject(result.getResponse().getContentAsString()).getInt(Code))); + getMockData(post("/admin/links/create"), adminLogin(), linkReq).andDo(result -> + assertEquals(DATA_HAS_EXIST.getCode(), getResponse(result, STRING_TYPE).getCode()) + ); } @Test public void del() throws Exception { PartnerSite partnerSite = new PartnerSite(); - partnerSite.setName(UUID.randomUUID().toString().substring(0, 4)); + partnerSite.setName(randomStr(4)); partnerSite.setOpen(true); partnerSite.setDesc(""); partnerSite.setIconPath(""); partnerSite.setUrl("https://www.celess.cn"); mapper.insert(partnerSite); - PartnerSite lastest = mapper.getLastest(); - assertNotNull(lastest.getId()); - String token = adminLogin(); - mockMvc.perform(delete("/admin/links/del/" + lastest.getId()).header("Authorization", token)).andDo(result -> { - JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); - assertEquals(SUCCESS.getCode(), object.getInt(Code)); - assertTrue(object.getBoolean(Result)); + PartnerSite latest = mapper.getLastest(); + assertNotNull(latest.getId()); + getMockData(delete("/admin/links/del/" + latest.getId()), adminLogin()).andDo(result -> { + Response response = getResponse(result, BOOLEAN_TYPE); + assertEquals(SUCCESS.getCode(), response.getCode()); + assertTrue(response.getResult()); }); - long id = lastest.getId(); + long id = latest.getId(); do { id += 1; } while (mapper.existsById(id)); System.out.println("删除ID=" + id + "的数据"); - mockMvc.perform(delete("/admin/links/del/" + id).header("Authorization", token)).andDo(result -> - assertEquals(DATA_NOT_EXIST.getCode(), JSONObject.fromObject(result.getResponse().getContentAsString()).getInt(Code)) + getMockData(delete("/admin/links/del/" + id), adminLogin()).andDo(result -> + assertEquals(DATA_NOT_EXIST.getCode(), getResponse(result, STRING_TYPE).getCode()) ); } @@ -100,7 +91,7 @@ public class LinksControllerTest extends BaseTest { public void update() throws Exception { // 增数据 PartnerSite partnerSite = new PartnerSite(); - partnerSite.setName(UUID.randomUUID().toString().substring(0, 4)); + partnerSite.setName(randomStr(4)); partnerSite.setOpen(true); partnerSite.setDesc(""); partnerSite.setIconPath(""); @@ -108,24 +99,19 @@ public class LinksControllerTest extends BaseTest { partnerSite.setUrl("https://www.celess.cn"); mapper.insert(partnerSite); // 查数据 - PartnerSite lastest = mapper.getLastest(); - assertNotNull(lastest.getId()); - String token = adminLogin(); + PartnerSite latest = mapper.getLastest(); + assertNotNull(latest.getId()); // 构建请求 LinkReq linkReq = new LinkReq(); - linkReq.setUrl(lastest.getUrl()); - linkReq.setOpen(!lastest.getOpen()); + linkReq.setUrl(latest.getUrl()); + linkReq.setOpen(!latest.getOpen()); linkReq.setName(UUID.randomUUID().toString().substring(0, 4)); - linkReq.setId(lastest.getId()); - mockMvc.perform( - put("/admin/links/update") - .content(JSONObject.fromObject(linkReq).toString()) - .contentType(MediaType.APPLICATION_JSON) - .header("Authorization", token) - ).andDo(result -> { - JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); - assertEquals(SUCCESS.getCode(), object.getInt(Code)); - PartnerSite site = (PartnerSite) JSONObject.toBean(object.getJSONObject(Result), PartnerSite.class); + linkReq.setId(latest.getId()); + + getMockData(put("/admin/links/update"), adminLogin(), linkReq).andDo(result -> { + Response response = getResponse(result, LINK_MODEL_TYPE); + assertEquals(SUCCESS.getCode(), response.getCode()); + PartnerSite site = response.getResult(); assertNotNull(site.getId()); assertEquals(linkReq.getId(), site.getId().longValue()); assertEquals(linkReq.getUrl(), site.getUrl()); @@ -136,11 +122,10 @@ public class LinksControllerTest extends BaseTest { @Test public void allForOpen() throws Exception { - mockMvc.perform(get("/links")).andDo(result -> { - JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); - assertEquals(SUCCESS.getCode(), object.getInt(Code)); - object.getJSONArray(Result).forEach(o -> { - PartnerSite site = (PartnerSite) JSONObject.toBean(JSONObject.fromObject(o), PartnerSite.class); + getMockData(get("/links")).andDo(result -> { + Response> response = getResponse(result, LINK_MODEL_LIST_TYPE); + assertEquals(SUCCESS.getCode(), response.getCode()); + response.getResult().forEach(site -> { assertNotNull(site.getUrl()); assertNull(site.getOpen()); assertNotNull(site.getName()); @@ -150,14 +135,13 @@ public class LinksControllerTest extends BaseTest { @Test public void all() throws Exception { - mockMvc.perform(get("/admin/links?page=1&count=10").header("Authorization", adminLogin())).andDo(result -> { - JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); - assertEquals(SUCCESS.getCode(), object.getInt(Code)); - PageData pageData = (PageData) JSONObject.toBean(object.getJSONObject(Result), PageData.class); + getMockData(get("/admin/links?page=1&count=10"), adminLogin()).andDo(result -> { + Response> response = getResponse(result, LINK_MODEL_PAGE_TYPE); + assertEquals(SUCCESS.getCode(), response.getCode()); + PageData pageData = response.getResult(); assertEquals(1, pageData.getPageNum()); assertEquals(10, pageData.getPageSize()); - for (Object o : pageData.getList()) { - PartnerSite site = (PartnerSite) JSONObject.toBean(JSONObject.fromObject(o), PartnerSite.class); + for (PartnerSite site : pageData.getList()) { assertNotNull(site.getUrl()); assertNotNull(site.getName()); assertNotNull(site.getOpen()); @@ -170,14 +154,10 @@ public class LinksControllerTest extends BaseTest { public void apply() throws Exception { long l = System.currentTimeMillis(); String url = "https://www.example.com"; - mockMvc.perform(post("/apply?name=小海博客Api测试,请忽略&url=" + url)).andDo(result -> { - assertEquals(SUCCESS.getCode(), JSONObject.fromObject(result.getResponse().getContentAsString()).getInt(Code)); - }); + getMockData(post("/apply?name=小海博客Api测试,请忽略&url=" + url)).andDo(result -> assertEquals(SUCCESS.getCode(), getResponse(result, OBJECT_TYPE).getCode())); System.out.println("耗时:" + (System.currentTimeMillis() - l) / 1000 + "s"); - url = "xxxxxxxxxm"; - mockMvc.perform(post("/apply?name=小海博客Api测试,请忽略&url=" + url)).andDo(result -> { - assertEquals(PARAMETERS_URL_ERROR.getCode(), JSONObject.fromObject(result.getResponse().getContentAsString()).getInt(Code)); - }); + url = "xxx"; + getMockData(post("/apply?name=小海博客Api测试,请忽略&url=" + url)).andDo(result -> assertEquals(PARAMETERS_URL_ERROR.getCode(), getResponse(result, OBJECT_TYPE).getCode())); } } \ No newline at end of file From 1bfd2d713e78722ddc91762fae1fa81cbaed1e71 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 21:08:49 +0800 Subject: [PATCH 15/32] . --- .../java/cn/celess/blog/controller/CommentControllerTest.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/test/java/cn/celess/blog/controller/CommentControllerTest.java b/src/test/java/cn/celess/blog/controller/CommentControllerTest.java index eed6588..2c49e06 100644 --- a/src/test/java/cn/celess/blog/controller/CommentControllerTest.java +++ b/src/test/java/cn/celess/blog/controller/CommentControllerTest.java @@ -6,7 +6,6 @@ import cn.celess.blog.entity.Comment; import cn.celess.blog.entity.Response; import cn.celess.blog.entity.User; import cn.celess.blog.entity.model.CommentModel; -import cn.celess.blog.entity.model.PageData; import cn.celess.blog.entity.request.CommentReq; import cn.celess.blog.mapper.ArticleMapper; import cn.celess.blog.mapper.CommentMapper; @@ -31,8 +30,6 @@ public class CommentControllerTest extends BaseTest { CommentMapper commentMapper; private static final TypeReference COMMENT_MODEL_TYPE = new TypeReference>() { }; - private static final TypeReference COMMENT_MODEL_PAGE_TYPE = new TypeReference>>() { - }; @Test public void addOne() throws Exception { From f65c96fa2d575552c059b2db8299b201c60ef29f 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 22:02:24 +0800 Subject: [PATCH 16/32] =?UTF-8?q?=E8=B0=83=E6=95=B4TagController=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 --- .../blog/controller/TagControllerTest.java | 107 +++++++++--------- 1 file changed, 52 insertions(+), 55 deletions(-) diff --git a/src/test/java/cn/celess/blog/controller/TagControllerTest.java b/src/test/java/cn/celess/blog/controller/TagControllerTest.java index 2d19634..dd5abf6 100644 --- a/src/test/java/cn/celess/blog/controller/TagControllerTest.java +++ b/src/test/java/cn/celess/blog/controller/TagControllerTest.java @@ -1,36 +1,42 @@ package cn.celess.blog.controller; import cn.celess.blog.BaseTest; +import cn.celess.blog.entity.Response; import cn.celess.blog.entity.Tag; import cn.celess.blog.entity.model.PageData; import cn.celess.blog.entity.model.TagModel; import cn.celess.blog.mapper.TagMapper; -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 java.util.List; +import java.util.Map; 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 TagControllerTest extends BaseTest { @Autowired TagMapper tagMapper; + private static final TypeReference TAG_MODEL_TYPE = new TypeReference>() { + + }; + private static final TypeReference TAG_MODEL_PAGE_TYPE = new TypeReference>>() { + }; + private static final TypeReference TAG_NAC_LIST_TYPE = new TypeReference>>>() { + }; @Test public void addOne() throws Exception { String name = randomStr(4); - mockMvc.perform(post("/admin/tag/create?name=" + name)).andDo(result -> assertEquals(HAVE_NOT_LOG_IN.getCode(), JSONObject.fromObject(result.getResponse().getContentAsString()).getInt(Code))); - mockMvc.perform(post("/admin/tag/create?name=" + name).header("authorization", userLogin())).andDo(result -> assertEquals(PERMISSION_ERROR.getCode(), JSONObject.fromObject(result.getResponse().getContentAsString()).getInt(Code))); - mockMvc.perform(post("/admin/tag/create?name=" + name).header("authorization", adminLogin())).andDo(result -> { - JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); - assertEquals(SUCCESS.getCode(), object.getInt(Code)); - JSONObject resJson = object.getJSONObject(Result); - TagModel tag = (TagModel) JSONObject.toBean(resJson, TagModel.class); + getMockData(post("/admin/tag/create?name=" + name)).andDo(result -> assertEquals(HAVE_NOT_LOG_IN.getCode(), getResponse(result, STRING_TYPE).getCode())); + getMockData(post("/admin/tag/create?name=" + name), userLogin()).andDo(result -> assertEquals(PERMISSION_ERROR.getCode(), getResponse(result, STRING_TYPE).getCode())); + getMockData(post("/admin/tag/create?name=" + name), adminLogin()).andDo(result -> { + Response response = getResponse(result, TAG_MODEL_TYPE); + assertEquals(SUCCESS.getCode(), response.getCode()); + TagModel tag = response.getResult(); assertNotNull(tag.getId()); assertEquals(name, tag.getName()); }); @@ -42,16 +48,14 @@ public class TagControllerTest extends BaseTest { public void delOne() throws Exception { Tag lastestTag = tagMapper.getLastestTag(); assertNotNull(lastestTag.getId()); - String token = adminLogin(); - mockMvc.perform(delete("/admin/tag/del?id=" + lastestTag.getId()).header("Authorization", token)).andDo(result -> { - JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); - assertEquals(SUCCESS.getCode(), object.getInt(Code)); - assertTrue(object.getBoolean(Result)); + getMockData(delete("/admin/tag/del?id=" + lastestTag.getId()), adminLogin()).andDo(result -> { + Response response = getResponse(result, BOOLEAN_TYPE); + assertEquals(SUCCESS.getCode(), response.getCode()); + assertTrue(response.getResult()); }); long id = lastestTag.getId() * 2; - mockMvc.perform(delete("/admin/tag/del?id=" + id).header("Authorization", token)).andDo(result -> - assertEquals(TAG_NOT_EXIST.getCode(), JSONObject.fromObject(result.getResponse().getContentAsString()).getInt(Code)) - ); + getMockData(delete("/admin/tag/del?id=" + id), adminLogin()) + .andDo(result -> assertEquals(TAG_NOT_EXIST.getCode(), getResponse(result, STRING_TYPE).getCode())); } @@ -59,12 +63,12 @@ public class TagControllerTest extends BaseTest { public void updateOne() throws Exception { Tag tag = tagMapper.getLastestTag(); assertNotNull(tag.getId()); - String name = UUID.randomUUID().toString().substring(0, 4); - mockMvc.perform(put("/admin/tag/update?id=" + tag.getId() + "&name=" + name).header("Authorization", adminLogin())).andDo(result -> { - JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); - assertEquals(SUCCESS.getCode(), object.getInt(Code)); - assertNotNull(object.getJSONObject(Result)); - TagModel t = (TagModel) JSONObject.toBean(object.getJSONObject(Result), TagModel.class); + String name = randomStr(4); + getMockData(put("/admin/tag/update?id=" + tag.getId() + "&name=" + name), adminLogin()).andDo(result -> { + Response response = getResponse(result, TAG_MODEL_TYPE); + assertEquals(SUCCESS.getCode(), response.getCode()); + assertNotNull(response.getResult()); + TagModel t = response.getResult(); assertEquals(name, t.getName()); assertEquals(tag.getId(), t.getId()); }); @@ -73,40 +77,33 @@ public class TagControllerTest extends BaseTest { @Test public void getPage() throws Exception { - mockMvc.perform(get("/tags?page=1&count=5")) - .andExpect(status().is(200)) - .andDo(result -> { - JSONObject articlesJSON = JSONObject.fromObject(result.getResponse().getContentAsString()); - // 断言获取数据成功 - assertEquals(SUCCESS.getCode(), articlesJSON.getInt(Code)); - // 结果集非空 - assertNotNull(articlesJSON.getJSONObject(Result)); - // 判断pageInfo是否包装完全 - JSONObject resultJson = JSONObject.fromObject(articlesJSON.getJSONObject(Result)); - PageData pageData = (PageData) JSONObject.toBean(resultJson, PageData.class); - assertNotEquals(0, pageData.getTotal()); - assertEquals(1, pageData.getPageNum()); - assertEquals(5, pageData.getPageSize()); - // 内容完整 - for (Object tag : pageData.getList()) { - TagModel t = (TagModel) JSONObject.toBean(JSONObject.fromObject(tag), TagModel.class); - assertNotNull(t.getId()); - assertNotNull(t.getName()); - } - }); + getMockData(get("/tags?page=1&count=5")).andDo(result -> { + Response> response = getResponse(result, TAG_MODEL_PAGE_TYPE); + assertEquals(SUCCESS.getCode(), response.getCode()); + // 结果集非空 + assertNotNull(response.getResult()); + // 判断pageInfo是否包装完全 + PageData pageData = response.getResult(); + assertNotEquals(0, pageData.getTotal()); + assertEquals(1, pageData.getPageNum()); + assertEquals(5, pageData.getPageSize()); + // 内容完整 + for (TagModel t : pageData.getList()) { + assertNotNull(t.getId()); + assertNotNull(t.getName()); + } + }); } @Test public void getTagNameAndCount() throws Exception { - mockMvc.perform(get("/tags/nac")).andDo(result -> { - JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); - assertEquals(SUCCESS.getCode(), object.getInt(Code)); - JSONArray jsonArray = object.getJSONArray(Result); - assertNotNull(jsonArray); - jsonArray.forEach(o -> { - JSONObject json = JSONObject.fromObject(o); - assertTrue(json.containsKey("size")); - assertTrue(json.containsKey("name")); + getMockData(get("/tags/nac")).andDo(result -> { + Response>> response = getResponse(result, TAG_NAC_LIST_TYPE); + assertEquals(SUCCESS.getCode(), response.getCode()); + assertNotNull(response.getResult()); + response.getResult().forEach(o -> { + assertNotNull(o.get("name")); + assertNotNull(o.get("size")); }); }); } From 7922ea558f821cb6b62860abad8120edaff8b89a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A6=BE=E5=87=A0=E6=B5=B7?= Date: Sat, 25 Jul 2020 11:23:03 +0800 Subject: [PATCH 17/32] =?UTF-8?q?=E8=B0=83=E6=95=B4UserController=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 --- .../celess/blog/entity/request/LoginReq.java | 4 + src/test/java/cn/celess/blog/BaseTest.java | 10 +- .../blog/controller/UserControllerTest.java | 262 +++++++++--------- 3 files changed, 135 insertions(+), 141 deletions(-) diff --git a/src/main/java/cn/celess/blog/entity/request/LoginReq.java b/src/main/java/cn/celess/blog/entity/request/LoginReq.java index d0f8813..0ea98c1 100644 --- a/src/main/java/cn/celess/blog/entity/request/LoginReq.java +++ b/src/main/java/cn/celess/blog/entity/request/LoginReq.java @@ -1,12 +1,16 @@ package cn.celess.blog.entity.request; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; /** * @author : xiaohai * @date : 2019/06/01 22:47 */ @Data +@NoArgsConstructor +@AllArgsConstructor public class LoginReq { private String email; private String password; diff --git a/src/test/java/cn/celess/blog/BaseTest.java b/src/test/java/cn/celess/blog/BaseTest.java index 6c694c4..e772830 100644 --- a/src/test/java/cn/celess/blog/BaseTest.java +++ b/src/test/java/cn/celess/blog/BaseTest.java @@ -54,6 +54,8 @@ public class BaseTest { protected MockMvc mockMvc; protected final static String Code = "code"; protected final static String Result = "result"; + protected final static String USERE_MAIL = "zh56462271@qq.com"; + protected final static String ADMIN_EMAIL = "a@celess.cn"; /** * jackson 序列化/反序列化Json */ @@ -87,7 +89,7 @@ public class BaseTest { */ protected String adminLogin() { LoginReq req = new LoginReq(); - req.setEmail("a@celess.cn"); + req.setEmail(ADMIN_EMAIL); req.setPassword("123456789"); req.setIsRememberMe(true); String token = login(req); @@ -102,7 +104,7 @@ public class BaseTest { */ protected String userLogin() { LoginReq req = new LoginReq(); - req.setEmail("zh56462271@qq.com"); + req.setEmail(USERE_MAIL); req.setPassword("123456789"); req.setIsRememberMe(true); String token = login(req); @@ -116,7 +118,7 @@ public class BaseTest { * @param req 用户信息 * @return token | null */ - private String login(LoginReq req) { + protected String login(LoginReq req) { String str = null; try { str = getMockData(post("/login"), null, req) @@ -208,6 +210,7 @@ public class BaseTest { } if (content != null) { builder.content(mapper.writeValueAsString(content)).contentType(MediaType.APPLICATION_JSON); + logger.debug("param::json->{}", mapper.writeValueAsString(content)); } return mockMvc.perform(builder).andExpect(status().isOk()); } @@ -230,7 +233,6 @@ public class BaseTest { */ protected Response getResponse(String json, TypeReference responseType) { Response response = null; - System.out.println(responseType.getType()); try { response = mapper.readValue(json, responseType); } catch (IOException e) { diff --git a/src/test/java/cn/celess/blog/controller/UserControllerTest.java b/src/test/java/cn/celess/blog/controller/UserControllerTest.java index 1691c3a..0d5fed7 100644 --- a/src/test/java/cn/celess/blog/controller/UserControllerTest.java +++ b/src/test/java/cn/celess/blog/controller/UserControllerTest.java @@ -1,6 +1,7 @@ package cn.celess.blog.controller; import cn.celess.blog.BaseTest; +import cn.celess.blog.entity.Response; import cn.celess.blog.entity.User; import cn.celess.blog.entity.model.PageData; import cn.celess.blog.entity.model.UserModel; @@ -8,12 +9,13 @@ import cn.celess.blog.entity.request.LoginReq; import cn.celess.blog.entity.request.UserReq; import cn.celess.blog.mapper.UserMapper; import cn.celess.blog.util.MD5Util; -import net.sf.json.JSONArray; -import net.sf.json.JSONObject; +import cn.celess.blog.util.RedisUtil; +import com.fasterxml.jackson.core.type.TypeReference; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; import org.springframework.mock.web.MockMultipartFile; +import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; @@ -21,16 +23,25 @@ import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import java.util.*; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; +import static cn.celess.blog.enmu.ResponseEnum.*; 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 UserControllerTest extends BaseTest { @Autowired UserMapper userMapper; + @Autowired + RedisUtil redisUtil; + private static final TypeReference USER_MODEL_TYPE = new TypeReference>() { + }; + private static final TypeReference USER_MODEL_PAGE_TYPE = new TypeReference>>() { + }; + private static final TypeReference USER_MODEL_LIST_TYPE = new TypeReference>>>() { + }; @Test public void login() throws Exception { @@ -41,11 +52,7 @@ public class UserControllerTest extends BaseTest { req.setEmail("zh@celess.cn"); req.setPassword("123456789"); req.setIsRememberMe(false); - JSONObject loginReq = JSONObject.fromObject(req); - mockMvc.perform(post("/login").content(loginReq.toString()).contentType("application/json")) - .andDo(result -> - assertEquals(USER_NOT_EXIST.getCode(), JSONObject.fromObject(result.getResponse().getContentAsString()).getInt(Code)) - ); + getMockData(post("/login"), null, req).andDo(result -> assertEquals(USER_NOT_EXIST.getCode(), getResponse(result, STRING_TYPE).getCode())); } @Test @@ -55,41 +62,39 @@ public class UserControllerTest extends BaseTest { @Test public void logout() throws Exception { - mockMvc.perform(get("/logout")).andDo(result -> assertEquals(SUCCESS.getCode(), JSONObject.fromObject(result.getResponse().getContentAsString()).getInt(Code))); - mockMvc.perform(get("/logout").header("Authorization", userLogin())).andDo(result -> assertEquals(SUCCESS.getCode(), JSONObject.fromObject(result.getResponse().getContentAsString()).getInt(Code))); + getMockData(get("/logout")).andDo(result -> assertEquals(SUCCESS.getCode(), getResponse(result, STRING_TYPE).getCode())); + getMockData(get("/logout"), adminLogin()).andDo(result -> assertEquals(SUCCESS.getCode(), getResponse(result).getCode())); } @Test public void updateInfo() throws Exception { String desc = UUID.randomUUID().toString().substring(0, 4); String disPlayName = UUID.randomUUID().toString().substring(0, 4); - mockMvc.perform(put("/user/userInfo/update?desc=" + desc + "&displayName=" + disPlayName).header("Authorization", userLogin())) - .andDo(result -> { - JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); - assertEquals(SUCCESS.getCode(), object.getInt(Code)); - UserModel u = (UserModel) JSONObject.toBean(object.getJSONObject(Result), UserModel.class); - assertEquals(desc, u.getDesc()); - assertEquals(disPlayName, u.getDisplayName()); - assertNotNull(u.getId()); - }); + getMockData(put("/user/userInfo/update?desc=" + desc + "&displayName=" + disPlayName), userLogin()).andDo(result -> { + Response response = getResponse(result, USER_MODEL_TYPE); + assertEquals(SUCCESS.getCode(), response.getCode()); + UserModel u = response.getResult(); + assertEquals(desc, u.getDesc()); + assertEquals(disPlayName, u.getDisplayName()); + assertNotNull(u.getId()); + }); } @Test public void getUserInfo() throws Exception { - mockMvc.perform(get("/user/userInfo").header("Authorization", userLogin())) - .andDo(result -> { - JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); - assertEquals(SUCCESS.getCode(), object.getInt(Code)); - UserModel u = (UserModel) JSONObject.toBean(object.getJSONObject(Result), UserModel.class); - assertNotNull(u.getId()); - assertNotNull(u.getEmail()); - assertNotNull(u.getDisplayName()); - assertNotNull(u.getEmailStatus()); - assertNotNull(u.getAvatarImgUrl()); - assertNotNull(u.getDesc()); - assertNotNull(u.getRecentlyLandedDate()); - assertNotNull(u.getRole()); - }); + getMockData(get("/user/userInfo"), userLogin()).andDo(result -> { + Response response = getResponse(result, USER_MODEL_TYPE); + assertEquals(SUCCESS.getCode(), response.getCode()); + UserModel u = response.getResult(); + assertNotNull(u.getId()); + assertNotNull(u.getEmail()); + assertNotNull(u.getDisplayName()); + assertNotNull(u.getEmailStatus()); + assertNotNull(u.getAvatarImgUrl()); + assertNotNull(u.getDesc()); + assertNotNull(u.getRecentlyLandedDate()); + assertNotNull(u.getRole()); + }); } @Test @@ -100,11 +105,10 @@ public class UserControllerTest extends BaseTest { InputStream inputStream = connection.getInputStream(); assertNotNull(inputStream); MockMultipartFile file = new MockMultipartFile("file", "logo.png", MediaType.IMAGE_PNG_VALUE, inputStream); - mockMvc.perform(multipart("/user/imgUpload").file(file)).andDo(result -> assertEquals(HAVE_NOT_LOG_IN.getCode(), JSONObject.fromObject(result.getResponse().getContentAsString()).getInt(Code))); - mockMvc.perform(multipart("/user/imgUpload").file(file).header("Authorization", userLogin())).andDo(result -> { - JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); - assertEquals(SUCCESS.getCode(), object.getInt(Code)); - assertNotNull(object.getString(Result)); + getMockData(multipart("/user/imgUpload").file(file), userLogin()).andDo(result -> { + Response response = getResponse(result, OBJECT_TYPE); + assertEquals(SUCCESS.getCode(), response.getCode()); + assertNotNull(response.getResult()); }); } @@ -119,13 +123,34 @@ public class UserControllerTest extends BaseTest { } @Test - public void emailVerify() { - // ignore + public void emailVerify() throws Exception { + String email = randomStr(4) + "@celess.cn"; + String pwd = MD5Util.getMD5("123456789"); + userMapper.addUser(new User(email, pwd)); + String verifyId = randomStr(); + LoginReq req = new LoginReq(email, "123456789", true); + redisUtil.setEx(email + "-verify", verifyId, 2, TimeUnit.DAYS); + getMockData(post("/emailVerify").param("verifyId", verifyId).param("email", email), login(req)).andDo(result -> + assertEquals(SUCCESS.getCode(), getResponse(result, OBJECT_TYPE).getCode()) + ); } @Test - public void resetPwd() { - // ignore + public void resetPwd() throws Exception { + String email = randomStr(4) + "@celess.cn"; + String pwd = MD5Util.getMD5("1234567890"); + userMapper.addUser(new User(email, pwd)); + LoginReq req = new LoginReq(email, "1234567890", true); + String verifyId = randomStr(); + // 设置验证id + redisUtil.setEx(email + "-resetPwd", verifyId, 2, TimeUnit.DAYS); + MockHttpServletRequestBuilder resetPwd = post("/resetPwd").param("verifyId", verifyId).param("email", email).param("pwd", "123456789"); + // 未验证 + getMockData(resetPwd, login(req)).andDo(result -> assertEquals(USEREMAIL_NOT_VERIFY.getCode(), getResponse(result, OBJECT_TYPE).getCode())); + // 设置未验证 + userMapper.updateEmailStatus(email, true); + // 正常 + getMockData(resetPwd, login(req)).andDo(result -> assertEquals(SUCCESS.getCode(), getResponse(result, OBJECT_TYPE).getCode())); } @Test @@ -146,130 +171,93 @@ public class UserControllerTest extends BaseTest { userMapper.setUserRole(userMapper.findByEmail(email).getId(), "admin"); } } - List idList = new ArrayList<>(); - userList.forEach(user -> idList.add(user.getId())); - System.out.println("id :: == > " + idList.toString()); - mockMvc.perform(delete("/admin/user/delete").content(idList.toString()).contentType("application/json")) - .andDo(result -> assertEquals(HAVE_NOT_LOG_IN.getCode(), JSONObject.fromObject(result.getResponse().getContentAsString()).getInt(Code))); - mockMvc.perform(delete("/admin/user/delete").content(idList.toString()).contentType("application/json").header("Authorization", userLogin())) - .andDo(result -> assertEquals(PERMISSION_ERROR.getCode(), JSONObject.fromObject(result.getResponse().getContentAsString()).getInt(Code))); - mockMvc.perform(delete("/admin/user/delete").content(idList.toString()).contentType("application/json").header("Authorization", adminLogin())) - .andDo(result -> { - JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); - assertEquals(SUCCESS.getCode(), object.getInt(Code)); - JSONArray jsonArray = object.getJSONArray(Result); - jsonArray.forEach(o -> { - JSONObject json = JSONObject.fromObject(o); - // 判断响应数据中是否包含输入的id - assertTrue(idList.contains((long) json.getInt("id"))); - // 判断处理状态 - boolean status = json.getBoolean("status"); - if (json.containsKey("msg")) - assertFalse(status); - else - assertTrue(status); - }); - }); + List idList = userList.stream().map(user -> user.getId().intValue()).collect(Collectors.toList()); + getMockData(delete("/admin/user/delete"), adminLogin(), idList).andDo(result -> { + Response>> response = getResponse(result, USER_MODEL_LIST_TYPE); + assertEquals(SUCCESS.getCode(), response.getCode()); + response.getResult().forEach(o -> { + // 判断响应数据中是否包含输入的id + assertTrue(idList.contains((int) o.get("id"))); + // 判断处理状态 + boolean status = (boolean) o.get("status"); + if (o.containsKey("msg")) + assertFalse(status); + else + assertTrue(status); + }); + }); } @Test public void updateInfoByAdmin() throws Exception { UserReq userReq = new UserReq(); - String email = UUID.randomUUID().toString().substring(0, 4) + "@celess.cn"; + String email = randomStr(4) + "@celess.cn"; User user = new User(email, MD5Util.getMD5("123456789")); userMapper.addUser(user); User userByDb = userMapper.findByEmail(email); userReq.setId(userByDb.getId()); - userReq.setPwd(UUID.randomUUID().toString().replaceAll("-", "").substring(0, 10)); - userReq.setDesc(UUID.randomUUID().toString()); + userReq.setPwd(randomStr().substring(0, 10)); + userReq.setDesc(randomStr()); userReq.setEmailStatus(new Random().nextBoolean()); userReq.setRole("admin"); - userReq.setDisplayName(UUID.randomUUID().toString().substring(0, 4)); - userReq.setEmail(UUID.randomUUID().toString().substring(0, 5) + "@celess.cn"); - mockMvc.perform(put("/admin/user").contentType("application/json").content(JSONObject.fromObject(userReq).toString())) - .andDo(result -> assertEquals(HAVE_NOT_LOG_IN.getCode(), JSONObject.fromObject(result.getResponse().getContentAsString()).getInt(Code))); - mockMvc.perform(put("/admin/user").contentType("application/json").header("Authorization", userLogin()).content(JSONObject.fromObject(userReq).toString())) - .andDo(result -> assertEquals(PERMISSION_ERROR.getCode(), JSONObject.fromObject(result.getResponse().getContentAsString()).getInt(Code))); - mockMvc.perform(put("/admin/user").contentType("application/json").header("Authorization", adminLogin()).content(JSONObject.fromObject(userReq).toString())) - .andDo(result -> { - JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); - assertEquals(SUCCESS.getCode(), object.getInt(Code)); - UserModel userModel = (UserModel) JSONObject.toBean(object.getJSONObject(Result), UserModel.class); - assertEquals(userReq.getId(), userModel.getId()); - assertEquals(userReq.getRole(), userModel.getRole()); - assertEquals(userReq.getEmail(), userModel.getEmail()); - assertEquals(userReq.getDesc(), userModel.getDesc()); - assertEquals(userReq.getDisplayName(), userModel.getDisplayName()); - }); + userReq.setDisplayName(randomStr(4)); + userReq.setEmail(randomStr().substring(0, 5) + "@celess.cn"); + getMockData(put("/admin/user"), adminLogin(), userReq).andDo(result -> { + Response response = getResponse(result, USER_MODEL_TYPE); + assertEquals(SUCCESS.getCode(), response.getCode()); + UserModel userModel = response.getResult(); + assertEquals(userReq.getId(), userModel.getId()); + assertEquals(userReq.getRole(), userModel.getRole()); + assertEquals(userReq.getEmail(), userModel.getEmail()); + assertEquals(userReq.getDesc(), userModel.getDesc()); + assertEquals(userReq.getDisplayName(), userModel.getDisplayName()); + }); } @Test public void getAllUser() throws Exception { - mockMvc.perform(get("/admin/users?page=1&count=10")) - .andDo(result -> assertEquals(HAVE_NOT_LOG_IN.getCode(), JSONObject.fromObject(result.getResponse().getContentAsString()).getInt(Code))); - mockMvc.perform(get("/admin/users?page=1&count=10").header("authorization", userLogin())) - .andDo(result -> assertEquals(PERMISSION_ERROR.getCode(), JSONObject.fromObject(result.getResponse().getContentAsString()).getInt(Code))); - mockMvc.perform(get("/admin/users?page=1&count=10").header("Authorization", adminLogin())) - .andDo(result -> { - JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); - assertEquals(SUCCESS.getCode(), object.getInt(Code)); - // 结果集非空 - assertNotNull(object.getJSONObject(Result)); - // 判断pageInfo是否包装完全 - JSONObject resultJson = JSONObject.fromObject(object.getJSONObject(Result)); - PageData pageData = (PageData) JSONObject.toBean(resultJson, PageData.class); - assertNotEquals(0, pageData.getTotal()); - assertEquals(1, pageData.getPageNum()); - assertEquals(10, pageData.getPageSize()); - // 内容完整 - for (Object user : pageData.getList()) { - UserModel u = (UserModel) JSONObject.toBean(JSONObject.fromObject(user), UserModel.class); - assertNotNull(u.getId()); - assertNotNull(u.getEmail()); - assertNotNull(u.getRole()); - assertNotNull(u.getEmailStatus()); - assertNotNull(u.getDisplayName()); - } - }); + getMockData(get("/admin/users?page=1&count=10"), adminLogin()).andDo(result -> { + Response> response = getResponse(result, USER_MODEL_PAGE_TYPE); + assertEquals(SUCCESS.getCode(), response.getCode()); + // 结果集非空 + assertNotNull(response.getResult()); + // 判断pageInfo是否包装完全 + PageData pageData = response.getResult(); + assertNotEquals(0, pageData.getTotal()); + assertEquals(1, pageData.getPageNum()); + assertEquals(10, pageData.getPageSize()); + // 内容完整 + for (UserModel u : pageData.getList()) { + assertNotNull(u.getId()); + assertNotNull(u.getEmail()); + assertNotNull(u.getRole()); + assertNotNull(u.getEmailStatus()); + assertNotNull(u.getDisplayName()); + } + }); } @Test public void getEmailStatus() throws Exception { - String email = UUID.randomUUID().toString().substring(0, 4) + "@celess.cn"; - mockMvc.perform(get("/emailStatus/" + email)).andDo(result -> { - String content = result.getResponse().getContentAsString(); - assertEquals(SUCCESS.getCode(), JSONObject.fromObject(content).getInt(Code)); - assertFalse(JSONObject.fromObject(content).getBoolean(Result)); - }); - email = "a@celess.cn"; - mockMvc.perform(get("/emailStatus/" + email)).andDo(result -> { - String content = result.getResponse().getContentAsString(); - assertEquals(SUCCESS.getCode(), JSONObject.fromObject(content).getInt(Code)); - assertTrue(JSONObject.fromObject(content).getBoolean(Result)); - }); + String email = randomStr(4) + "@celess.cn"; + getMockData(get("/emailStatus/" + email)).andDo(result -> assertFalse((Boolean) getResponse(result, BOOLEAN_TYPE).getResult())); + getMockData(get("/emailStatus/" + ADMIN_EMAIL)).andDo(result -> assertTrue((Boolean) getResponse(result, BOOLEAN_TYPE).getResult())); } @Test public void setPwd() throws Exception { - String email = UUID.randomUUID().toString().substring(0, 4) + "@celess.cn"; + String email = randomStr(4) + "@celess.cn"; assertEquals(1, userMapper.addUser(new User(email, MD5Util.getMD5("1234567890")))); - LoginReq req = new LoginReq(); - req.setEmail(email); - req.setPassword("1234567890"); - req.setIsRememberMe(false); - JSONObject loginReq = JSONObject.fromObject(req); - String contentAsString = mockMvc.perform(post("/login").content(loginReq.toString()).contentType("application/json")).andReturn().getResponse().getContentAsString(); - assertNotNull(contentAsString); - String token = JSONObject.fromObject(contentAsString).getJSONObject(Result).getString("token"); + LoginReq req = new LoginReq(email, "1234567890", false); + String token = login(req); assertNotNull(token); MultiValueMap param = new LinkedMultiValueMap(); param.add("pwd", "1234567890"); param.add("newPwd", "aaabbbccc"); param.add("confirmPwd", "aaabbbccc"); - mockMvc.perform(post("/user/setPwd").header("Authorization", token).params(param)).andDo(result -> { - String content = result.getResponse().getContentAsString(); - assertEquals(SUCCESS.getCode(), JSONObject.fromObject(content).getInt(Code)); + getMockData(post("/user/setPwd").params(param), token).andDo(result -> { + assertEquals(SUCCESS.getCode(), getResponse(result).getCode()); assertEquals(MD5Util.getMD5("aaabbbccc"), userMapper.getPwd(email)); }); } From d6cede718b1e4e5309e7eedd45466f5aed82234a 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 21:09:17 +0800 Subject: [PATCH 18/32] =?UTF-8?q?null=E5=80=BC=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../blog/service/serviceimpl/PartnerSiteServiceImpl.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/cn/celess/blog/service/serviceimpl/PartnerSiteServiceImpl.java b/src/main/java/cn/celess/blog/service/serviceimpl/PartnerSiteServiceImpl.java index 992b7b0..81302c2 100644 --- a/src/main/java/cn/celess/blog/service/serviceimpl/PartnerSiteServiceImpl.java +++ b/src/main/java/cn/celess/blog/service/serviceimpl/PartnerSiteServiceImpl.java @@ -52,6 +52,12 @@ public class PartnerSiteServiceImpl implements PartnerSiteService { reqBody.setUrl("http://" + reqBody.getUrl()); } BeanUtils.copyProperties(reqBody, partnerSite); + if (reqBody.getIconPath() == null) { + partnerSite.setIconPath(""); + } + if (reqBody.getDesc() == null) { + partnerSite.setDesc(""); + } partnerMapper.insert(partnerSite); return partnerSite; } From a04b51a82ebf69b4f64c614c7fd6c3fe456d4c16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A6=BE=E5=87=A0=E6=B5=B7?= Date: Sat, 15 Aug 2020 11:49:19 +0800 Subject: [PATCH 19/32] =?UTF-8?q?refactor(Test):=20=E9=87=8D=E6=9E=84=20Vi?= =?UTF-8?q?sitorControllerTest?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/VisitorControllerTest.java | 75 ++++++++++--------- 1 file changed, 38 insertions(+), 37 deletions(-) diff --git a/src/test/java/cn/celess/blog/controller/VisitorControllerTest.java b/src/test/java/cn/celess/blog/controller/VisitorControllerTest.java index c65d27d..76c97e6 100644 --- a/src/test/java/cn/celess/blog/controller/VisitorControllerTest.java +++ b/src/test/java/cn/celess/blog/controller/VisitorControllerTest.java @@ -1,25 +1,29 @@ package cn.celess.blog.controller; import cn.celess.blog.BaseTest; +import cn.celess.blog.entity.Response; import cn.celess.blog.entity.model.PageData; import cn.celess.blog.entity.model.VisitorModel; -import com.github.pagehelper.PageInfo; -import net.sf.json.JSONObject; +import com.fasterxml.jackson.core.type.TypeReference; import org.junit.Test; -import org.springframework.test.web.servlet.result.MockMvcResultHandlers; +import static cn.celess.blog.enmu.ResponseEnum.SUCCESS; import static org.junit.Assert.*; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; -import static cn.celess.blog.enmu.ResponseEnum.*; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; public class VisitorControllerTest extends BaseTest { + private final TypeReference VISITOR_PAGE_TYPE = new TypeReference>>() { + }; + private final TypeReference VISITOR_TYPE = new TypeReference>() { + }; @Test public void getVisitorCount() throws Exception { - mockMvc.perform(get("/visitor/count")).andDo(result -> { - JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); - assertEquals(SUCCESS.getCode(), object.getInt(Code)); - assertTrue(object.containsKey(Result)); + getMockData(get("/visitor/count")).andDo(result -> { + Response response = getResponse(result); + assertEquals(SUCCESS.getCode(), response.getCode()); + assertNotNull(response.getResult()); }); } @@ -27,29 +31,26 @@ public class VisitorControllerTest extends BaseTest { public void page() throws Exception { int count = 10; int page = 1; - mockMvc.perform(get("/admin/visitor/page?count=" + count + "&page=" + page).header("Authorization", adminLogin())) - .andDo(result -> { - JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); - assertEquals(SUCCESS.getCode(), object.getInt(Code)); - JSONObject resultJson = JSONObject.fromObject(object.getJSONObject(Result)); - PageData pageData = (PageData) JSONObject.toBean(resultJson, PageData.class); - assertNotEquals(0, pageData.getTotal()); - assertEquals(1, pageData.getPageNum()); - assertEquals(10, pageData.getPageSize()); - for (Object ver : pageData.getList()) { - VisitorModel v = (VisitorModel) JSONObject.toBean(JSONObject.fromObject(ver), VisitorModel.class); - assertNotEquals(0, v.getId()); - assertNotNull(v.getDate()); - } - }); + getMockData(get("/admin/visitor/page?count=" + count + "&page=" + page), adminLogin()).andDo(result -> { + Response> response = getResponse(result, VISITOR_PAGE_TYPE); + assertEquals(SUCCESS.getCode(), response.getCode()); + PageData pageData = response.getResult(); + assertNotEquals(0, pageData.getTotal()); + assertEquals(1, pageData.getPageNum()); + assertEquals(10, pageData.getPageSize()); + for (VisitorModel v : pageData.getList()) { + assertNotEquals(0, v.getId()); + assertNotNull(v.getDate()); + } + }); } @Test public void add() throws Exception { - mockMvc.perform(post("/visit")).andDo(MockMvcResultHandlers.print()).andDo(result -> { - JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); - assertEquals(SUCCESS.getCode(), object.getInt(Code)); - VisitorModel visitorModel = (VisitorModel) JSONObject.toBean(object.getJSONObject(Result), VisitorModel.class); + getMockData(post("/visit")).andDo(result -> { + Response response = getResponse(result, VISITOR_TYPE); + assertEquals(SUCCESS.getCode(), response.getCode()); + VisitorModel visitorModel = response.getResult(); assertNotEquals(0, visitorModel.getId()); assertNotNull(visitorModel.getIp()); }); @@ -57,26 +58,26 @@ public class VisitorControllerTest extends BaseTest { @Test public void dayVisitCount() throws Exception { - mockMvc.perform(get("/dayVisitCount")).andDo(MockMvcResultHandlers.print()).andDo(result -> - assertEquals(SUCCESS.getCode(), JSONObject.fromObject(result.getResponse().getContentAsString()).getInt(Code)) - ); + getMockData(get("/dayVisitCount")).andDo(result -> assertEquals(SUCCESS.getCode(), getResponse(result).getCode())); } // 手动测试 // @Test public void ipLocation() throws Exception { String ip = "127.0.0.1"; - mockMvc.perform(get("/ip/" + ip)).andDo(MockMvcResultHandlers.print()).andDo(result -> { - assertEquals(SUCCESS.getCode(), JSONObject.fromObject(result.getResponse().getContentAsString()).getInt(Code)); - assertTrue(JSONObject.fromObject(result.getResponse().getContentAsString()).containsKey(Result)); + getMockData(get("/ip/" + ip)).andDo(result -> { + Response response = getResponse(result); + assertEquals(SUCCESS.getCode(), response.getCode()); + assertNotNull(response.getResult()); }); } @Test public void getIp() throws Exception { - mockMvc.perform(get("/ip")).andDo(MockMvcResultHandlers.print()).andDo(result -> { - assertEquals(SUCCESS.getCode(), JSONObject.fromObject(result.getResponse().getContentAsString()).getInt(Code)); - assertEquals("127.0.0.1", JSONObject.fromObject(result.getResponse().getContentAsString()).getString(Result)); + getMockData(get("/ip")).andDo(result -> { + Response response = getResponse(result, STRING_TYPE); + assertEquals(SUCCESS.getCode(), response.getCode()); + assertEquals("127.0.0.1", response.getResult()); }); } } \ No newline at end of file From 938a0514878fc7c23cb74ad332d8738b3adff8b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A6=BE=E5=87=A0=E6=B5=B7?= Date: Sat, 15 Aug 2020 12:01:41 +0800 Subject: [PATCH 20/32] =?UTF-8?q?refactor(Test):=20=E9=87=8D=E6=9E=84=20We?= =?UTF-8?q?bUpdateInfoControllerTest?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WebUpdateInfoControllerTest.java | 77 ++++++++++--------- 1 file changed, 42 insertions(+), 35 deletions(-) diff --git a/src/test/java/cn/celess/blog/controller/WebUpdateInfoControllerTest.java b/src/test/java/cn/celess/blog/controller/WebUpdateInfoControllerTest.java index 3bf2e18..367dc34 100644 --- a/src/test/java/cn/celess/blog/controller/WebUpdateInfoControllerTest.java +++ b/src/test/java/cn/celess/blog/controller/WebUpdateInfoControllerTest.java @@ -1,35 +1,45 @@ package cn.celess.blog.controller; import cn.celess.blog.BaseTest; +import cn.celess.blog.entity.Response; import cn.celess.blog.entity.WebUpdate; import cn.celess.blog.entity.model.PageData; import cn.celess.blog.entity.model.WebUpdateModel; import cn.celess.blog.mapper.WebUpdateInfoMapper; -import net.sf.json.JSONArray; -import net.sf.json.JSONObject; +import com.fasterxml.jackson.core.type.TypeReference; +import lombok.extern.slf4j.Slf4j; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import java.util.Date; import java.util.List; -import java.util.UUID; import static cn.celess.blog.enmu.ResponseEnum.*; import static org.junit.Assert.*; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; +@Slf4j public class WebUpdateInfoControllerTest extends BaseTest { + + private final TypeReference MODAL_TYPE = new TypeReference>() { + }; + private final TypeReference MODAL_LIST_TYPE = new TypeReference>>() { + }; + private final TypeReference MODAL_PAGE_TYPE = new TypeReference>>() { + }; + + @Autowired WebUpdateInfoMapper mapper; @Test public void create() throws Exception { - String info = UUID.randomUUID().toString(); - mockMvc.perform(post("/admin/webUpdate/create?info=" + info).header("Authorization", adminLogin())).andDo(result -> { - JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); - assertEquals(SUCCESS.getCode(), object.getInt(Code)); - assertTrue(object.containsKey(Result)); - WebUpdateModel webUpdateModel = (WebUpdateModel) JSONObject.toBean(object.getJSONObject(Result), WebUpdateModel.class); + String info = randomStr(); + getMockData(post("/admin/webUpdate/create?info=" + info), adminLogin()).andDo(result -> { + Response response = getResponse(result, MODAL_TYPE); + assertEquals(SUCCESS.getCode(), response.getCode()); + assertNotNull(response.getResult()); + WebUpdateModel webUpdateModel = response.getResult(); assertEquals(info, webUpdateModel.getInfo()); assertNotNull(webUpdateModel.getTime()); assertNotEquals(0, webUpdateModel.getId()); @@ -40,7 +50,7 @@ public class WebUpdateInfoControllerTest extends BaseTest { public void del() throws Exception { // 新增数据 WebUpdate webUpdate = new WebUpdate(); - webUpdate.setUpdateInfo(UUID.randomUUID().toString()); + webUpdate.setUpdateInfo(randomStr()); webUpdate.setUpdateTime(new Date()); mapper.insert(webUpdate); // 接口测试 @@ -49,32 +59,31 @@ public class WebUpdateInfoControllerTest extends BaseTest { assertNotEquals(0, update.getId()); long id = update.getId(); - mockMvc.perform(delete("/admin/webUpdate/del/" + id).header("Authorization", adminLogin())).andDo(result -> { - assertEquals(SUCCESS.getCode(), JSONObject.fromObject(result.getResponse().getContentAsString()).getInt(Code)); - assertTrue(JSONObject.fromObject(result.getResponse().getContentAsString()).getBoolean(Result)); + getMockData(delete("/admin/webUpdate/del/" + id), adminLogin()).andDo(result -> { + Response response = getResponse(result); + assertEquals(SUCCESS.getCode(), response.getCode()); + assertNotNull(response.getResult()); }); do { id += 2; } while (mapper.existsById(id)); - System.out.println("准备删除ID=" + id + "的不存在记录"); - mockMvc.perform(delete("/admin/webUpdate/del/" + id).header("Authorization", adminLogin())).andDo(result -> - assertEquals(DATA_NOT_EXIST.getCode(), JSONObject.fromObject(result.getResponse().getContentAsString()).getInt(Code)) - ); + log.debug("准备删除ID={}的不存在记录", id); + getMockData(delete("/admin/webUpdate/del/" + id), adminLogin()).andDo(result -> assertEquals(DATA_NOT_EXIST.getCode(), getResponse(result).getCode())); } @Test public void update() throws Exception { // 新增数据 WebUpdate webUpdate = new WebUpdate(); - webUpdate.setUpdateInfo(UUID.randomUUID().toString()); + webUpdate.setUpdateInfo(randomStr()); webUpdate.setUpdateTime(new Date()); mapper.insert(webUpdate); List all = mapper.findAll(); WebUpdate update = all.get(all.size() - 1); assertNotEquals(0, update.getId()); assertNotNull(update.getUpdateInfo()); - String info = UUID.randomUUID().toString(); - mockMvc.perform(put("/admin/webUpdate/update?id=" + update.getId() + "&info=" + info).header("Authorization", adminLogin())).andDo(result -> { + String info = randomStr(); + getMockData(put("/admin/webUpdate/update?id=" + update.getId() + "&info=" + info), adminLogin()).andDo(result -> { List list = mapper.findAll(); WebUpdate up = list.get(list.size() - 1); assertEquals(update.getId(), up.getId()); @@ -85,12 +94,12 @@ public class WebUpdateInfoControllerTest extends BaseTest { @Test public void findAll() throws Exception { - mockMvc.perform(get("/webUpdate")).andDo(result -> { - JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); - assertEquals(SUCCESS.getCode(), object.getInt(Code)); - JSONArray jsonArray = object.getJSONArray(Result); - jsonArray.forEach(o -> { - WebUpdateModel webUpdate = (WebUpdateModel) JSONObject.toBean(JSONObject.fromObject(o), WebUpdateModel.class); + getMockData(get("/webUpdate")).andDo(result -> { + Response> response = getResponse(result, MODAL_LIST_TYPE); + assertEquals(SUCCESS.getCode(), response.getCode()); + assertNotNull(response.getResult()); + assertNotEquals(0, response.getResult()); + response.getResult().forEach(webUpdate -> { assertNotEquals(0, webUpdate.getId()); assertNotNull(webUpdate.getTime()); assertNotNull(webUpdate.getInfo()); @@ -100,15 +109,14 @@ public class WebUpdateInfoControllerTest extends BaseTest { @Test public void page() throws Exception { - mockMvc.perform(get("/webUpdate/pages?page=1&count=10")).andDo(result -> { - JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); - assertEquals(SUCCESS.getCode(), object.getInt(Code)); - assertNotNull(object.getJSONObject(Result)); - PageData pageData = (PageData) JSONObject.toBean(object.getJSONObject(Result), PageData.class); + getMockData(get("/webUpdate/pages?page=1&count=10")).andDo(result -> { + Response> response = getResponse(result, MODAL_PAGE_TYPE); + assertEquals(SUCCESS.getCode(), response.getCode()); + assertNotNull(response.getResult()); + PageData pageData = response.getResult(); assertEquals(1, pageData.getPageNum()); assertEquals(10, pageData.getPageSize()); - for (Object o : pageData.getList()) { - WebUpdateModel model = (WebUpdateModel) JSONObject.toBean(JSONObject.fromObject(o), WebUpdateModel.class); + for (WebUpdateModel model : pageData.getList()) { assertNotEquals(0, model.getId()); assertNotNull(model.getTime()); assertNotNull(model.getInfo()); @@ -118,7 +126,6 @@ public class WebUpdateInfoControllerTest extends BaseTest { @Test public void lastestUpdateTime() throws Exception { - mockMvc.perform(get("/lastestUpdate")).andDo(result -> - assertEquals(SUCCESS.getCode(), JSONObject.fromObject(result.getResponse().getContentAsString()).getInt(Code))); + getMockData(get("/lastestUpdate")).andDo(result -> assertEquals(SUCCESS.getCode(), getResponse(result).getCode())); } } \ No newline at end of file From 3b6439c5cf4f7f546ad9ee6d088597674b939a44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A6=BE=E5=87=A0=E6=B5=B7?= Date: Sat, 15 Aug 2020 12:10:48 +0800 Subject: [PATCH 21/32] =?UTF-8?q?refactor(Test):=20=E9=87=8D=E6=9E=84=20Au?= =?UTF-8?q?thorizationFilter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../blog/filter/AuthorizationFilter.java | 59 ++++++------------- 1 file changed, 18 insertions(+), 41 deletions(-) diff --git a/src/test/java/cn/celess/blog/filter/AuthorizationFilter.java b/src/test/java/cn/celess/blog/filter/AuthorizationFilter.java index 0249fba..8747cde 100644 --- a/src/test/java/cn/celess/blog/filter/AuthorizationFilter.java +++ b/src/test/java/cn/celess/blog/filter/AuthorizationFilter.java @@ -1,12 +1,12 @@ package cn.celess.blog.filter; import cn.celess.blog.BaseTest; -import net.sf.json.JSONObject; +import cn.celess.blog.entity.Response; import org.junit.Test; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; -import static org.junit.Assert.*; import static cn.celess.blog.enmu.ResponseEnum.*; +import static org.junit.Assert.*; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; /** * @Author: 小海 @@ -17,60 +17,37 @@ public class AuthorizationFilter extends BaseTest { @Test public void UserAccess() throws Exception { - String token = ""; // 未登录 - mockMvc.perform(get("/user/userInfo").header("Authorization", token)).andDo(result -> { - JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); - assertEquals(HAVE_NOT_LOG_IN.getCode(), object.getInt(Code)); - }); - token = userLogin(); - mockMvc.perform(get("/user/userInfo").header("Authorization", token)).andDo(result -> { - JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); - assertEquals(SUCCESS.getCode(), object.getInt(Code)); - }); + getMockData(get("/user/userInfo")).andDo(result -> assertEquals(HAVE_NOT_LOG_IN.getCode(), getResponse(result).getCode())); + // user权限登录 + getMockData(get("/user/userInfo"), userLogin()).andDo(result -> assertEquals(SUCCESS.getCode(), getResponse(result).getCode())); } @Test public void AdminAccess() throws Exception { - String token = ""; // 未登录 - mockMvc.perform(get("/admin/articles?page=1&count=1").header("Authorization", token)).andDo(result -> { - JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); - assertEquals(HAVE_NOT_LOG_IN.getCode(), object.getInt(Code)); - }); - token = userLogin(); - mockMvc.perform(get("/admin/articles?page=1&count=1").header("Authorization", token)).andDo(result -> { - JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); - assertEquals(PERMISSION_ERROR.getCode(), object.getInt(Code)); - }); - token = adminLogin(); - mockMvc.perform(get("/admin/articles?page=1&count=1").header("Authorization", token)).andDo(result -> { - JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); - assertEquals(SUCCESS.getCode(), object.getInt(Code)); - }); + getMockData(get("/admin/articles?page=1&count=1")).andDo(result -> assertEquals(HAVE_NOT_LOG_IN.getCode(), getResponse(result).getCode())); + // user权限 + getMockData(get("/admin/articles?page=1&count=1"), userLogin()).andDo(result -> assertEquals(PERMISSION_ERROR.getCode(), getResponse(result).getCode())); + // admin 权限 + getMockData(get("/admin/articles?page=1&count=1"), adminLogin()).andDo(result -> assertEquals(SUCCESS.getCode(), getResponse(result).getCode())); } @Test public void VisitorAccess() throws Exception { - mockMvc.perform(get("/user/userInfo")).andDo(result -> { - JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); - assertEquals(HAVE_NOT_LOG_IN.getCode(), object.getInt(Code)); - }); - mockMvc.perform(get("/admin/articles?page=1&count=1")).andDo(result -> { - JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); - assertEquals(HAVE_NOT_LOG_IN.getCode(), object.getInt(Code)); - }); + getMockData(get("/user/userInfo")).andDo(result -> assertEquals(HAVE_NOT_LOG_IN.getCode(), getResponse(result).getCode())); + getMockData(get("/admin/articles?page=1&count=1")).andDo(result -> assertEquals(HAVE_NOT_LOG_IN.getCode(), getResponse(result).getCode())); } @Test public void authorizationTest() throws Exception { // 测试response中有无Authorization字段 - String s = userLogin(); - mockMvc.perform(get("/user/userInfo").header("Authorization", s)).andDo(result -> { - JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); - assertEquals(SUCCESS.getCode(), object.getInt(Code)); + String token = userLogin(); + getMockData(get("/user/userInfo"), token).andDo(result -> { + Response response = getResponse(result); + assertEquals(SUCCESS.getCode(), response.getCode()); assertNotNull(result.getResponse().getHeader("Authorization")); - assertNotEquals(s, result.getResponse().getHeader("Authorization")); + assertNotEquals(token, result.getResponse().getHeader("Authorization")); }); } } From bdcfaef5f8e62a640ae92c7f234e2a2617be0e87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A6=BE=E5=87=A0=E6=B5=B7?= Date: Sat, 15 Aug 2020 12:13:08 +0800 Subject: [PATCH 22/32] =?UTF-8?q?refactor(Test):=20=E9=87=8D=E6=9E=84=20Mu?= =?UTF-8?q?ltipleSubmitFilter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../celess/blog/filter/MultipleSubmitFilter.java | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/src/test/java/cn/celess/blog/filter/MultipleSubmitFilter.java b/src/test/java/cn/celess/blog/filter/MultipleSubmitFilter.java index 5eca79b..108550a 100644 --- a/src/test/java/cn/celess/blog/filter/MultipleSubmitFilter.java +++ b/src/test/java/cn/celess/blog/filter/MultipleSubmitFilter.java @@ -2,16 +2,11 @@ package cn.celess.blog.filter; import cn.celess.blog.BaseTest; import cn.celess.blog.enmu.ResponseEnum; -import net.sf.json.JSONObject; +import cn.celess.blog.entity.Response; import org.junit.Assert; import org.junit.Test; -import org.springframework.mock.web.MockHttpServletResponse; import org.springframework.mock.web.MockHttpSession; -import org.springframework.test.web.servlet.MvcResult; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; -import org.springframework.test.web.servlet.result.MockMvcResultHandlers; - -import javax.servlet.http.Cookie; /** * @Author: 小海 @@ -31,11 +26,11 @@ public class MultipleSubmitFilter extends BaseTest { private void sendRequest(ResponseEnum expectResponse, String... msg) throws Exception { - mockMvc.perform(MockMvcRequestBuilders.get("/counts").session(session)).andDo(result -> { - JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); - Assert.assertEquals(expectResponse.getCode(), object.getInt(Code)); + getMockData(MockMvcRequestBuilders.get("/counts").session(session)).andDo(result -> { + Response response = getResponse(result); + Assert.assertEquals(expectResponse.getCode(), response.getCode()); if (msg.length != 0) { - Assert.assertEquals(msg[0], object.getString("msg")); + Assert.assertEquals(msg[0], response.getMsg()); } }); } From 94c9fc1c465ef2472797e558e3d4c77b22b49293 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A6=BE=E5=87=A0=E6=B5=B7?= Date: Sat, 15 Aug 2020 12:16:39 +0800 Subject: [PATCH 23/32] =?UTF-8?q?refactor(Test):=20=E5=B0=86=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E7=B1=BB=E4=B8=AD=E9=9A=8F=E6=9C=BA=E5=AD=97=E7=AC=A6?= =?UTF-8?q?=E4=B8=B2=E7=9A=84=E7=94=9F=E6=88=90=E6=8F=90=E5=88=B0=E5=9F=BA?= =?UTF-8?q?=E7=B1=BB=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/test/java/cn/celess/blog/mapper/ArticleMapperTest.java | 7 +++---- .../java/cn/celess/blog/mapper/ArticleTagMapperTest.java | 5 ++--- .../java/cn/celess/blog/mapper/CategoryMapperTest.java | 1 - 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/src/test/java/cn/celess/blog/mapper/ArticleMapperTest.java b/src/test/java/cn/celess/blog/mapper/ArticleMapperTest.java index 163eba4..b3183df 100644 --- a/src/test/java/cn/celess/blog/mapper/ArticleMapperTest.java +++ b/src/test/java/cn/celess/blog/mapper/ArticleMapperTest.java @@ -6,7 +6,6 @@ import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import java.util.List; -import java.util.UUID; import static org.junit.Assert.*; @@ -37,7 +36,7 @@ public class ArticleMapperTest extends BaseTest { @Test public void update() { Article article = generateArticle().getArticle(); - String randomText = UUID.randomUUID().toString(); + String randomText = randomStr(); // 此字段不会通过insert被写入数据库而是使用插入数据的默认值 数据库中该字段默认为true article.setOpen(true); @@ -117,7 +116,7 @@ public class ArticleMapperTest extends BaseTest { public void existsByTitle() { Article article = generateArticle().getArticle(); assertTrue(articleMapper.existsByTitle(article.getTitle())); - assertFalse(articleMapper.existsByTitle(UUID.randomUUID().toString())); + assertFalse(articleMapper.existsByTitle(randomStr())); } @Test @@ -196,7 +195,7 @@ public class ArticleMapperTest extends BaseTest { } private ArticleTag generateArticle() { - String randomText = UUID.randomUUID().toString(); + String randomText = randomStr(); Article article = new Article(); Category category = new Category(); diff --git a/src/test/java/cn/celess/blog/mapper/ArticleTagMapperTest.java b/src/test/java/cn/celess/blog/mapper/ArticleTagMapperTest.java index 72bb21f..a6ee615 100644 --- a/src/test/java/cn/celess/blog/mapper/ArticleTagMapperTest.java +++ b/src/test/java/cn/celess/blog/mapper/ArticleTagMapperTest.java @@ -5,9 +5,8 @@ import cn.celess.blog.entity.*; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; -import java.util.Iterator; + import java.util.List; -import java.util.UUID; import static org.junit.Assert.*; @@ -111,7 +110,7 @@ public class ArticleTagMapperTest extends BaseTest { } private ArticleTag generateArticle() { - String randomText = UUID.randomUUID().toString(); + String randomText = randomStr(); Article article = new Article(); Category category = new Category(); diff --git a/src/test/java/cn/celess/blog/mapper/CategoryMapperTest.java b/src/test/java/cn/celess/blog/mapper/CategoryMapperTest.java index 3cdd172..4cf659d 100644 --- a/src/test/java/cn/celess/blog/mapper/CategoryMapperTest.java +++ b/src/test/java/cn/celess/blog/mapper/CategoryMapperTest.java @@ -5,7 +5,6 @@ import cn.celess.blog.entity.Category; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; -import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; From 47e5030f529443ef39cbfaebc75e47bc01397fc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A6=BE=E5=87=A0=E6=B5=B7?= Date: Sat, 15 Aug 2020 14:39:39 +0800 Subject: [PATCH 24/32] =?UTF-8?q?refactor:=20=E6=9B=BF=E6=8D=A2net.sf.json?= =?UTF-8?q?=E4=B8=BAfastJson?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../blog/service/WebUpdateInfoService.java | 4 +- .../serviceimpl/WebUpdateInfoServiceImpl.java | 38 +++++++++---------- .../cn/celess/blog/util/RedisUserUtil.java | 12 ++++-- 3 files changed, 28 insertions(+), 26 deletions(-) diff --git a/src/main/java/cn/celess/blog/service/WebUpdateInfoService.java b/src/main/java/cn/celess/blog/service/WebUpdateInfoService.java index 7e86124..3973598 100644 --- a/src/main/java/cn/celess/blog/service/WebUpdateInfoService.java +++ b/src/main/java/cn/celess/blog/service/WebUpdateInfoService.java @@ -2,10 +2,10 @@ package cn.celess.blog.service; import cn.celess.blog.entity.model.PageData; import cn.celess.blog.entity.model.WebUpdateModel; -import net.sf.json.JSONObject; import org.springframework.stereotype.Service; import java.util.List; +import java.util.Map; /** * @author : xiaohai @@ -59,5 +59,5 @@ public interface WebUpdateInfoService { * * @return */ - JSONObject getLastestUpdateTime(); + Map getLastestUpdateTime(); } diff --git a/src/main/java/cn/celess/blog/service/serviceimpl/WebUpdateInfoServiceImpl.java b/src/main/java/cn/celess/blog/service/serviceimpl/WebUpdateInfoServiceImpl.java index f23665a..9290086 100644 --- a/src/main/java/cn/celess/blog/service/serviceimpl/WebUpdateInfoServiceImpl.java +++ b/src/main/java/cn/celess/blog/service/serviceimpl/WebUpdateInfoServiceImpl.java @@ -10,20 +10,17 @@ import cn.celess.blog.service.WebUpdateInfoService; import cn.celess.blog.util.DateFormatUtil; import cn.celess.blog.util.HttpUtil; import cn.celess.blog.util.ModalTrans; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; -import net.sf.json.JSONArray; -import net.sf.json.JSONObject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.io.IOException; -import java.text.SimpleDateFormat; import java.time.Instant; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; +import java.util.*; /** * @author : xiaohai @@ -84,24 +81,25 @@ public class WebUpdateInfoServiceImpl implements WebUpdateInfoService { } @Override - public JSONObject getLastestUpdateTime() { - JSONObject jsonObject = new JSONObject(); - jsonObject.put("lastUpdateTime", DateFormatUtil.get(webUpdateInfoMapper.getLastestOne().getUpdateTime())); - jsonObject.put("lastUpdateInfo", webUpdateInfoMapper.getLastestOne().getUpdateInfo()); + public Map getLastestUpdateTime() { + Map map = new HashMap<>(); + map.put("lastUpdateTime", DateFormatUtil.get(webUpdateInfoMapper.getLastestOne().getUpdateTime())); + map.put("lastUpdateInfo", webUpdateInfoMapper.getLastestOne().getUpdateInfo()); try { - JSONArray array = JSONArray.fromObject(HttpUtil.get("https://api.github.com/repos/xiaohai2271/blog-frontEnd/commits?page=1&per_page=1")); - JSONObject object = array.getJSONObject(0); - JSONObject commit = object.getJSONObject("commit"); - jsonObject.put("lastCommit", commit.getString("message")); - jsonObject.put("committerAuthor", commit.getJSONObject("committer").getString("name")); - SimpleDateFormat sdf = new SimpleDateFormat(); - Instant parse = Instant.parse(commit.getJSONObject("committer").getString("date")); - jsonObject.put("committerDate", DateFormatUtil.get(Date.from(parse))); - jsonObject.put("commitUrl", "https://github.com/xiaohai2271/blog-frontEnd/tree/" + object.getString("sha")); + ObjectMapper mapper = new ObjectMapper(); + JsonNode root = mapper.readTree(HttpUtil.get("https://api.github.com/repos/xiaohai2271/blog-frontEnd/commits?page=1&per_page=1")); + Iterator elements = root.elements(); + JsonNode next = elements.next(); + JsonNode commit = next.get("commit"); + map.put("lastCommit", commit.get("message")); + map.put("committerAuthor", commit.get("committer").get("name")); + Instant parse = Instant.parse(commit.get("committer").get("date").asText()); + map.put("committerDate", DateFormatUtil.get(Date.from(parse))); + map.put("commitUrl", "https://github.com/xiaohai2271/blog-frontEnd/tree/" + next.get("sha").asText()); } catch (IOException e) { log.info("网络请求失败{}", e.getMessage()); } - return jsonObject; + return map; } private List list2List(List webUpdates) { diff --git a/src/main/java/cn/celess/blog/util/RedisUserUtil.java b/src/main/java/cn/celess/blog/util/RedisUserUtil.java index a161ad7..3233998 100644 --- a/src/main/java/cn/celess/blog/util/RedisUserUtil.java +++ b/src/main/java/cn/celess/blog/util/RedisUserUtil.java @@ -3,7 +3,8 @@ package cn.celess.blog.util; import cn.celess.blog.enmu.ResponseEnum; import cn.celess.blog.entity.User; import cn.celess.blog.exception.MyException; -import net.sf.json.JSONObject; +import com.fasterxml.jackson.databind.ObjectMapper; +import lombok.SneakyThrows; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -31,24 +32,27 @@ public class RedisUserUtil { return user; } + @SneakyThrows public User getWithOutExc() { String token = request.getHeader("Authorization"); if (token == null || token.isEmpty()) { return null; } String email = jwtUtil.getUsernameFromToken(token); - return (User) JSONObject.toBean(JSONObject.fromObject(redisUtil.get(email + "-login")), User.class); + return new ObjectMapper().readValue(redisUtil.get(email + "-login"), User.class); } + @SneakyThrows public User set(User user) { Long expire = redisUtil.getExpire(user.getEmail() + "-login"); - redisUtil.setEx(user.getEmail() + "-login", JSONObject.fromObject(user).toString(), + redisUtil.setEx(user.getEmail() + "-login", new ObjectMapper().writeValueAsString(user), expire > 0 ? expire : JwtUtil.EXPIRATION_SHORT_TIME, TimeUnit.MILLISECONDS); return user; } + @SneakyThrows public User set(User user, boolean isRemember) { - redisUtil.setEx(user.getEmail() + "-login", JSONObject.fromObject(user).toString(), + redisUtil.setEx(user.getEmail() + "-login", new ObjectMapper().writeValueAsString(user), isRemember ? JwtUtil.EXPIRATION_LONG_TIME : JwtUtil.EXPIRATION_SHORT_TIME, TimeUnit.MILLISECONDS); request.getSession().setAttribute("email", user.getEmail()); return user; From d46dada23a6f9a9933dd7be5da5ce9f97b61467c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A6=BE=E5=87=A0=E6=B5=B7?= Date: Sat, 15 Aug 2020 14:59:45 +0800 Subject: [PATCH 25/32] =?UTF-8?q?refactor:=20=E6=9B=BF=E6=8D=A2net.sf.json?= =?UTF-8?q?=E4=B8=BAfastJson?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 12 +++--- .../filter/AuthenticationFilter.java | 4 +- .../blog/controller/CommonController.java | 40 +++++++++---------- .../celess/blog/controller/TagController.java | 13 +++--- .../java/cn/celess/blog/entity/Response.java | 7 ++-- .../service/serviceimpl/UserServiceImpl.java | 10 ++--- 6 files changed, 42 insertions(+), 44 deletions(-) diff --git a/pom.xml b/pom.xml index cfa39a2..586e01f 100644 --- a/pom.xml +++ b/pom.xml @@ -77,12 +77,12 @@ - - net.sf.json-lib - json-lib - 2.4 - jdk15 - + + + + + + diff --git a/src/main/java/cn/celess/blog/configuration/filter/AuthenticationFilter.java b/src/main/java/cn/celess/blog/configuration/filter/AuthenticationFilter.java index b26597a..1b452da 100644 --- a/src/main/java/cn/celess/blog/configuration/filter/AuthenticationFilter.java +++ b/src/main/java/cn/celess/blog/configuration/filter/AuthenticationFilter.java @@ -5,7 +5,7 @@ import cn.celess.blog.entity.Response; import cn.celess.blog.service.UserService; import cn.celess.blog.util.JwtUtil; import cn.celess.blog.util.RedisUtil; -import net.sf.json.JSONObject; +import com.fasterxml.jackson.databind.ObjectMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -81,7 +81,7 @@ public class AuthenticationFilter implements HandlerInterceptor { response.setHeader("Content-Type", "application/json;charset=UTF-8"); try { logger.info("鉴权失败,[code:{},msg:{},path:{}]", e.getCode(), e.getMsg(), request.getRequestURI() + "?" + request.getQueryString()); - response.getWriter().println(JSONObject.fromObject(Response.response(e, null))); + response.getWriter().println(new ObjectMapper().writeValueAsString(Response.response(e, null))); } catch (IOException ex) { ex.printStackTrace(); } diff --git a/src/main/java/cn/celess/blog/controller/CommonController.java b/src/main/java/cn/celess/blog/controller/CommonController.java index 39dca2c..628ed98 100644 --- a/src/main/java/cn/celess/blog/controller/CommonController.java +++ b/src/main/java/cn/celess/blog/controller/CommonController.java @@ -9,8 +9,8 @@ import cn.celess.blog.service.QiniuService; import cn.celess.blog.util.HttpUtil; import cn.celess.blog.util.RedisUtil; import cn.celess.blog.util.VeriCodeUtil; -import net.sf.json.JSONArray; -import net.sf.json.JSONObject; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -140,7 +140,8 @@ public class CommonController { */ @PostMapping("/imgUpload") public void upload(HttpServletRequest request, HttpServletResponse response, @RequestParam("editormd-image-file") MultipartFile file) throws IOException { - JSONObject jsonObject = new JSONObject(); + Map map = new HashMap<>(); + ObjectMapper mapper = new ObjectMapper(); String uploadTimesStr = redisUtil.get(request.getRemoteAddr() + "-ImgUploadTimes"); int uploadTimes = 0; if (uploadTimesStr != null) { @@ -150,11 +151,11 @@ public class CommonController { throw new MyException(ResponseEnum.FAILURE.getCode(), "上传次数已达10次,请2小时后在上传"); } request.setCharacterEncoding("utf-8"); - response.setContentType("text/html"); + response.setContentType(MediaType.APPLICATION_JSON_UTF8_VALUE); if (file.isEmpty()) { - jsonObject.put("success", 0); - jsonObject.put("message", "上传失败,请选择文件"); - response.getWriter().println(jsonObject.toString()); + map.put("success", 0); + map.put("message", "上传失败,请选择文件"); + response.getWriter().println(mapper.writeValueAsString(map)); return; } String fileName = file.getOriginalFilename(); @@ -162,29 +163,28 @@ public class CommonController { if (".png".equals(mime.toLowerCase()) || ".jpg".equals(mime.toLowerCase()) || ".jpeg".equals(mime.toLowerCase()) || ".bmp".equals(mime.toLowerCase())) { QiniuResponse qiniuResponse = qiniuService.uploadFile(file.getInputStream(), "img_" + System.currentTimeMillis() + mime); - jsonObject.put("success", 1); - jsonObject.put("message", "上传成功"); - jsonObject.put("url", "http://cdn.celess.cn/" + qiniuResponse.key); - response.getWriter().println(jsonObject.toString()); + map.put("success", 1); + map.put("message", "上传成功"); + map.put("url", "http://cdn.celess.cn/" + qiniuResponse.key); + response.getWriter().println(mapper.writeValueAsString(map)); redisUtil.setEx(request.getRemoteAddr() + "-ImgUploadTimes", uploadTimes + 1 + "", 2, TimeUnit.HOURS); return; } - jsonObject.put("success", 0); - jsonObject.put("message", "上传失败,请上传图片文件"); - response.getWriter().println(jsonObject.toString()); + map.put("success", 0); + map.put("message", "上传失败,请上传图片文件"); + response.getWriter().println(mapper.writeValueAsString(map)); } @GetMapping("/bingPic") public Response bingPic() { - - JSONObject imageObj; + ObjectMapper mapper = new ObjectMapper(); + JsonNode root; try { - imageObj = JSONObject.fromObject(HttpUtil.get("https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN")); + root = mapper.readTree(HttpUtil.get("https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN")); } catch (IOException e) { return Response.failure(null); } - JSONArray jsonArray = imageObj.getJSONArray("images"); - String imageName = jsonArray.getJSONObject(0).getString("url"); - return Response.success("https://cn.bing.com" + imageName); + JsonNode images = root.get("images").elements().next(); + return Response.success("https://cn.bing.com" + images.get("url").asText()); } } diff --git a/src/main/java/cn/celess/blog/controller/TagController.java b/src/main/java/cn/celess/blog/controller/TagController.java index 95abe06..b09e0c8 100644 --- a/src/main/java/cn/celess/blog/controller/TagController.java +++ b/src/main/java/cn/celess/blog/controller/TagController.java @@ -3,12 +3,13 @@ package cn.celess.blog.controller; import cn.celess.blog.entity.Response; import cn.celess.blog.entity.model.TagModel; import cn.celess.blog.service.TagService; -import net.sf.json.JSONObject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * @author : xiaohai @@ -44,13 +45,13 @@ public class TagController { @GetMapping("/tags/nac") public Response getTagNameAndCount() { - List nameAndCount = new ArrayList<>(); + List> nameAndCount = new ArrayList<>(); List all = tagService.findAll(); for (TagModel t : all) { - JSONObject jsonObject = new JSONObject(); - jsonObject.put("name", t.getName()); - jsonObject.put("size", t.getArticles().size()); - nameAndCount.add(jsonObject); + Map map = new HashMap<>(2); + map.put("name", t.getName()); + map.put("size", t.getArticles().size()); + nameAndCount.add(map); } return Response.success(nameAndCount); } diff --git a/src/main/java/cn/celess/blog/entity/Response.java b/src/main/java/cn/celess/blog/entity/Response.java index 7630696..6f35606 100644 --- a/src/main/java/cn/celess/blog/entity/Response.java +++ b/src/main/java/cn/celess/blog/entity/Response.java @@ -1,8 +1,9 @@ package cn.celess.blog.entity; import cn.celess.blog.enmu.ResponseEnum; +import com.fasterxml.jackson.databind.ObjectMapper; import lombok.Data; -import net.sf.json.JSONObject; +import lombok.SneakyThrows; import java.io.Serializable; @@ -56,9 +57,9 @@ public class Response implements Serializable { return new Response(r.getCode(), r.getMsg(), result); } + @SneakyThrows @Override public String toString() { - JSONObject jsonObject = JSONObject.fromObject(this); - return jsonObject.toString(); + return new ObjectMapper().writeValueAsString(this); } } diff --git a/src/main/java/cn/celess/blog/service/serviceimpl/UserServiceImpl.java b/src/main/java/cn/celess/blog/service/serviceimpl/UserServiceImpl.java index 10bc0b0..2899599 100644 --- a/src/main/java/cn/celess/blog/service/serviceimpl/UserServiceImpl.java +++ b/src/main/java/cn/celess/blog/service/serviceimpl/UserServiceImpl.java @@ -17,8 +17,6 @@ import cn.celess.blog.service.UserService; import cn.celess.blog.util.*; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; -import net.sf.json.JSONArray; -import net.sf.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -28,9 +26,7 @@ import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletRequest; import java.beans.Transient; import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; +import java.util.*; import java.util.concurrent.TimeUnit; /** @@ -312,14 +308,14 @@ public class UserServiceImpl implements UserService { @Override public Object deleteUser(Integer[] id) { - JSONArray status = new JSONArray(); + List> status = new ArrayList<>(); if (id == null || id.length == 0) { return null; } for (Integer integer : id) { String role = userMapper.getRoleById(integer); int deleteResult = 0; - JSONObject deleteStatus = new JSONObject(); + Map deleteStatus = new HashMap<>(3); deleteStatus.put("id", integer); // 管理员账户不可删 if ("admin".equals(role)) { From b34acee733b762a43a2fbb9a5748a70681931b14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A6=BE=E5=87=A0=E6=B5=B7?= Date: Sat, 15 Aug 2020 15:00:07 +0800 Subject: [PATCH 26/32] =?UTF-8?q?refactor:=20=E4=BF=AE=E6=94=B9=E5=BD=93?= =?UTF-8?q?=E6=97=A5=E5=89=A9=E4=BD=99=E6=97=B6=E9=97=B4=E7=9A=84=E8=AE=A1?= =?UTF-8?q?=E7=AE=97=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../blog/service/serviceimpl/VisitorServiceImpl.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/cn/celess/blog/service/serviceimpl/VisitorServiceImpl.java b/src/main/java/cn/celess/blog/service/serviceimpl/VisitorServiceImpl.java index dbfac93..b37d5ba 100644 --- a/src/main/java/cn/celess/blog/service/serviceimpl/VisitorServiceImpl.java +++ b/src/main/java/cn/celess/blog/service/serviceimpl/VisitorServiceImpl.java @@ -15,7 +15,6 @@ import eu.bitwalker.useragentutils.Browser; import eu.bitwalker.useragentutils.OperatingSystem; import eu.bitwalker.useragentutils.UserAgent; import eu.bitwalker.useragentutils.Version; -import org.apache.commons.lang.time.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.json.JsonParserFactory; import org.springframework.stereotype.Service; @@ -26,6 +25,8 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; +import java.time.LocalDateTime; +import java.time.temporal.ChronoUnit; import java.util.*; import java.util.concurrent.TimeUnit; @@ -67,8 +68,9 @@ public class VisitorServiceImpl implements VisitorService { visitor.setUa(request.getHeader("User-Agent")); //记录当日的访问 String dayVisitCount = redisUtil.get("dayVisitCount"); - long secondsLeftToday = 86400 - DateUtils.getFragmentInSeconds(Calendar.getInstance(), Calendar.DATE); - Date date = new Date(Calendar.YEAR); + + LocalDateTime midnight = LocalDateTime.now().plusDays(1).withHour(0).withMinute(0).withSecond(0).withNano(0); + long secondsLeftToday = ChronoUnit.SECONDS.between(LocalDateTime.now(), midnight); if (dayVisitCount == null) { redisUtil.setEx("dayVisitCount", "1", secondsLeftToday, TimeUnit.SECONDS); } else { From dc851e84a4c2a659a9efe7584072dc5549a47430 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A6=BE=E5=87=A0=E6=B5=B7?= Date: Sat, 15 Aug 2020 15:03:16 +0800 Subject: [PATCH 27/32] =?UTF-8?q?fix(test):=20=E5=94=AF=E4=B8=80=E7=B4=A2?= =?UTF-8?q?=E5=BC=95=E5=BC=95=E5=8F=91=E7=9A=84=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/celess/blog/controller/LinksControllerTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/cn/celess/blog/controller/LinksControllerTest.java b/src/test/java/cn/celess/blog/controller/LinksControllerTest.java index e75759c..8abd274 100644 --- a/src/test/java/cn/celess/blog/controller/LinksControllerTest.java +++ b/src/test/java/cn/celess/blog/controller/LinksControllerTest.java @@ -68,7 +68,7 @@ public class LinksControllerTest extends BaseTest { partnerSite.setOpen(true); partnerSite.setDesc(""); partnerSite.setIconPath(""); - partnerSite.setUrl("https://www.celess.cn"); + partnerSite.setUrl("https://" + randomStr(4) + ".celess.cn"); mapper.insert(partnerSite); PartnerSite latest = mapper.getLastest(); assertNotNull(latest.getId()); From 03fcddb9713845d3bf57c2bb31d563a34458e549 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A6=BE=E5=87=A0=E6=B5=B7?= Date: Sat, 15 Aug 2020 15:12:07 +0800 Subject: [PATCH 28/32] =?UTF-8?q?fix(test):=E5=A4=96=E9=94=AE=E7=BA=A6?= =?UTF-8?q?=E6=9D=9F=E5=BC=95=E5=8F=91=E7=9A=84=E5=BC=82=E5=B8=B8=EF=BC=8C?= =?UTF-8?q?=E6=9B=BF=E6=8D=A2=E9=9A=8F=E6=9C=BA=E5=AD=97=E7=AC=A6=E4=B8=B2?= =?UTF-8?q?=E7=9A=84=E7=94=9F=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/CommentControllerTest.java | 19 ++++++++++--------- .../blog/controller/LinksControllerTest.java | 5 ++--- .../blog/controller/UserControllerTest.java | 8 ++++---- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/test/java/cn/celess/blog/controller/CommentControllerTest.java b/src/test/java/cn/celess/blog/controller/CommentControllerTest.java index 2c49e06..dcafc2c 100644 --- a/src/test/java/cn/celess/blog/controller/CommentControllerTest.java +++ b/src/test/java/cn/celess/blog/controller/CommentControllerTest.java @@ -14,7 +14,7 @@ import com.fasterxml.jackson.core.type.TypeReference; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; -import java.util.UUID; +import java.util.List; import static cn.celess.blog.enmu.ResponseEnum.DATA_IS_DELETED; import static cn.celess.blog.enmu.ResponseEnum.SUCCESS; @@ -36,25 +36,26 @@ public class CommentControllerTest extends BaseTest { Article article = articleMapper.getLastestArticle(); CommentReq commentReq = new CommentReq(); commentReq.setPagePath("/article/" + article.getId()); - commentReq.setContent(UUID.randomUUID().toString()); - commentReq.setPid(-1L); - commentReq.setToUserId(-1L); + commentReq.setContent(randomStr()); + List all = userMapper.findAll(); + commentReq.setPid(1L); + commentReq.setToUserId(2l); getMockData(post("/user/comment/create"), userLogin(), commentReq).andDo(result -> { Response response = getResponse(result, COMMENT_MODEL_TYPE); assertEquals(SUCCESS.getCode(), response.getCode()); CommentModel model = response.getResult(); assertNotEquals(0, model.getId()); assertEquals(commentReq.getPid(), model.getPid().longValue()); - assertEquals(-1, model.getPid().longValue()); + assertEquals(1, model.getPid().longValue()); assertEquals(commentReq.getContent(), model.getContent()); assertNotNull(model.getDate()); assertNotNull(model.getFromUser()); - assertNull(model.getToUser()); + assertNotNull(model.getToUser()); }); commentReq.setPagePath("/article/" + article.getId()); - commentReq.setContent(UUID.randomUUID().toString()); + commentReq.setContent(randomStr()); commentReq.setPid(-1L); commentReq.setToUserId(2); getMockData(post("/user/comment/create"), userLogin(), commentReq).andDo(result -> { @@ -75,7 +76,7 @@ public class CommentControllerTest extends BaseTest { // 测试二级回复 Comment latestComment = commentMapper.getLastestComment(); commentReq.setPagePath("/article/" + article.getId()); - commentReq.setContent(UUID.randomUUID().toString()); + commentReq.setContent(randomStr()); commentReq.setPid(latestComment.getId()); getMockData(post("/user/comment/create"), userLogin(), commentReq).andDo(result -> { Response response = getResponse(result, COMMENT_MODEL_TYPE); @@ -120,7 +121,7 @@ public class CommentControllerTest extends BaseTest { Comment comment = commentMapper.getLastestComment(); CommentReq commentReq = new CommentReq(); commentReq.setId(comment.getId()); - commentReq.setContent(UUID.randomUUID().toString()); + commentReq.setContent(randomStr()); // 不合法数据 setResponseId getMockData(put("/user/comment/update"), userLogin(), commentReq).andDo(result -> { Response response = getResponse(result, COMMENT_MODEL_TYPE); diff --git a/src/test/java/cn/celess/blog/controller/LinksControllerTest.java b/src/test/java/cn/celess/blog/controller/LinksControllerTest.java index 8abd274..561ea08 100644 --- a/src/test/java/cn/celess/blog/controller/LinksControllerTest.java +++ b/src/test/java/cn/celess/blog/controller/LinksControllerTest.java @@ -11,7 +11,6 @@ import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import java.util.List; -import java.util.UUID; import static cn.celess.blog.enmu.ResponseEnum.*; import static org.junit.Assert.*; @@ -45,7 +44,7 @@ public class LinksControllerTest extends BaseTest { }); // https/http - linkReq.setName(UUID.randomUUID().toString().substring(0, 4)); + linkReq.setName(randomStr(4)); linkReq.setOpen(false); linkReq.setUrl("example.com"); getMockData(post("/admin/links/create"), adminLogin(), linkReq).andDo(result -> { @@ -105,7 +104,7 @@ public class LinksControllerTest extends BaseTest { LinkReq linkReq = new LinkReq(); linkReq.setUrl(latest.getUrl()); linkReq.setOpen(!latest.getOpen()); - linkReq.setName(UUID.randomUUID().toString().substring(0, 4)); + linkReq.setName(randomStr(4)); linkReq.setId(latest.getId()); getMockData(put("/admin/links/update"), adminLogin(), linkReq).andDo(result -> { diff --git a/src/test/java/cn/celess/blog/controller/UserControllerTest.java b/src/test/java/cn/celess/blog/controller/UserControllerTest.java index 0d5fed7..6e8872e 100644 --- a/src/test/java/cn/celess/blog/controller/UserControllerTest.java +++ b/src/test/java/cn/celess/blog/controller/UserControllerTest.java @@ -68,8 +68,8 @@ public class UserControllerTest extends BaseTest { @Test public void updateInfo() throws Exception { - String desc = UUID.randomUUID().toString().substring(0, 4); - String disPlayName = UUID.randomUUID().toString().substring(0, 4); + String desc = randomStr(4); + String disPlayName = randomStr(4); getMockData(put("/user/userInfo/update?desc=" + desc + "&displayName=" + disPlayName), userLogin()).andDo(result -> { Response response = getResponse(result, USER_MODEL_TYPE); assertEquals(SUCCESS.getCode(), response.getCode()); @@ -157,7 +157,7 @@ public class UserControllerTest extends BaseTest { public void multipleDelete() throws Exception { List userList = new ArrayList<>(); for (int i = 0; i < 10; i++) { - String s = UUID.randomUUID().toString(); + String s = randomStr(); String email = s.substring(s.length() - 4) + "@celess.cn"; String pwd = MD5Util.getMD5("123456789"); User user = new User(email, pwd); @@ -202,7 +202,7 @@ public class UserControllerTest extends BaseTest { userReq.setEmailStatus(new Random().nextBoolean()); userReq.setRole("admin"); userReq.setDisplayName(randomStr(4)); - userReq.setEmail(randomStr().substring(0, 5) + "@celess.cn"); + userReq.setEmail(randomStr(5) + "@celess.cn"); getMockData(put("/admin/user"), adminLogin(), userReq).andDo(result -> { Response response = getResponse(result, USER_MODEL_TYPE); assertEquals(SUCCESS.getCode(), response.getCode()); From c9f91bf2c1388d6cc8d6bd1e2c5ca48ea5ceac31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A6=BE=E5=87=A0=E6=B5=B7?= Date: Sat, 15 Aug 2020 15:26:41 +0800 Subject: [PATCH 29/32] =?UTF-8?q?fix(test):=E5=A4=96=E9=94=AE=E7=BA=A6?= =?UTF-8?q?=E6=9D=9F=E5=BC=95=E5=8F=91=E7=9A=84=E5=BC=82=E5=B8=B8=EF=BC=8C?= =?UTF-8?q?=E6=9B=BF=E6=8D=A2=E9=9A=8F=E6=9C=BA=E5=AD=97=E7=AC=A6=E4=B8=B2?= =?UTF-8?q?=E7=9A=84=E7=94=9F=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/celess/blog/controller/LinksControllerTest.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/test/java/cn/celess/blog/controller/LinksControllerTest.java b/src/test/java/cn/celess/blog/controller/LinksControllerTest.java index 561ea08..b0d7ebb 100644 --- a/src/test/java/cn/celess/blog/controller/LinksControllerTest.java +++ b/src/test/java/cn/celess/blog/controller/LinksControllerTest.java @@ -32,7 +32,7 @@ public class LinksControllerTest extends BaseTest { LinkReq linkReq = new LinkReq(); linkReq.setName(randomStr(4)); linkReq.setOpen(false); - linkReq.setUrl("https://example.com"); + linkReq.setUrl("https://" + randomStr(4) + "example.com"); getMockData(post("/admin/links/create"), adminLogin(), linkReq).andDo(result -> { Response response = getResponse(result, LINK_MODEL_TYPE); assertEquals(SUCCESS.getCode(), response.getCode()); @@ -46,12 +46,12 @@ public class LinksControllerTest extends BaseTest { // https/http linkReq.setName(randomStr(4)); linkReq.setOpen(false); - linkReq.setUrl("example.com"); + linkReq.setUrl(randomStr(4) + ".example.com"); getMockData(post("/admin/links/create"), adminLogin(), linkReq).andDo(result -> { Response response = getResponse(result, LINK_MODEL_TYPE); assertEquals(SUCCESS.getCode(), response.getCode()); PartnerSite site = response.getResult(); - assertEquals("http://example.com", site.getUrl()); + assertEquals("http://" + linkReq.getUrl(), site.getUrl()); }); // 测试已存在的数据 @@ -95,7 +95,7 @@ public class LinksControllerTest extends BaseTest { partnerSite.setDesc(""); partnerSite.setIconPath(""); partnerSite.setDelete(false); - partnerSite.setUrl("https://www.celess.cn"); + partnerSite.setUrl("https://" + randomStr(5) + ".celess.cn"); mapper.insert(partnerSite); // 查数据 PartnerSite latest = mapper.getLastest(); From 6b77655c160d57537f428c32077132a32a1b0ca2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A6=BE=E5=87=A0=E6=B5=B7?= Date: Sat, 15 Aug 2020 15:44:34 +0800 Subject: [PATCH 30/32] style: optimize imports --- .../blog/controller/ArticleController.java | 3 --- .../celess/blog/controller/LinksController.java | 6 ------ .../service/serviceimpl/ArticleServiceImpl.java | 1 - .../serviceimpl/PartnerSiteServiceImpl.java | 1 - src/test/java/cn/celess/blog/BaseTest.java | 3 ++- .../java/cn/celess/blog/RedisServerMock.java | 2 +- .../blog/controller/ArticleControllerTest.java | 5 ++--- .../blog/controller/CategoryControllerTest.java | 2 +- .../blog/controller/LinksControllerTest.java | 17 +++-------------- .../blog/controller/TagControllerTest.java | 2 +- .../blog/controller/UserControllerTest.java | 6 ++++-- .../controller/WebUpdateInfoControllerTest.java | 3 ++- .../blog/mapper/ArticleTagMapperTest.java | 1 - .../celess/blog/mapper/VisitorMapperTest.java | 3 ++- .../cn/celess/blog/util/DateFormatUtilTest.java | 2 +- .../java/cn/celess/blog/util/HttpUtilTest.java | 6 +----- .../java/cn/celess/blog/util/MD5UtilTest.java | 2 +- 17 files changed, 21 insertions(+), 44 deletions(-) diff --git a/src/main/java/cn/celess/blog/controller/ArticleController.java b/src/main/java/cn/celess/blog/controller/ArticleController.java index f11835e..e611d94 100644 --- a/src/main/java/cn/celess/blog/controller/ArticleController.java +++ b/src/main/java/cn/celess/blog/controller/ArticleController.java @@ -3,7 +3,6 @@ package cn.celess.blog.controller; import cn.celess.blog.enmu.ResponseEnum; import cn.celess.blog.entity.Response; import cn.celess.blog.entity.model.ArticleModel; -import cn.celess.blog.entity.model.PageData; import cn.celess.blog.entity.request.ArticleReq; import cn.celess.blog.service.ArticleService; import cn.celess.blog.util.RedisUserUtil; @@ -13,8 +12,6 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; -import java.util.List; -import java.util.stream.Collectors; /** * @author : xiaohai diff --git a/src/main/java/cn/celess/blog/controller/LinksController.java b/src/main/java/cn/celess/blog/controller/LinksController.java index fb5b599..1375acc 100644 --- a/src/main/java/cn/celess/blog/controller/LinksController.java +++ b/src/main/java/cn/celess/blog/controller/LinksController.java @@ -1,24 +1,18 @@ package cn.celess.blog.controller; -import cn.celess.blog.enmu.ResponseEnum; import cn.celess.blog.entity.PartnerSite; import cn.celess.blog.entity.Response; import cn.celess.blog.entity.request.LinkApplyReq; import cn.celess.blog.entity.request.LinkReq; -import cn.celess.blog.exception.MyException; import cn.celess.blog.service.MailService; import cn.celess.blog.service.PartnerSiteService; -import cn.celess.blog.util.DateFormatUtil; import cn.celess.blog.util.RedisUtil; -import cn.celess.blog.util.RegexUtil; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.mail.SimpleMailMessage; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; import java.util.List; -import java.util.concurrent.TimeUnit; /** * @author : xiaohai diff --git a/src/main/java/cn/celess/blog/service/serviceimpl/ArticleServiceImpl.java b/src/main/java/cn/celess/blog/service/serviceimpl/ArticleServiceImpl.java index b5e9c9a..ed7d788 100644 --- a/src/main/java/cn/celess/blog/service/serviceimpl/ArticleServiceImpl.java +++ b/src/main/java/cn/celess/blog/service/serviceimpl/ArticleServiceImpl.java @@ -22,7 +22,6 @@ import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import sun.security.krb5.internal.PAData; import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; diff --git a/src/main/java/cn/celess/blog/service/serviceimpl/PartnerSiteServiceImpl.java b/src/main/java/cn/celess/blog/service/serviceimpl/PartnerSiteServiceImpl.java index af49b48..398cba5 100644 --- a/src/main/java/cn/celess/blog/service/serviceimpl/PartnerSiteServiceImpl.java +++ b/src/main/java/cn/celess/blog/service/serviceimpl/PartnerSiteServiceImpl.java @@ -10,7 +10,6 @@ import cn.celess.blog.mapper.PartnerMapper; import cn.celess.blog.service.MailService; import cn.celess.blog.service.PartnerSiteService; import cn.celess.blog.util.HttpUtil; -import cn.celess.blog.util.JwtUtil; import cn.celess.blog.util.RedisUtil; import cn.celess.blog.util.RegexUtil; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/src/test/java/cn/celess/blog/BaseTest.java b/src/test/java/cn/celess/blog/BaseTest.java index 2a8e4e2..fa740f6 100644 --- a/src/test/java/cn/celess/blog/BaseTest.java +++ b/src/test/java/cn/celess/blog/BaseTest.java @@ -33,7 +33,6 @@ import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilde import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.springframework.web.context.WebApplicationContext; - import java.io.IOException; import java.io.InputStream; import java.io.UnsupportedEncodingException; @@ -64,6 +63,8 @@ public class BaseTest { protected MockMvc mockMvc; protected final static String Code = "code"; protected final static String Result = "result"; + protected final static String USERE_MAIL = "zh56462271@qq.com"; + protected final static String ADMIN_EMAIL = "a@celess.cn"; /** * jackson 序列化/反序列化Json diff --git a/src/test/java/cn/celess/blog/RedisServerMock.java b/src/test/java/cn/celess/blog/RedisServerMock.java index ec1df6f..009afa1 100644 --- a/src/test/java/cn/celess/blog/RedisServerMock.java +++ b/src/test/java/cn/celess/blog/RedisServerMock.java @@ -1,7 +1,7 @@ package cn.celess.blog; -import redis.embedded.RedisServer; import org.springframework.stereotype.Component; +import redis.embedded.RedisServer; import javax.annotation.PostConstruct; import javax.annotation.PreDestroy; diff --git a/src/test/java/cn/celess/blog/controller/ArticleControllerTest.java b/src/test/java/cn/celess/blog/controller/ArticleControllerTest.java index 40d7aca..d63d8a7 100644 --- a/src/test/java/cn/celess/blog/controller/ArticleControllerTest.java +++ b/src/test/java/cn/celess/blog/controller/ArticleControllerTest.java @@ -14,12 +14,11 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import java.util.List; -import java.util.*; - +import static cn.celess.blog.enmu.ResponseEnum.*; import static org.junit.Assert.*; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; -import static cn.celess.blog.enmu.ResponseEnum.*; public class ArticleControllerTest extends BaseTest { @Autowired diff --git a/src/test/java/cn/celess/blog/controller/CategoryControllerTest.java b/src/test/java/cn/celess/blog/controller/CategoryControllerTest.java index 45317e5..cb5e78c 100644 --- a/src/test/java/cn/celess/blog/controller/CategoryControllerTest.java +++ b/src/test/java/cn/celess/blog/controller/CategoryControllerTest.java @@ -10,9 +10,9 @@ import com.fasterxml.jackson.core.type.TypeReference; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; +import static cn.celess.blog.enmu.ResponseEnum.SUCCESS; import static org.junit.Assert.*; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; -import static cn.celess.blog.enmu.ResponseEnum.*; public class CategoryControllerTest extends BaseTest { diff --git a/src/test/java/cn/celess/blog/controller/LinksControllerTest.java b/src/test/java/cn/celess/blog/controller/LinksControllerTest.java index 3fb914c..646ef85 100644 --- a/src/test/java/cn/celess/blog/controller/LinksControllerTest.java +++ b/src/test/java/cn/celess/blog/controller/LinksControllerTest.java @@ -8,24 +8,13 @@ import cn.celess.blog.entity.request.LinkApplyReq; import cn.celess.blog.entity.request.LinkReq; import cn.celess.blog.exception.MyException; import cn.celess.blog.mapper.PartnerMapper; +import cn.celess.blog.service.PartnerSiteService; import com.fasterxml.jackson.core.type.TypeReference; +import lombok.extern.slf4j.Slf4j; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import java.util.List; -import cn.celess.blog.service.MailService; -import cn.celess.blog.service.PartnerSiteService; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import lombok.extern.slf4j.Slf4j; -import net.sf.json.JSONObject; -import org.junit.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.MediaType; -import org.springframework.mail.SimpleMailMessage; - -import java.lang.reflect.Field; -import java.util.UUID; import static cn.celess.blog.enmu.ResponseEnum.*; import static org.junit.Assert.*; @@ -228,7 +217,7 @@ public class LinksControllerTest extends BaseTest { req.setEmail(randomStr(4) + "@celess.cn"); req.setLinkUrl("https://bing.com"); req.setUrl(req.getLinkUrl()); - String uuid = null; + String uuid; try { partnerSiteService.apply(req); // err here diff --git a/src/test/java/cn/celess/blog/controller/TagControllerTest.java b/src/test/java/cn/celess/blog/controller/TagControllerTest.java index dd5abf6..dd3811f 100644 --- a/src/test/java/cn/celess/blog/controller/TagControllerTest.java +++ b/src/test/java/cn/celess/blog/controller/TagControllerTest.java @@ -13,9 +13,9 @@ import org.springframework.beans.factory.annotation.Autowired; import java.util.List; import java.util.Map; +import static cn.celess.blog.enmu.ResponseEnum.*; import static org.junit.Assert.*; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; -import static cn.celess.blog.enmu.ResponseEnum.*; public class TagControllerTest extends BaseTest { @Autowired diff --git a/src/test/java/cn/celess/blog/controller/UserControllerTest.java b/src/test/java/cn/celess/blog/controller/UserControllerTest.java index f142ed6..1ea75af 100644 --- a/src/test/java/cn/celess/blog/controller/UserControllerTest.java +++ b/src/test/java/cn/celess/blog/controller/UserControllerTest.java @@ -23,14 +23,16 @@ import org.springframework.util.MultiValueMap; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; -import java.util.*; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Random; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; import static cn.celess.blog.enmu.ResponseEnum.*; import static org.junit.Assert.*; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; -import static cn.celess.blog.enmu.ResponseEnum.*; public class UserControllerTest extends BaseTest { diff --git a/src/test/java/cn/celess/blog/controller/WebUpdateInfoControllerTest.java b/src/test/java/cn/celess/blog/controller/WebUpdateInfoControllerTest.java index 367dc34..648a41a 100644 --- a/src/test/java/cn/celess/blog/controller/WebUpdateInfoControllerTest.java +++ b/src/test/java/cn/celess/blog/controller/WebUpdateInfoControllerTest.java @@ -14,7 +14,8 @@ import org.springframework.beans.factory.annotation.Autowired; import java.util.Date; import java.util.List; -import static cn.celess.blog.enmu.ResponseEnum.*; +import static cn.celess.blog.enmu.ResponseEnum.DATA_NOT_EXIST; +import static cn.celess.blog.enmu.ResponseEnum.SUCCESS; import static org.junit.Assert.*; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; diff --git a/src/test/java/cn/celess/blog/mapper/ArticleTagMapperTest.java b/src/test/java/cn/celess/blog/mapper/ArticleTagMapperTest.java index a6ee615..6941f2d 100644 --- a/src/test/java/cn/celess/blog/mapper/ArticleTagMapperTest.java +++ b/src/test/java/cn/celess/blog/mapper/ArticleTagMapperTest.java @@ -5,7 +5,6 @@ import cn.celess.blog.entity.*; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; - import java.util.List; import static org.junit.Assert.*; diff --git a/src/test/java/cn/celess/blog/mapper/VisitorMapperTest.java b/src/test/java/cn/celess/blog/mapper/VisitorMapperTest.java index d782c94..1e2c78d 100644 --- a/src/test/java/cn/celess/blog/mapper/VisitorMapperTest.java +++ b/src/test/java/cn/celess/blog/mapper/VisitorMapperTest.java @@ -7,7 +7,8 @@ import org.springframework.beans.factory.annotation.Autowired; import java.util.Date; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; public class VisitorMapperTest extends BaseTest { diff --git a/src/test/java/cn/celess/blog/util/DateFormatUtilTest.java b/src/test/java/cn/celess/blog/util/DateFormatUtilTest.java index f0b1b90..c1a8b8e 100644 --- a/src/test/java/cn/celess/blog/util/DateFormatUtilTest.java +++ b/src/test/java/cn/celess/blog/util/DateFormatUtilTest.java @@ -5,7 +5,7 @@ import org.junit.Test; import java.util.Date; -import static org.junit.Assert.*; +import static org.junit.Assert.assertNotNull; public class DateFormatUtilTest extends BaseTest { diff --git a/src/test/java/cn/celess/blog/util/HttpUtilTest.java b/src/test/java/cn/celess/blog/util/HttpUtilTest.java index 77dc9e0..544d0ab 100644 --- a/src/test/java/cn/celess/blog/util/HttpUtilTest.java +++ b/src/test/java/cn/celess/blog/util/HttpUtilTest.java @@ -1,13 +1,9 @@ package cn.celess.blog.util; import cn.celess.blog.BaseTest; -import cn.celess.blog.enmu.ResponseEnum; -import cn.celess.blog.entity.Response; import org.junit.Test; -import java.util.Map; - -import static org.junit.Assert.*; +import static org.junit.Assert.assertNotNull; public class HttpUtilTest extends BaseTest { diff --git a/src/test/java/cn/celess/blog/util/MD5UtilTest.java b/src/test/java/cn/celess/blog/util/MD5UtilTest.java index f9010c4..b8604a0 100644 --- a/src/test/java/cn/celess/blog/util/MD5UtilTest.java +++ b/src/test/java/cn/celess/blog/util/MD5UtilTest.java @@ -3,7 +3,7 @@ package cn.celess.blog.util; import cn.celess.blog.BaseTest; import org.junit.Test; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; public class MD5UtilTest extends BaseTest { From 40e1f4d6abdd0e4fb5a50c3a4e9ccff06ab26793 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A6=BE=E5=87=A0=E6=B5=B7?= Date: Sat, 15 Aug 2020 16:00:05 +0800 Subject: [PATCH 31/32] =?UTF-8?q?fix:=20=E7=A9=BA=E5=80=BC=E5=BC=82?= =?UTF-8?q?=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/PartnerSiteServiceImpl.java | 2 +- .../serviceimpl/WebUpdateInfoServiceImpl.java | 22 +++++++++++-------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/main/java/cn/celess/blog/service/serviceimpl/PartnerSiteServiceImpl.java b/src/main/java/cn/celess/blog/service/serviceimpl/PartnerSiteServiceImpl.java index 398cba5..0e790fe 100644 --- a/src/main/java/cn/celess/blog/service/serviceimpl/PartnerSiteServiceImpl.java +++ b/src/main/java/cn/celess/blog/service/serviceimpl/PartnerSiteServiceImpl.java @@ -12,11 +12,11 @@ import cn.celess.blog.service.PartnerSiteService; import cn.celess.blog.util.HttpUtil; import cn.celess.blog.util.RedisUtil; import cn.celess.blog.util.RegexUtil; +import com.alibaba.druid.util.StringUtils; import com.fasterxml.jackson.databind.ObjectMapper; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import lombok.SneakyThrows; -import org.apache.commons.lang.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.mail.SimpleMailMessage; diff --git a/src/main/java/cn/celess/blog/service/serviceimpl/WebUpdateInfoServiceImpl.java b/src/main/java/cn/celess/blog/service/serviceimpl/WebUpdateInfoServiceImpl.java index 49888ed..ce51248 100644 --- a/src/main/java/cn/celess/blog/service/serviceimpl/WebUpdateInfoServiceImpl.java +++ b/src/main/java/cn/celess/blog/service/serviceimpl/WebUpdateInfoServiceImpl.java @@ -10,6 +10,7 @@ import cn.celess.blog.service.WebUpdateInfoService; import cn.celess.blog.util.DateFormatUtil; import cn.celess.blog.util.HttpUtil; import cn.celess.blog.util.ModalTrans; +import com.alibaba.druid.util.StringUtils; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.github.pagehelper.PageHelper; @@ -88,15 +89,18 @@ public class WebUpdateInfoServiceImpl implements WebUpdateInfoService { map.put("lastUpdateInfo", webUpdateInfoMapper.getLastestOne().getUpdateInfo()); try { ObjectMapper mapper = new ObjectMapper(); - JsonNode root = mapper.readTree(HttpUtil.get("https://api.github.com/repos/xiaohai2271/blog-frontEnd/commits?page=1&per_page=1")); - Iterator elements = root.elements(); - JsonNode next = elements.next(); - JsonNode commit = next.get("commit"); - map.put("lastCommit", commit.get("message")); - map.put("committerAuthor", commit.get("committer").get("name")); - Instant parse = Instant.parse(commit.get("committer").get("date").asText()); - map.put("committerDate", DateFormatUtil.get(Date.from(parse))); - map.put("commitUrl", "https://github.com/xiaohai2271/blog-frontEnd/tree/" + next.get("sha").asText()); + String respStr = HttpUtil.get("https://api.github.com/repos/xiaohai2271/blog-frontEnd/commits?page=1&per_page=1"); + if (!StringUtils.isEmpty(respStr)) { + JsonNode root = mapper.readTree(respStr); + Iterator elements = root.elements(); + JsonNode next = elements.next(); + JsonNode commit = next.get("commit"); + map.put("lastCommit", commit.get("message")); + map.put("committerAuthor", commit.get("committer").get("name")); + Instant parse = Instant.parse(commit.get("committer").get("date").asText()); + map.put("committerDate", DateFormatUtil.get(Date.from(parse))); + map.put("commitUrl", "https://github.com/xiaohai2271/blog-frontEnd/tree/" + next.get("sha").asText()); + } } catch (IOException e) { log.info("网络请求失败{}", e.getMessage()); } From a7f947a017bcade5bea89940848a7ec8cabf692d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A6=BE=E5=87=A0=E6=B5=B7?= Date: Sat, 15 Aug 2020 16:03:22 +0800 Subject: [PATCH 32/32] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E9=83=A8?= =?UTF-8?q?=E5=88=86=E6=B5=8B=E8=AF=95=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 8 -------- src/test/java/cn/celess/blog/BaseTest.java | 1 + .../cn/celess/blog/controller/UserControllerTest.java | 3 ++- 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/pom.xml b/pom.xml index a14aa4f..6c87937 100644 --- a/pom.xml +++ b/pom.xml @@ -76,14 +76,6 @@ compile - - - - - - - - com.qiniu diff --git a/src/test/java/cn/celess/blog/BaseTest.java b/src/test/java/cn/celess/blog/BaseTest.java index fa740f6..20a6603 100644 --- a/src/test/java/cn/celess/blog/BaseTest.java +++ b/src/test/java/cn/celess/blog/BaseTest.java @@ -283,6 +283,7 @@ public class BaseTest { protected void mockInjectInstance(Object service, String mailFiledName, Object impl) { Field field; try { + assertNotNull(service); field = service.getClass().getDeclaredField(mailFiledName); field.setAccessible(true); field.set(service, impl); diff --git a/src/test/java/cn/celess/blog/controller/UserControllerTest.java b/src/test/java/cn/celess/blog/controller/UserControllerTest.java index 1ea75af..a6bc88b 100644 --- a/src/test/java/cn/celess/blog/controller/UserControllerTest.java +++ b/src/test/java/cn/celess/blog/controller/UserControllerTest.java @@ -48,6 +48,7 @@ public class UserControllerTest extends BaseTest { }; private static final TypeReference USER_MODEL_LIST_TYPE = new TypeReference>>>() { }; + @Autowired UserService userService; @@ -90,7 +91,7 @@ public class UserControllerTest extends BaseTest { @Test public void getUserInfo() throws Exception { - getMockData(get("/user/userInfo"), userLogin()).andDo(result -> { + getMockData(get("/user/userInfo"), adminLogin()).andDo(result -> { Response response = getResponse(result, USER_MODEL_TYPE); assertEquals(SUCCESS.getCode(), response.getCode()); UserModel u = response.getResult();