refactor(Test): 重构 VisitorControllerTest

This commit is contained in:
禾几海
2020-08-15 11:49:19 +08:00
parent d6cede718b
commit a04b51a82e

View File

@@ -1,25 +1,29 @@
package cn.celess.blog.controller; package cn.celess.blog.controller;
import cn.celess.blog.BaseTest; import cn.celess.blog.BaseTest;
import cn.celess.blog.entity.Response;
import cn.celess.blog.entity.model.PageData; import cn.celess.blog.entity.model.PageData;
import cn.celess.blog.entity.model.VisitorModel; import cn.celess.blog.entity.model.VisitorModel;
import com.github.pagehelper.PageInfo; import com.fasterxml.jackson.core.type.TypeReference;
import net.sf.json.JSONObject;
import org.junit.Test; 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.junit.Assert.*;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static cn.celess.blog.enmu.ResponseEnum.*; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
public class VisitorControllerTest extends BaseTest { public class VisitorControllerTest extends BaseTest {
private final TypeReference<?> VISITOR_PAGE_TYPE = new TypeReference<Response<PageData<VisitorModel>>>() {
};
private final TypeReference<?> VISITOR_TYPE = new TypeReference<Response<VisitorModel>>() {
};
@Test @Test
public void getVisitorCount() throws Exception { public void getVisitorCount() throws Exception {
mockMvc.perform(get("/visitor/count")).andDo(result -> { getMockData(get("/visitor/count")).andDo(result -> {
JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); Response<Object> response = getResponse(result);
assertEquals(SUCCESS.getCode(), object.getInt(Code)); assertEquals(SUCCESS.getCode(), response.getCode());
assertTrue(object.containsKey(Result)); assertNotNull(response.getResult());
}); });
} }
@@ -27,17 +31,14 @@ public class VisitorControllerTest extends BaseTest {
public void page() throws Exception { public void page() throws Exception {
int count = 10; int count = 10;
int page = 1; int page = 1;
mockMvc.perform(get("/admin/visitor/page?count=" + count + "&page=" + page).header("Authorization", adminLogin())) getMockData(get("/admin/visitor/page?count=" + count + "&page=" + page), adminLogin()).andDo(result -> {
.andDo(result -> { Response<PageData<VisitorModel>> response = getResponse(result, VISITOR_PAGE_TYPE);
JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); assertEquals(SUCCESS.getCode(), response.getCode());
assertEquals(SUCCESS.getCode(), object.getInt(Code)); PageData<VisitorModel> pageData = response.getResult();
JSONObject resultJson = JSONObject.fromObject(object.getJSONObject(Result));
PageData<VisitorModel> pageData = (PageData<VisitorModel>) JSONObject.toBean(resultJson, PageData.class);
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 ver : pageData.getList()) { for (VisitorModel v : pageData.getList()) {
VisitorModel v = (VisitorModel) JSONObject.toBean(JSONObject.fromObject(ver), VisitorModel.class);
assertNotEquals(0, v.getId()); assertNotEquals(0, v.getId());
assertNotNull(v.getDate()); assertNotNull(v.getDate());
} }
@@ -46,10 +47,10 @@ public class VisitorControllerTest extends BaseTest {
@Test @Test
public void add() throws Exception { public void add() throws Exception {
mockMvc.perform(post("/visit")).andDo(MockMvcResultHandlers.print()).andDo(result -> { getMockData(post("/visit")).andDo(result -> {
JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); Response<VisitorModel> response = getResponse(result, VISITOR_TYPE);
assertEquals(SUCCESS.getCode(), object.getInt(Code)); assertEquals(SUCCESS.getCode(), response.getCode());
VisitorModel visitorModel = (VisitorModel) JSONObject.toBean(object.getJSONObject(Result), VisitorModel.class); VisitorModel visitorModel = response.getResult();
assertNotEquals(0, visitorModel.getId()); assertNotEquals(0, visitorModel.getId());
assertNotNull(visitorModel.getIp()); assertNotNull(visitorModel.getIp());
}); });
@@ -57,26 +58,26 @@ public class VisitorControllerTest extends BaseTest {
@Test @Test
public void dayVisitCount() throws Exception { public void dayVisitCount() throws Exception {
mockMvc.perform(get("/dayVisitCount")).andDo(MockMvcResultHandlers.print()).andDo(result -> getMockData(get("/dayVisitCount")).andDo(result -> assertEquals(SUCCESS.getCode(), getResponse(result).getCode()));
assertEquals(SUCCESS.getCode(), JSONObject.fromObject(result.getResponse().getContentAsString()).getInt(Code))
);
} }
// 手动测试 // 手动测试
// @Test // @Test
public void ipLocation() throws Exception { public void ipLocation() throws Exception {
String ip = "127.0.0.1"; String ip = "127.0.0.1";
mockMvc.perform(get("/ip/" + ip)).andDo(MockMvcResultHandlers.print()).andDo(result -> { getMockData(get("/ip/" + ip)).andDo(result -> {
assertEquals(SUCCESS.getCode(), JSONObject.fromObject(result.getResponse().getContentAsString()).getInt(Code)); Response<Object> response = getResponse(result);
assertTrue(JSONObject.fromObject(result.getResponse().getContentAsString()).containsKey(Result)); assertEquals(SUCCESS.getCode(), response.getCode());
assertNotNull(response.getResult());
}); });
} }
@Test @Test
public void getIp() throws Exception { public void getIp() throws Exception {
mockMvc.perform(get("/ip")).andDo(MockMvcResultHandlers.print()).andDo(result -> { getMockData(get("/ip")).andDo(result -> {
assertEquals(SUCCESS.getCode(), JSONObject.fromObject(result.getResponse().getContentAsString()).getInt(Code)); Response<String> response = getResponse(result, STRING_TYPE);
assertEquals("127.0.0.1", JSONObject.fromObject(result.getResponse().getContentAsString()).getString(Result)); assertEquals(SUCCESS.getCode(), response.getCode());
assertEquals("127.0.0.1", response.getResult());
}); });
} }
} }