切换到jackson #10

Merged
xiaohai2271 merged 33 commits from feature-trans2jackson into dev 2020-08-15 16:05:40 +08:00
Showing only changes of commit 003f74f5f1 - Show all commits

View File

@@ -8,8 +8,6 @@ import cn.celess.blog.entity.model.ArticleModel;
import cn.celess.blog.entity.model.PageData; import cn.celess.blog.entity.model.PageData;
import cn.celess.blog.entity.request.ArticleReq; import cn.celess.blog.entity.request.ArticleReq;
import cn.celess.blog.mapper.ArticleMapper; import cn.celess.blog.mapper.ArticleMapper;
import com.fasterxml.jackson.core.type.TypeReference;
import net.sf.json.JSONObject;
import org.junit.Test; import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder; import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder;
@@ -20,7 +18,6 @@ import java.util.*;
import static org.junit.Assert.*; import static org.junit.Assert.*;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; 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.*; import static cn.celess.blog.enmu.ResponseEnum.*;
public class ArticleControllerTest extends BaseTest { public class ArticleControllerTest extends BaseTest {
@@ -43,8 +40,7 @@ public class ArticleControllerTest extends BaseTest {
try { try {
getMockData(post, adminLogin(), articleReq).andDo(result -> { getMockData(post, adminLogin(), articleReq).andDo(result -> {
Response<ArticleModel> response = mapper.readValue(result.getResponse().getContentAsString(), new TypeReference<Response<ArticleModel>>() { Response<ArticleModel> response = getResponse(result);
});
assertEquals(SUCCESS.getCode(), response.getCode()); assertEquals(SUCCESS.getCode(), response.getCode());
assertNotNull(response.getResult()); assertNotNull(response.getResult());
ArticleModel articleModel = response.getResult(); ArticleModel articleModel = response.getResult();
@@ -80,8 +76,7 @@ public class ArticleControllerTest extends BaseTest {
try { try {
Article finalArticle = article; Article finalArticle = article;
getMockData(delete, adminLogin()).andDo(result -> { getMockData(delete, adminLogin()).andDo(result -> {
Response<Boolean> response = mapper.readValue(result.getResponse().getContentAsString(), new TypeReference<Response<Boolean>>() { Response<Boolean> response = getResponse(result);
});
assertEquals(SUCCESS.getCode(), response.getCode()); assertEquals(SUCCESS.getCode(), response.getCode());
// 断言删除成功 // 断言删除成功
assertTrue(response.getResult()); assertTrue(response.getResult());
@@ -108,9 +103,8 @@ public class ArticleControllerTest extends BaseTest {
articleReq.setTags(tagList); articleReq.setTags(tagList);
articleReq.setTitle("test-" + article.getTitle()); articleReq.setTitle("test-" + article.getTitle());
try { try {
getMockData(put("/admin/article/update"), adminLogin(),articleReq).andDo(result -> { getMockData(put("/admin/article/update"), adminLogin(), articleReq).andDo(result -> {
Response<ArticleModel> response = mapper.readValue(result.getResponse().getContentAsString(), new TypeReference<Response<ArticleModel>>() { Response<ArticleModel> response = getResponse(result);
});
assertEquals(SUCCESS.getCode(), response.getCode()); assertEquals(SUCCESS.getCode(), response.getCode());
ArticleModel a = response.getResult(); ArticleModel a = response.getResult();
assertEquals(articleReq.getCategory(), a.getCategory()); assertEquals(articleReq.getCategory(), a.getCategory());
@@ -133,43 +127,35 @@ public class ArticleControllerTest extends BaseTest {
public void retrieveOneById() { public void retrieveOneById() {
try { try {
long articleID = 3; long articleID = 3;
mockMvc.perform(MockMvcRequestBuilders.get("/article/articleID/" + articleID)) getMockData(MockMvcRequestBuilders.get("/article/articleID/" + articleID));
.andExpect(status().is(200)); getMockData(MockMvcRequestBuilders.get("/article/articleID/" + articleID + "?update=true"));
mockMvc.perform(MockMvcRequestBuilders.get("/article/articleID/" + articleID + "?update=true"))
.andExpect(status().is(200));
// 文章不存在 // 文章不存在
mockMvc.perform(MockMvcRequestBuilders.get("/article/articleID/-1")) getMockData(MockMvcRequestBuilders.get("/article/articleID/-1"))
.andExpect(status().is(200)) .andDo(result -> assertEquals(ARTICLE_NOT_EXIST.getCode(), getResponse(result).getCode()));
.andDo(result -> {
JSONObject jsonObject = JSONObject.fromObject(result.getResponse().getContentAsString());
assertEquals(ARTICLE_NOT_EXIST.getCode(), jsonObject.getInt(Code));
});
// 正常情况 // 正常情况
mockMvc.perform(MockMvcRequestBuilders.get("/article/articleID/" + articleID + "?update=false")) getMockData(MockMvcRequestBuilders.get("/article/articleID/" + articleID + "?update=false")).andDo(result -> {
.andExpect(status().is(200)) Response<ArticleModel> response = getResponse(result);
.andDo(result -> { // 断言获取数据成功
JSONObject articleJson = JSONObject.fromObject(result.getResponse().getContentAsString()); assertEquals(SUCCESS.getCode(), response.getCode());
// 断言获取数据成功 assertNotNull(response.getResult());
assertEquals(SUCCESS.getCode(), articleJson.getInt(Code));
assertNotNull(articleJson.getJSONObject(Result));
ArticleModel a = (ArticleModel) JSONObject.toBean(articleJson.getJSONObject(Result), ArticleModel.class); ArticleModel a = response.getResult();
assertNotNull(a.getTitle()); assertNotNull(a.getTitle());
assertNotNull(a.getId()); assertNotNull(a.getId());
assertNotNull(a.getSummary()); assertNotNull(a.getSummary());
assertNotNull(a.getMdContent()); assertNotNull(a.getMdContent());
assertNotNull(a.getUrl()); assertNotNull(a.getUrl());
assertNotNull(a.getUpdateDateFormat()); assertNotNull(a.getUpdateDateFormat());
assertTrue(a.getPreArticle() != null || a.getNextArticle() != null); assertTrue(a.getPreArticle() != null || a.getNextArticle() != null);
assertNotNull(a.getReadingNumber()); assertNotNull(a.getReadingNumber());
assertNotNull(a.getOriginal()); assertNotNull(a.getOriginal());
assertNotNull(a.getPublishDateFormat()); assertNotNull(a.getPublishDateFormat());
assertNotNull(a.getCategory()); assertNotNull(a.getCategory());
assertNotNull(a.getTags()); assertNotNull(a.getTags());
assertNotNull(a.getAuthor()); assertNotNull(a.getAuthor());
}); });
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
@@ -179,39 +165,32 @@ public class ArticleControllerTest extends BaseTest {
public void articles() { public void articles() {
try { try {
// 测试不带参数访问 // 测试不带参数访问
mockMvc.perform(MockMvcRequestBuilders.get("/articles")) getMockData(MockMvcRequestBuilders.get("/articles"));
.andExpect(status().is(200)); getMockData(MockMvcRequestBuilders.get("/articles?page=1&count=5")).andDo(result -> {
Response<PageData<ArticleModel>> response = getResponse(result);
mockMvc.perform(MockMvcRequestBuilders.get("/articles?page=1&count=5")) // 断言获取数据成功
.andExpect(status().is(200)) assertEquals(SUCCESS.getCode(), response.getCode());
.andDo(result -> { // 结果集非空
JSONObject articlesJSON = JSONObject.fromObject(result.getResponse().getContentAsString()); assertNotNull(response.getResult());
Response response = (Response) JSONObject.toBean(articlesJSON, Response.class); // 判断pageInfo是否包装完全
// 断言获取数据成功 PageData<ArticleModel> pageData = response.getResult();
assertEquals(SUCCESS.getCode(), response.getCode()); assertNotEquals(0, pageData.getTotal());
// 结果集非空 assertEquals(1, pageData.getPageNum());
assertNotNull(response.getResult()); assertEquals(5, pageData.getPageSize());
// 判断pageInfo是否包装完全 // 内容完整
JSONObject resultJson = JSONObject.fromObject(response.getResult()); for (ArticleModel a : pageData.getList()) {
PageData<ArticleModel> pageData = (PageData<ArticleModel>) JSONObject.toBean(resultJson, PageData.class); assertNotNull(a.getTitle());
assertNotEquals(0, pageData.getTotal()); assertNotNull(a.getId());
assertEquals(1, pageData.getPageNum()); assertNotNull(a.getSummary());
assertEquals(5, pageData.getPageSize()); assertNotNull(a.getOriginal());
// 内容完整 assertNotNull(a.getPublishDateFormat());
for (Object arc : pageData.getList()) { assertNotNull(a.getCategory());
ArticleModel a = (ArticleModel) JSONObject.toBean(JSONObject.fromObject(arc), ArticleModel.class); assertNotNull(a.getTags());
assertNotNull(a.getTitle()); assertNotNull(a.getAuthor());
assertNotNull(a.getId()); assertNull(a.getOpen());
assertNotNull(a.getSummary()); assertNull(a.getMdContent());
assertNotNull(a.getOriginal()); }
assertNotNull(a.getPublishDateFormat()); });
assertNotNull(a.getCategory());
assertNotNull(a.getTags());
assertNotNull(a.getAuthor());
assertNull(a.getOpen());
assertNull(a.getMdContent());
}
});
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
@@ -221,19 +200,18 @@ public class ArticleControllerTest extends BaseTest {
public void adminArticles() { public void adminArticles() {
try { try {
getMockData(get("/admin/articles?page=1&count=10")).andExpect(result -> 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权限登陆 // User权限登陆
getMockData(get("/admin/articles?page=1&count=10"), userLogin()).andDo(result -> 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++) { for (int i = 0; i < 2; i++) {
// admin权限登陆 // admin权限登陆
int finalI = i; int finalI = i;
getMockData(get("/admin/articles?page=1&count=10&deleted=" + (i == 1)), adminLogin()).andDo(result -> { getMockData(get("/admin/articles?page=1&count=10&deleted=" + (i == 1)), adminLogin()).andDo(result -> {
Response<PageData<ArticleModel>> response = mapper.readValue(result.getResponse().getContentAsString(), new TypeReference<Response<PageData<ArticleModel>>>() { Response<PageData<ArticleModel>> response = getResponse(result);
});
assertEquals(SUCCESS.getCode(), response.getCode()); assertEquals(SUCCESS.getCode(), response.getCode());
assertNotNull(response.getResult()); assertNotNull(response.getResult());
// 判断pageInfo是否包装完全 // 判断pageInfo是否包装完全
@@ -266,27 +244,22 @@ public class ArticleControllerTest extends BaseTest {
try { try {
// 分类不存在 // 分类不存在
String categoryName = "NoSuchCategory"; String categoryName = "NoSuchCategory";
mockMvc.perform(MockMvcRequestBuilders.get("/articles/category/" + categoryName + "?page=1&count=10")) getMockData(MockMvcRequestBuilders.get("/articles/category/" + categoryName + "?page=1&count=10"))
.andExpect(status().is(200)) .andDo(result -> assertEquals(CATEGORY_NOT_EXIST.getCode(), getResponse(result).getCode()));
.andDo(result -> {
assertEquals(CATEGORY_NOT_EXIST.getCode(), JSONObject.fromObject(result.getResponse().getContentAsString()).getInt(Code));
});
// 正常查询 // 正常查询
categoryName = "linux"; categoryName = "linux";
mockMvc.perform(MockMvcRequestBuilders.get("/articles/category/" + categoryName + "?page=1&count=10")) getMockData(MockMvcRequestBuilders.get("/articles/category/" + categoryName + "?page=1&count=10"))
.andExpect(status().is(200))
.andDo(result -> { .andDo(result -> {
JSONObject jsonObject = JSONObject.fromObject(result.getResponse().getContentAsString()); Response<PageData<ArticleModel>> response = getResponse(result);
assertEquals(SUCCESS.getCode(), jsonObject.getInt(Code)); assertEquals(SUCCESS.getCode(), response.getCode());
PageData<ArticleModel> pageData = (PageData<ArticleModel>) JSONObject.toBean(jsonObject.getJSONObject(Result), PageData.class); PageData<ArticleModel> pageData = response.getResult();
assertNotEquals(0, pageData.getTotal()); assertNotEquals(0, pageData.getTotal());
assertEquals(1, pageData.getPageNum()); assertEquals(1, pageData.getPageNum());
assertEquals(10, pageData.getPageSize()); assertEquals(10, pageData.getPageSize());
for (Object arc : pageData.getList()) { for (ArticleModel arc : pageData.getList()) {
JSONObject jsonObject1 = JSONObject.fromObject(arc); assertNotEquals(0, arc.getId().longValue());
assertNotEquals(0, jsonObject1.getInt("id")); assertNotNull(arc.getTitle());
assertNotNull(jsonObject1.getString("title")); assertNotNull(arc.getSummary());
assertNotNull(jsonObject1.getString("summary"));
} }
}); });
} catch (Exception e) { } catch (Exception e) {
@@ -299,28 +272,23 @@ public class ArticleControllerTest extends BaseTest {
try { try {
// 分类不存在 // 分类不存在
String tagName = "NoSuchTag"; String tagName = "NoSuchTag";
mockMvc.perform(MockMvcRequestBuilders.get("/articles/tag/" + tagName + "?page=1&count=10")) getMockData(MockMvcRequestBuilders.get("/articles/tag/" + tagName + "?page=1&count=10"))
.andExpect(status().is(200)) .andDo(result -> assertEquals(TAG_NOT_EXIST.getCode(), getResponse(result).getCode()));
.andDo(result -> {
assertEquals(TAG_NOT_EXIST.getCode(), JSONObject.fromObject(result.getResponse().getContentAsString()).getInt(Code));
});
// 正常查询 // 正常查询
tagName = "linux"; tagName = "linux";
mockMvc.perform(MockMvcRequestBuilders.get("/articles/tag/" + tagName + "?page=1&count=10")) getMockData(MockMvcRequestBuilders.get("/articles/tag/" + tagName + "?page=1&count=10"))
.andExpect(status().is(200))
.andDo(result -> { .andDo(result -> {
JSONObject jsonObject = JSONObject.fromObject(result.getResponse().getContentAsString()); Response<PageData<ArticleModel>> response = getResponse(result);
assertEquals(SUCCESS.getCode(), jsonObject.getInt(Code)); assertEquals(SUCCESS.getCode(), response.getCode());
PageData<ArticleModel> pageData = (PageData<ArticleModel>) JSONObject.toBean(jsonObject.getJSONObject(Result), PageData.class); PageData<ArticleModel> pageData = response.getResult();
assertNotEquals(0, pageData.getTotal()); assertNotEquals(0, pageData.getTotal());
assertEquals(1, pageData.getPageNum()); assertEquals(1, pageData.getPageNum());
assertEquals(10, pageData.getPageSize()); assertEquals(10, pageData.getPageSize());
for (Object arc : pageData.getList()) { for (ArticleModel arc : pageData.getList()) {
JSONObject jsonObject1 = JSONObject.fromObject(arc); assertNotEquals(0, arc.getId().longValue());
assertNotEquals(0, jsonObject1.getInt("id")); assertNotNull(arc.getTitle());
assertNotNull(jsonObject1.getString("title")); assertNotNull(arc.getSummary());
assertNotNull(jsonObject1.getString("summary"));
} }
}); });
} catch (Exception e) { } catch (Exception e) {