模块化拆分
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
package cn.celess.article;
|
||||
|
||||
import cn.celess.common.test.RedisServerMock;
|
||||
import cn.celess.common.test.BaseRedisTest;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
|
||||
@SpringBootTest(classes = {ArticleApplication.class})
|
||||
@RunWith(SpringRunner.class)
|
||||
public abstract class ArticleBaseTest extends RedisServerMock {
|
||||
public abstract class ArticleBaseTest extends BaseRedisTest {
|
||||
}
|
||||
|
||||
@@ -2,8 +2,15 @@ package cn.celess.common;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.context.annotation.ComponentScan;
|
||||
import org.springframework.context.annotation.FilterType;
|
||||
|
||||
@SpringBootApplication
|
||||
@SpringBootApplication(
|
||||
scanBasePackageClasses = {
|
||||
CommonApplication.class
|
||||
}
|
||||
)
|
||||
@ComponentScan(excludeFilters = {@ComponentScan.Filter(type = FilterType.REGEX, pattern = "cn.celess.common.test.BaseRedisTest")})
|
||||
public class CommonApplication {
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(CommonApplication.class, args);
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package cn.celess.common.test;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import redis.embedded.RedisServer;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
@@ -10,7 +12,9 @@ import java.io.IOException;
|
||||
* @author : xiaohai
|
||||
* @date : 2020/08/14 16:20
|
||||
*/
|
||||
public class RedisServerMock extends BaseTest {
|
||||
@Configuration
|
||||
@Slf4j
|
||||
public class BaseRedisTest extends BaseTest {
|
||||
private static RedisServer redisServer;
|
||||
|
||||
@PostConstruct
|
||||
@@ -19,14 +23,19 @@ public class RedisServerMock extends BaseTest {
|
||||
if (redisServer == null) {
|
||||
redisServer = new RedisServer(6380);
|
||||
redisServer.start();
|
||||
log.info("start Redis success");
|
||||
}
|
||||
} catch (IOException e) {
|
||||
log.error("start Redis failed");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@PreDestroy
|
||||
@PreDestroy()
|
||||
public static void stopRedis() {
|
||||
if (redisServer.isActive()) redisServer.stop();
|
||||
if (redisServer.isActive()) {
|
||||
redisServer.stop();
|
||||
log.info("stop Redis success");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -15,10 +15,14 @@ import java.io.IOException;
|
||||
* @Desc:
|
||||
*/
|
||||
public class HttpUtil {
|
||||
|
||||
/**
|
||||
* FIXME
|
||||
* 获取http请求的响应
|
||||
*
|
||||
* @param url url链接
|
||||
* @return 请求的响应
|
||||
*/
|
||||
public static String get(String urlStr) {
|
||||
public static String getHttpResponse(String url) {
|
||||
try (final WebClient webClient = new WebClient(BrowserVersion.CHROME)) {
|
||||
webClient.getOptions().setCssEnabled(false);
|
||||
webClient.getOptions().setJavaScriptEnabled(false);
|
||||
@@ -27,18 +31,18 @@ public class HttpUtil {
|
||||
webClient.getOptions().setDownloadImages(false);
|
||||
webClient.getOptions().setActiveXNative(false);
|
||||
webClient.setAjaxController(new NicelyResynchronizingAjaxController());
|
||||
Page clientPage = webClient.getPage(urlStr);
|
||||
if (clientPage.isHtmlPage()) {
|
||||
return clientPage.toString();
|
||||
}
|
||||
return null;
|
||||
Page clientPage = webClient.getPage(url);
|
||||
return clientPage.getWebResponse().getContentAsString();
|
||||
} catch (IOException e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* FIXME
|
||||
* 获取渲染后的网页数据
|
||||
*
|
||||
* @param url url链接
|
||||
* @return 经js渲染后的网页源代码
|
||||
*/
|
||||
public static String getAfterRendering(String url) {
|
||||
try (final WebClient webClient = new WebClient(BrowserVersion.BEST_SUPPORTED)) {
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package cn.celess.common.util;
|
||||
|
||||
import cn.celess.common.CommonBaseTest;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
@@ -9,9 +8,8 @@ import static org.junit.Assert.assertNotNull;
|
||||
public class HttpUtilTest extends CommonBaseTest {
|
||||
|
||||
@Test
|
||||
@Ignore
|
||||
public void get() {
|
||||
String s = HttpUtil.get("https://api.celess.cn/headerInfo");
|
||||
String s = HttpUtil.getHttpResponse("https://api.celess.cn/headerInfo");
|
||||
assertNotNull(s);
|
||||
// Response<Map<String, Object>> response = getResponse(s, MAP_OBJECT_TYPE);
|
||||
// assertEquals(ResponseEnum.SUCCESS.getCode(), response.getCode());
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
package cn.celess.extension;
|
||||
|
||||
import cn.celess.common.CommonApplication;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
|
||||
@SpringBootApplication
|
||||
@SpringBootApplication(scanBasePackageClasses = {ExtensionApplication.class, CommonApplication.class})
|
||||
public class ExtensionApplication {
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(ExtensionApplication.class, args);
|
||||
|
||||
@@ -22,6 +22,7 @@ import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.imageio.ImageIO;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
@@ -45,7 +46,7 @@ public class ExtensionController {
|
||||
QiniuService qiniuService;
|
||||
@Autowired
|
||||
RedisUtil redisUtil;
|
||||
@Autowired
|
||||
@Resource
|
||||
RedisUserUtil redisUserUtil;
|
||||
|
||||
|
||||
@@ -179,7 +180,7 @@ public class ExtensionController {
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
JsonNode root;
|
||||
try {
|
||||
root = mapper.readTree(HttpUtil.get("https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN"));
|
||||
root = mapper.readTree(HttpUtil.getHttpResponse("https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN"));
|
||||
} catch (IOException e) {
|
||||
return Response.failure(null);
|
||||
}
|
||||
|
||||
@@ -17,6 +17,11 @@
|
||||
<artifactId>blog-common</artifactId>
|
||||
<version>${blog-common.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>cn.celess</groupId>
|
||||
<artifactId>blog-user</artifactId>
|
||||
<version>${blog-user.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
package cn.celess.partnersite;
|
||||
|
||||
import cn.celess.common.CommonApplication;
|
||||
import cn.celess.user.UserApplication;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
|
||||
@SpringBootApplication
|
||||
@SpringBootApplication(scanBasePackageClasses = {PartnerSiteApplication.class, CommonApplication.class, UserApplication.class})
|
||||
public class PartnerSiteApplication {
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(PartnerSiteApplication.class, args);
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
package cn.celess.partnersite;
|
||||
|
||||
import cn.celess.common.test.BaseRedisTest;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
|
||||
@SpringBootTest(classes = PartnerSiteApplication.class)
|
||||
@RunWith(SpringRunner.class)
|
||||
public abstract class PartnerSiteBaseTest extends BaseRedisTest {
|
||||
}
|
||||
@@ -9,7 +9,7 @@ import cn.celess.common.entity.vo.PageData;
|
||||
import cn.celess.common.exception.MyException;
|
||||
import cn.celess.common.mapper.PartnerMapper;
|
||||
import cn.celess.common.service.PartnerSiteService;
|
||||
import cn.celess.common.test.BaseTest;
|
||||
import cn.celess.partnersite.PartnerSiteBaseTest;
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.junit.Test;
|
||||
@@ -22,7 +22,7 @@ import static org.junit.Assert.*;
|
||||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
|
||||
|
||||
@Slf4j
|
||||
public class PartnerSiteControllerTest extends BaseTest {
|
||||
public class PartnerSiteControllerTest extends PartnerSiteBaseTest {
|
||||
|
||||
@Autowired
|
||||
PartnerMapper mapper;
|
||||
|
||||
@@ -3,7 +3,7 @@ package cn.celess.partnersite.serviceimpl;
|
||||
import cn.celess.common.entity.PartnerSite;
|
||||
import cn.celess.common.entity.vo.PageData;
|
||||
import cn.celess.common.service.PartnerSiteService;
|
||||
import cn.celess.common.test.BaseTest;
|
||||
import cn.celess.partnersite.PartnerSiteBaseTest;
|
||||
import org.junit.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
@@ -12,7 +12,7 @@ import java.util.List;
|
||||
import static org.junit.Assert.assertNotEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
public class PartnerSiteServiceTest extends BaseTest {
|
||||
public class PartnerSiteServiceTest extends PartnerSiteBaseTest {
|
||||
|
||||
@Autowired
|
||||
PartnerSiteService partnerSiteService;
|
||||
|
||||
@@ -18,6 +18,12 @@
|
||||
<version>${blog-common.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>cn.celess</groupId>
|
||||
<artifactId>blog-user</artifactId>
|
||||
<version>${blog-user.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
package cn.celess.siteinfo;
|
||||
|
||||
import cn.celess.common.CommonApplication;
|
||||
import cn.celess.user.UserApplication;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
|
||||
@SpringBootApplication
|
||||
@SpringBootApplication(scanBasePackageClasses = {SiteInfoApplication.class, CommonApplication.class, UserApplication.class})
|
||||
public class SiteInfoApplication {
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(SiteInfoApplication.class, args);
|
||||
|
||||
@@ -90,7 +90,7 @@ public class WebUpdateInfoServiceImpl implements WebUpdateInfoService {
|
||||
map.put("lastUpdateInfo", webUpdateInfoMapper.getLastestOne().getUpdateInfo());
|
||||
try {
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
String respStr = HttpUtil.get("https://api.github.com/repos/xiaohai2271/blog-frontEnd/commits?page=1&per_page=1");
|
||||
String respStr = HttpUtil.getHttpResponse("https://api.github.com/repos/xiaohai2271/blog-frontEnd/commits?page=1&per_page=1");
|
||||
if (!StringUtils.isEmpty(respStr)) {
|
||||
JsonNode root = mapper.readTree(respStr);
|
||||
Iterator<JsonNode> elements = root.elements();
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
package cn.celess.siteinfo;
|
||||
|
||||
import cn.celess.common.test.BaseTest;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
|
||||
@SpringBootTest(classes = SiteInfoApplication.class)
|
||||
@RunWith(SpringRunner.class)
|
||||
public abstract class SiteInfoBaseTest extends BaseTest {
|
||||
}
|
||||
@@ -5,10 +5,9 @@ import cn.celess.common.entity.WebUpdate;
|
||||
import cn.celess.common.entity.vo.PageData;
|
||||
import cn.celess.common.entity.vo.WebUpdateModel;
|
||||
import cn.celess.common.mapper.WebUpdateInfoMapper;
|
||||
import cn.celess.common.test.BaseTest;
|
||||
import cn.celess.siteinfo.SiteInfoBaseTest;
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
@@ -21,7 +20,7 @@ import static org.junit.Assert.*;
|
||||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
|
||||
|
||||
@Slf4j
|
||||
public class WebUpdateInfoControllerTest extends BaseTest {
|
||||
public class WebUpdateInfoControllerTest extends SiteInfoBaseTest {
|
||||
private final TypeReference<?> MODAL_TYPE = new TypeReference<Response<WebUpdateModel>>() {
|
||||
};
|
||||
private final TypeReference<?> MODAL_LIST_TYPE = new TypeReference<Response<List<WebUpdateModel>>>() {
|
||||
@@ -126,7 +125,6 @@ public class WebUpdateInfoControllerTest extends BaseTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
@Ignore
|
||||
public void lastestUpdateTime() throws Exception {
|
||||
getMockData(get("/lastestUpdate")).andDo(result -> assertEquals(SUCCESS.getCode(), getResponse(result).getCode()));
|
||||
}
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
package cn.celess.user;
|
||||
|
||||
import cn.celess.common.test.BaseTest;
|
||||
import cn.celess.common.test.BaseRedisTest;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
|
||||
@RunWith(SpringRunner.class)
|
||||
@SpringBootTest
|
||||
public abstract class UserBaseTest extends BaseTest {
|
||||
@Component
|
||||
public abstract class UserBaseTest extends BaseRedisTest {
|
||||
}
|
||||
|
||||
@@ -26,17 +26,17 @@ public class AuthorizationFilter extends UserBaseTest {
|
||||
@Test
|
||||
public void AdminAccess() throws Exception {
|
||||
// 未登录
|
||||
getMockData(get("/admin/articles?page=1&count=1")).andDo(result -> assertEquals(HAVE_NOT_LOG_IN.getCode(), getResponse(result).getCode()));
|
||||
getMockData(get("/admin/users?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()));
|
||||
getMockData(get("/admin/users?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()));
|
||||
getMockData(get("/admin/users?page=1&count=1"), adminLogin()).andDo(result -> assertEquals(SUCCESS.getCode(), getResponse(result).getCode()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void VisitorAccess() throws Exception {
|
||||
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()));
|
||||
getMockData(get("/admin/users?page=1&count=1")).andDo(result -> assertEquals(HAVE_NOT_LOG_IN.getCode(), getResponse(result).getCode()));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -18,6 +18,18 @@
|
||||
<version>${blog-common.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>cn.celess</groupId>
|
||||
<artifactId>blog-user</artifactId>
|
||||
<version>${blog-user.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>cn.celess</groupId>
|
||||
<artifactId>blog-extension</artifactId>
|
||||
<version>${blog-extension.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
|
||||
@@ -1,9 +1,17 @@
|
||||
package cn.celess.visitor;
|
||||
|
||||
import cn.celess.common.CommonApplication;
|
||||
import cn.celess.extension.ExtensionApplication;
|
||||
import cn.celess.user.UserApplication;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
|
||||
@SpringBootApplication
|
||||
@SpringBootApplication(scanBasePackageClasses = {
|
||||
VisitorApplication.class,
|
||||
CommonApplication.class,
|
||||
ExtensionApplication.class,
|
||||
UserApplication.class
|
||||
})
|
||||
public class VisitorApplication {
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(VisitorApplication.class, args);
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
package cn.celess.visitor;
|
||||
|
||||
import cn.celess.common.test.BaseRedisTest;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
|
||||
@SpringBootTest(classes = VisitorApplication.class)
|
||||
@RunWith(SpringRunner.class)
|
||||
public abstract class VisitorBaseTest extends BaseRedisTest {
|
||||
}
|
||||
@@ -3,7 +3,7 @@ package cn.celess.visitor.controller;
|
||||
import cn.celess.common.entity.Response;
|
||||
import cn.celess.common.entity.vo.PageData;
|
||||
import cn.celess.common.entity.vo.VisitorModel;
|
||||
import cn.celess.common.test.BaseTest;
|
||||
import cn.celess.visitor.VisitorBaseTest;
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import org.junit.Test;
|
||||
|
||||
@@ -12,7 +12,7 @@ import static org.junit.Assert.*;
|
||||
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 {
|
||||
public class VisitorControllerTest extends VisitorBaseTest {
|
||||
private final TypeReference<?> VISITOR_PAGE_TYPE = new TypeReference<Response<PageData<VisitorModel>>>() {
|
||||
};
|
||||
private final TypeReference<?> VISITOR_TYPE = new TypeReference<Response<VisitorModel>>() {
|
||||
|
||||
@@ -3,7 +3,7 @@ package cn.celess.visitor.serviceimpl;
|
||||
import cn.celess.common.entity.vo.PageData;
|
||||
import cn.celess.common.entity.vo.VisitorModel;
|
||||
import cn.celess.common.service.VisitorService;
|
||||
import cn.celess.common.test.BaseTest;
|
||||
import cn.celess.visitor.VisitorBaseTest;
|
||||
import com.alibaba.druid.util.StringUtils;
|
||||
import org.junit.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -11,7 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
public class VisitorServiceTest extends BaseTest {
|
||||
public class VisitorServiceTest extends VisitorBaseTest {
|
||||
|
||||
@Autowired
|
||||
VisitorService visitorService;
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
package cn.celess.visitor.util;
|
||||
|
||||
import cn.celess.common.test.BaseTest;
|
||||
import cn.celess.visitor.VisitorBaseTest;
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
public class AddressUtilTest extends BaseTest {
|
||||
public class AddressUtilTest extends VisitorBaseTest {
|
||||
|
||||
@Test
|
||||
public void getCityInfo() {
|
||||
|
||||
Reference in New Issue
Block a user